В это примере подключим и научимся обрабатывать события нажатия кнопок при помощи микроконтроллера AVR. Другими словами мониторить состояние кнопок, и при каких либо изменениях делать что либо. К примеру включать выключать нагрузку, настаивать таймер или настаивать время и т.д. да все что угодно.

Итак ближе к делу! Те выводы на которые мы вешаем кнопку устанавливаем на вход. Для того чтобы это сделать мы должны записать в DDRx (где x это номер порта A,B,C и т. д. )  соответствующее значение. Если пишем «0» то вывод будет работать на вход если же «!» то как как выход.

Ниже представлен код программы опроса кнопки под микроконтроллер который проверяет состояние кнопки и включает и выключает светодиод.

Код программы опроса состояния кнопки


#ifndef F_CPU
#define F_CPU 1000000UL // 1 MHz clock speed
#endif

#include <avr/io.h>

void main(void)
{
 
PORTB=0x02;
DDRB=0x01;
 
while (1)
{
 
if(PINB.1==0)
{
PORTB.0=1;
delay_ms(100);
PORTB.0=0;
delay_ms(100);
}
 
};
}

Схема подключения кнопки к микроконтроллеру

Схема подключения кнопки к микроконтроллеру

 

Как видно из схемы на вывод PB1 мы подключаем кнопку, а на вывод PB0 мы подключаем светодиод D1 через сопротивление R1 которое уменьшает протекающий ток.

При нажатии на кнопку меняется состояние вывода PB1 оно становится равным логическому «0» и у нас загорается светодиод.

К входной ножке нужно подключить подтягивающий резистор. У входа МК очень большое сопротивление, поэтому даже при незначительных микротоках в следствии помех. На ноже МК будет то появлятся то исчезать логическая 1. И для того чтобы этого избежать мы и вешаем на эту ножку резистор.

Поделиться ссылкой:

Список радиодеталей
Обозначание Наименование Номинал Количество
1 U1 Микроконтроллер Atmega8 1
2 R1 Резистор R1 1 кОм 1
3 D1 Светодиод 1
Автор
Staticvoid

Администратор сайта http://www.radiodetector.ru

Добавить комментарий

Популярные записи

Подключение кнопки к микроконтроллеру AVR

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

Распиновка наиболее популярных микроконтроллеров AVR

Ниже представлена распиновка наиболее ходовых микроконтроллеров семейства AVR.  Описание выводов, их...

Измерение температуры при помощи датчика Lm35 и ATmega 16

Всем привет! Хочу поделится одной простой схемкой для измерения температуры на микроконтроллере ATmega 16 и...

Простой звонок на микронтроллере Attiny13

В этом примере рассмотрим схему звонка на микроконтроллере Attiny13. Такой звонок можно использовать где...