Кнопочки и AVR'очки

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

здраствуйте товарищи!С наступающим Вас!
Мне тут срочно нужно сделать устройство которое должно считывать количество и частоту нажатия кнопки.Но проблема в том что я не вижу способа как это осуществить :cry: Прошу направить меня в правильное русло, а то мне придется на новый год быть репрессированным:(Помогите кто чем может.
Я это собираюсь делать на Atmega8 и CVAVR.Зараннее огромное спасибо.
С уважением,
Radio_Master.
Контактная информация:
Реклама
nds
Друг Кота
Аватара пользователя
Сообщения: 4772
Зарегистрирован: Вс май 25, 2008 19:47:47
Откуда: РФ

Сообщение nds »

опиши поподробнее что надо
2B OR NOT 2B = FF
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

С количеством нажатий проблем не вижу, а вот частоту нажатий предлагаю считать "среднюю" за какой-то перид, т.е. 10 нажатий/мин, например, потому как вообще с частотой у непериодических процессов как-то сложно... :)
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

Ну с количеством я тоже проблем невижу,а вот с частотой пока не сооброжу чего то :(
С уважением,
Radio_Master.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

Грубо говоря мне нужно:
-Нажать несколько раз кнопку с разной частотой
-мигнуть светодиодом так же как нажималась кнопка.

помогите плз
С уважением,
Radio_Master.
Контактная информация:
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 602
Зарегистрирован: Пн дек 29, 2008 01:40:28
Откуда: (Украина, г. Стаханов, Луганская обл.) теперь Кемерово :)

Сообщение константин_KoSS_89 »

а если не секрет,что должно получиться в конце? :shock:
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула

Сообщение IfoR »

Ну, чего тут.

Например, вариант (для теории):
Для начала :) :
Заводим переменныю X, тип unsigned int = 0 - количество нажатий в минуту.
Заводим переменныю M, тип unsigned int = 0 - минут прошло.
Заводим переменныю Y, тип unsigned int = 0 - Частота.
Заводим переменныю Z, тип unsigned char = 0 - Флаг нажатия кнопки.
Настраиваем INT0 на срабатывание по изменению напряжения.
Настраеваем пин порта на вывод для светодиода.

Процесс:
Если срабатывает прерывание:
Если Z==0, значит кнопка нажата. X увеличиваем на 1. Зажигаем светодиод. Z=1.
Иначе, кнопка отпущена. Тушим светодиод. Z=0;

Главная функция:
Делаем задержку на 1 минуту циклами.
Увеличиваем M на 1
Выщитываем частоту Y=X/M


Если у нас будет вывод на дисплей или ещё куда (а он будет :) ), то в цикл задержку вставляем функцию вывода. Всё. :)

Но только нужно сбрасывать все данные если X или M =65535
Последний раз редактировалось IfoR Пн дек 29, 2008 22:45:34, всего редактировалось 1 раз.
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 175
Зарегистрирован: Сб ноя 22, 2008 15:31:52

Сообщение Белк »

Может я и ошибаюсь, но это похоже на телеграфный ключ с памятью, в таком случае внутренней памяти МК может быть маловато, придётся использовать или большую мегу или цеплять внешнюю последовательную память, что имхо предпочтительнее.
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Как вариант: заводим таймер на срабатывание раз в 5-10мс, считаем кол-во срабатываний таймера, пока кнопка не нажата, в одну переменную, потом кол-во срабатываний при нажатой кнопке в другую, потом опять паузу в третью - и т.д. Потом воспроизводим все это светодиодом. Можно довольно длительные последовательности воспроизводить, ограничено кол-вом переменных и их разрядностью, т.е. ОЗУ МК по факту. Например, беззнаковый инт = 65535, т.е. при кванте 10мс это почти 11 минут одной паузы (или нажатия), а переменных таких можно завести довольно много.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

Aheir писал(а):Как вариант: заводим таймер на срабатывание раз в 5-10мс, считаем кол-во срабатываний таймера, пока кнопка не нажата, в одну переменную, потом кол-во срабатываний при нажатой кнопке в другую, потом ...
Спасибо огромное, буду опираться на вашу мысль. Еще вопрос: может ли AVR обрабатывать массивы?
С уважением,
Radio_Master.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

Подскажите еще плиз, как можно сравнить два напряжения? А точнее мне нужно что бы при появлении разности напряжений выход становился 0,а когда же напряжения одинаковые то на выходе должна быть 1.
С уважением,
Radio_Master.
Контактная информация:
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

в меге 8 есть компаратор
http://easyelectronics.ru/ там есть статьи по нему и по твоему вопросу
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

Мне кажется что компаратор мне особо не поможет!так как мне нужно засечь ЛЮБУЮ разницу между двумя напряжениями! Может у кого есть еще какие идеи?
С уважением,
Radio_Master.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Используйте ОУ, его выход - на Мегу. Да, AVR может работать с массивами.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

Я был бы очень благодарен если бы вы рассказали принцип работы этой штуки с ОУ :) Как что и зачем включать...
С уважением,
Radio_Master.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Если на входах ОУ напряжения одинаковые, то на выходе 0, а если они не равны, то на выходе появляется сигнал.
Делал я когда-т терморегулятор по такому принципу, ну ет пока МК не заинтересовался основательно.
В принципе при таком включении ОУ можно считать компаратором.
Встал на лапы
Аватара пользователя
Сообщения: 114
Зарегистрирован: Чт ноя 01, 2007 12:42:39
Откуда: Москоу

Сообщение Radio_Master »

Pooher писал(а):Если на входах ОУ напряжения одинаковые, то на выходе 0, а если они не равны, то на выходе появляется сигнал.
Так это то что мне нужно!:)А где я могу найти схему такого включения?Мож кто ткнёт?А то я еще никогда с ОУ не работал :( Пришло время начинать.
С уважением,
Radio_Master.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Я делал приблизительно так(давно это было...)
Таким образом можно отследить отклонение сопротивления.
Чтобы сравнить напряжения, надо подать их на входы.
А вообще лучше погугли, или зайди с этим вопросом в раздел аналоговой техники, я чот уже и подзабывать начал что там почём :))
Вложения
OpAmp.rar
(4.04 КБ) 220 скачиваний
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»