Рубрики
Схемы на AVR

Подключение датчика Холла к микроконтроллеру AVR ATmega16

Принцип действия датчиков Холла основан на так называемом «эффекте Холла», открытым Эдвином Холлом (Edwin Hall) в 1869 году. Этот эффект гласит: «эффект Холла основан на явлении возникновения поперечной разности потенциалов (называемой также холловским напряжением) при помещении проводника с постоянным током в магнитное поле».

В данной статье этот эффект будет разобран с практической точки зрения. Мы рассмотрим подключение датчика Холла к микроконтроллеру ATmega16 (семейство AVR) и будем использовать светодиод для демонстрации эффекта Холла когда будем подносить магнит к датчику Холла.

Что такое эффект Холла

Эффект Холла можно рассмотреть с точки зрения движения зарядов (заряженных частиц) в магнитном поле. Чтобы понять на практике как это происходит подсоединим батарею к проводнику как показано на рисунке ниже. Электрический ток (i) в этом случае начнет протекать по проводнику от положительного контакта батареи к ее отрицательному контакту.

Но поток электронов (e-) в этом случае будет направлен в противоположном направлении, то есть от отрицательного контакта батареи к ее положительному контакту. В этот момент времени если мы измерим напряжение (разность потенциалов) на концах проводника (поперек его) как показано на рисунке ниже, то оно будет равно нулю.

Теперь создадим магнитное поле над проводником как показано на следующем рисунке.

И если в этот момент времени мы измерим напряжение на концах проводника (поперечных прохождению тока), то оно будет отлично от нуля. Это напряжение и называется «напряжением Холла», а само это явление называется «эффектом Холла».

Необходимые компоненты

  1. Микроконтроллер ATmega16 (купить на AliExpress).
  2. Программатор AVR-ISP (купить на AliExpress), USBASP (купить на AliExpress) или другой подобный.
  3. Кварцевый генератор 16 МГц (купить на AliExpress).
  4. Датчик Холла (купить на AliExpress).
  5. Конденсатор 100 нФ (2 шт.) (купить на AliExpress).
  6. Конденсатор 22 пФ (2 шт.) (купить на AliExpress).
  7. Источник питания с напряжением 5 Вольт.
  8. Кнопка.
  9. Светодиод (купить на AliExpress).
  10. Макетная плата.
  11. Соединительные провода.

Работа схемы

Схема устройства приведена на следующем рисунке.

Программирование микроконтроллера ATmega16 для взаимодействия с датчиком Холла

Программировать микроконтроллер ATmega16 мы будем с помощью программатора USBASP и программы Atmel Studio7.0. Полный текст программы приведен в конце данной статьи.

Для данной программы мы задействуем всего два контакта микроконтроллера ATmega16: к одному из них мы будем подключать датчик Холла, а к другому – светодиод. В начале программы необходимо будет подключить нужные нам библиотеки.

Определим входной контакт для чтения данных от датчика Холла.

#define hallIn PA0

Зададим необходимые параметры для этого вывода микроконтроллера ATmega16.

DDRA=0xFE;
PINA=0x01;

Если магнит находится рядом с датчиком Холла, то в зависимости от значения на выходе контакта PORTA0 включаем или выключаем светодиод.

if(bit_is_clear(PINA,hallIn)){
PORTA=0b00000010;
}
else{
PORTA=0b00000000;
}

Применения датчика Холла

Датчики Холла широко используются там, где необходимо измерять силу магнитного поля или определять полюс магнита. Но кроме этого существует и достаточно много специфических применений подобных датчиков, к которым можно отнести:

  • бесконтактный датчик (приближения) в мобильных телефонах;
  • механизм переключения передач в самоходных транспортных средствах;
  • контроль (инспектирование) различных труб и трубопроводов;
  • контроль скорости вращения.

Исходный код программы на языке С (Си) с пояснениями

Программа для рассматриваемой схемы представлена следующим фрагментом кода на языке С (Си). Комментарии к коду программу поясняют принцип работы отдельных команд.

Видео, демонстрирующее работу схемы

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *