Например TDA7294

Форум РадиоКот • Просмотр темы - Опрос кнопок микроконтроллером
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт мар 19, 2024 11:07:04

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 321 ]     ... , , , 13, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Сб июн 20, 2015 15:37:14 
Друг Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 267
Зарегистрирован: Ср сен 27, 2006 16:18:57
Сообщений: 3459
Рейтинг сообщения: 0
Alexeyslav писал(а):
каждое 10-е прерывание - тупо запоминаем состояние портов с кнопками и всё.
Понятно. Аналог задержки, но без задержки... :) т.е. получаем нечто, что было 10 миллисекунд назад, и надеемся, что сейчас оно такое самое и есть. Аесли нет? В чём смысл отложить опрос состояния кнопок на 10 мс?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Сб июн 20, 2015 16:15:02 
Друг Кота
Аватар пользователя

Карма: 130
Рейтинг сообщений: 2702
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21548
Откуда: Московская область, Фрязино
Рейтинг сообщения: 1
Барсик писал(а):
В чём смысл отложить опрос состояния кнопок на 10 мс?

Не отложить, а ЗАЩЕЛКИВАТЬ состояние кнопки раз в 10 мс. Тут дело не в 10 мс, а во времени дребезга кнопки. При защелкивании состояния кнопки реже, чем длится дребезг, дребезг исчезнет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Сб июн 20, 2015 16:22:46 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 1
зачем откладывать? бери и пользуйся. Вот прямо как прерывание произошло, состояние защелкнули - так сразу можешь брать и пользоваться. Смысл в чем, в том что состояние кнопок фиксируется один раз за цикл, и даже если фиксация попадёт на момент дребезга - максимум что может быть то один раз зафиксируем неверное состояние кнопки в момент перехода а это чревато только тем что нажатие мы увидим в худшем случае на следующий цикл опроса. Но сам дребезг программа не увидит.

из этого кстати следует естественное ограничение данного алгоритма - кнопка может быть в нажатом(отпущенном) состоянии для правильной работы не менее 2-х циклов опроса. Если не соблюсти это условие максимум что случится - пропустим событие нажатия кнопки. Человек, к примеру, так быстро нажимать кнопки не сможет. А для концевых выключателей или датчиков частоты вращения вала нужны другие методы подавления дребезга, зачастую даже механические.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Сб июн 20, 2015 18:42:54 
Друг Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 267
Зарегистрирован: Ср сен 27, 2006 16:18:57
Сообщений: 3459
Рейтинг сообщения: 0
КРАМ писал(а):
...а ЗАЩЕЛКИВАТЬ...
Дошло... Спасибо.


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 22:25:37 
Родился

Зарегистрирован: Чт ноя 12, 2015 20:26:00
Сообщений: 4
Рейтинг сообщения: 0
По задумке по нажатию кнопки должен загораться светодиод и гореть 3 сек.
Подключил кнопку, сделал подтяжку пина к земле. Сигнал на пин поступает, но не обрабатывается.
Подскажите что не так. Или это просто протеус логает



Код:
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void){
   DDRB |= (1<<PB7);
   DDRC &= ~(1<<PC3);
   while(1){
      if((PINC & (1<<PC3)) == 1){       //If switch is pressed
         PORTB |= (1<<PB7);       //Turns ON LED
         _delay_ms(3000);           //3 second delay
         PORTB &= ~(1<<PB7);   //Turns OFF LED
      }
      }
}


Вложения:
Комментарий к файлу: :
Proteus
CVAVR 5.0

кнопка.rar [39 KiB]
Скачиваний: 294


Последний раз редактировалось nurekil Пт ноя 13, 2015 00:33:34, всего редактировалось 2 раз(а).
Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 22:38:49 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 0
if(PINC & (1<<PC3) == 1){ //If switch is pressed
не хватает скобок if((PINC&(1<<PC3))==1){


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 22:53:21 
Родился

Зарегистрирован: Чт ноя 12, 2015 20:26:00
Сообщений: 4
Рейтинг сообщения: 0
Mishany писал(а):
if(PINC & (1<<PC3) == 1){ //If switch is pressed
не хватает скобок if((PINC&(1<<PC3))==1){


Спсибо, исправил. Но, к сожалению, не работает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 22:58:35 
Собутыльник Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 756
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2893
Откуда: приходит весна?
Рейтинг сообщения: 0
Токоограничивающий резистор надо последовательно со светодиодом поставить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 23:09:48 
Родился

Зарегистрирован: Чт ноя 12, 2015 20:26:00
Сообщений: 4
Рейтинг сообщения: 0
B@R5uk писал(а):
Токоограничивающий резистор надо последовательно со светодиодом поставить.


Поставил. Сперва 110ом, а потом 150. Не загорается... :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 23:27:45 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 775
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4990
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
nurekil писал(а):
Сперва 110ом, а потом 150. Не загорается..

В Протеусе моежешь не ставить. ))) Это в реальной жизни надо. А если так, то и приучаться к хорошему надо везде.
Может и херню скажу, но обычно кнопки ставят от порта на землю, а подтяжку делают к плюсу.... Как внутреннюю, так и внешнюю.
(это вроде традиции еще от старых МК пошло, если захотите - прочитаете). Здесь же в вашей схеме может так и задумано. :dont_know:
Косяк у вас в программе где-то... 8)

Я плохо помню Си. А если в программе без всяких опросов кнопок сконфигурировать порт В7 на выход - будет светодиод гореть?

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 23:31:23 
Собутыльник Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 756
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2893
Откуда: приходит весна?
Рейтинг сообщения: 2
nurekil писал(а):
Не загорается... :dont_know:
Отпаяйте базовый резистор от МК и подключите на плюс питания. Если не загорится и в этом случае, то проблема с транзистором или светодиодом.

И если можно, то спрячте первую картинку под спойлер, а то не лезет форум по ширине в экран.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Чт ноя 12, 2015 23:32:55 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 775
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4990
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
B@R5uk писал(а):
Отпаяйте базовый резистор от МК и подключите на плюс питания.


В Протеусе??? :shock: :))) :))) :))) Все бы глумиться...

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема при подключение кнонки к atmega8...
СообщениеДобавлено: Пт ноя 13, 2015 05:26:36 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2687
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
  if((PINC & (1<<PC3)) == 1)
замените на
Код:
  if(PINC & (1<<PC3))


Ну или вместо 1 напишите 0b00001000, но это лишнее.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Сб ноя 14, 2015 02:04:03 
Родился

Зарегистрирован: Чт ноя 12, 2015 20:26:00
Сообщений: 4
Рейтинг сообщения: 0
Всем спасибо за ответы. Помог совет в конце 2 страницы этой темы. Заработало 8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Сб апр 02, 2016 08:33:57 
Потрогал лапой паяльник

Зарегистрирован: Пт янв 29, 2010 19:42:27
Сообщений: 311
Рейтинг сообщения: 0
В большинстве телевизоров кнопки стоят на линии АЦП . всего два провода и до 6 кнопок .

а тут я накалякал на 3кнопки
Код:
 
   void OPROS_KN ()         
           {   unsigned char  VIBORKA1    ;
           
                 VIBORKA1= read_adc(0);           
                  if ( VIBORKA1 >240  )         return;        //ничего не нажато  подтяжка тянет       
                 delay_ms(15);
                 
                 if (read_adc(0) >VIBORKA1+1  )         return;   // если повторный уровень олтчается больше чем на +-1  то вых           
                 if ( VIBORKA1 >read_adc(0)+1  )         return;   // если повторный уровень олтчается больше чем на +-1  то вых       
           
               if (VIBORKA1<8)          ///  нажат выбор реж
                   {
                    if  (Mode_SLCT <2) Mode_SLCT++;
                        else   Mode_SLCT=0;
                   }       
            if  (Mode_SLCT ==0)
                  {
                    LCD_PutChar (0, 0 ,80);             //P
                    LCD_PutChar (9, 0 ,79);        //O     
                    LCD_PutChar (18, 0 ,82);        //R         
                                   nlcd_Line(porog,10,porog, 160, black )  ; 
                              if ( VIBORKA1>75 & VIBORKA1<85)    porog=porog-2  ;   // ацп канал 0  выход =80 нажат минус
                              if (  VIBORKA1>98 & VIBORKA1<108)    porog=porog+2  ;   // ацп канал 0  выход =103  нажат плюс       
                               nlcd_Line(porog,10,porog, 160, yellow )  ;         
                             print_int( 36,0,  porog);   
                         }
                         
             if  (Mode_SLCT ==1)
                   {  LCD_PutChar (0, 0 ,77);             //M
                    LCD_PutChar (9, 0 ,88);              //X   
                    LCD_PutChar (18, 0 ,61);          //=     
                              if (   VIBORKA1>75 & VIBORKA1<85)      multiplerX++ ;  // ацп канал 0  выход =80 нажат минус
                              if (  VIBORKA1>98 & VIBORKA1<108)     multiplerX-- ;   // ацп канал 0  выход =103  нажат плюс   
                              if (multiplerX==0 )      multiplerX= 1 ;           
                             print_int( 36,0, multiplerX);     
                    }     
               if  (Mode_SLCT ==2)
                   {  LCD_PutChar (0, 0 ,77);             //M
                    LCD_PutChar (9, 0 ,89);              //X   
                    LCD_PutChar (18, 0 ,61);          //=     
                              if (   VIBORKA1>75 & VIBORKA1<85)     { multiplerY=1; DEL_ON  ;  }  // ацп канал 0  выход =80 нажат минус
                              if (  VIBORKA1>98 & VIBORKA1<108)     { multiplerY=0 ;DEL_OFF;  }  // ацп канал 0  выход =103  нажат плюс   
                     
                             print_int( 36,0, multiplerY);     
                    }       
                   
                   
            }


Вложения:
Комментарий к файлу: кнопки в ТВ
кнопки.PNG [55.87 KiB]
Скачиваний: 565

_________________
ух ты.... показывает
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Программный антидребезг
СообщениеДобавлено: Вт дек 06, 2016 20:01:53 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 665
Откуда: Пермь
Рейтинг сообщения: 0
Котаны, поделитесь удачными примерами программного антидребезга.
Делаю сейчас вот так
Код:
      // Чтение клавиатуры
      do
         {
            _delay_ms(50);      // Задержка от дребезга контактов      
            Key1   =   PIND & ~PINSQW; // На PINSQW приходит меандр 1 Гц от DS1307, исключаем меандр из опроса клавиш.
            _delay_ms(50);
            Key2   =   PIND & ~PINSQW;
         }
      while (Key1 != Key2);

Но иногда не срабатывает, а иногда наоборот, дребезг всё-таки пролетает.
Помогут ли кондёры 0.1uF параллельно тактовым кнопкам?
Триггеры Шмидта будут в следующей конструкции.

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Вт дек 06, 2016 21:00:10 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
https://www.youtube.com/watch?v=VD8OaPyAEtI
Тут хороший алгоритм разжеван. Сможете настроить фильтр.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Чт дек 08, 2016 17:28:38 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 665
Откуда: Пермь
Рейтинг сообщения: 0
Большое спасибо!
Алгоритм понятен, попробую реализовать - посмотрим что получится.

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Пт дек 09, 2016 15:27:16 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 140
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0




Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Пт дек 09, 2016 23:16:23 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 665
Откуда: Пермь
Рейтинг сообщения: 0
У меня вот так получилось

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 321 ]     ... , , , 13, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y