Аналоговые и цифровые пины на Arduino

Перед началом работы с Arduino, мы оцениваем какие выходы, аналоговые или цифровые, необходимы для того или иного датчика. Сегодня разберемся, как с ними работать.
  • На плате есть четыре разновидности пинов: управляющие или порты управляющего воздействия – земля и питание  (GND, 5V, 3.3V), аналоговые (A0-А5), цифровые (1,2,7,8 и т.д.), а также цифровые пины, поддерживающие ШИМ (Широтно Импульсную Модуляцию). Давайте разберемся в назначении каждого и приведем примеры их использования в программе.
Блок пинов питания (POWER) на плате Arduino

Итак, начнем с пинов питания. И, для начала, интуитивно понятные:
  • 5V - с помощью этого пина мы можем выводить питание на макетную плату или просто используем его для подключения собранной схемы к питанию. Его особенность в том, что его назначение мы никак изменить не можем (если, конечно, у вас не появится желание сделать это с помощью паяльника). Как только мы подаем питание на плату, независимо от источника (USB или аккумулятор), на этом выходе мы будем получать питание 5 V.
  • 3.3V - для некоторых датчиков (барометр BMP180) питание в 5 V слишком высокое, именно поэтому на плате дополнительно выведено питание в 3.3 V. С точки зрения пользователя, кроме номинала выходного напряжения, этот выход питания ничем не отличается от своего «соседа» 5V.  
  • GND - Здесь все просто- пин, замыкающих электрическую цепь (земля, минус).


Теперь, пожалуй, про менее понятные обозначения:
  • Vin - пин для подачи внешнего напряжения, т.е. с помощю этого порта мы можем подавать питание на плату не только с помощью батарейки Крона (и специального разъема его подключения) или USB порта, но и от других источников. при этом мы можем подать напряжение в диапазоне 9-12 V, но при этом оно все равно проходит через стабилизатор, для защиты платы от перегорания (рекомендую не превышать 10V).
  • IOREF - пин для информирования внешних устройств о рабочем напряжении платы -"smart pin". Этот контакт является источником эталонного напряжения, необходимого для работы контроллера и его переферии. Правильно настроенный «шилд» может прочитать напряжение на этом контакте и выбрать нужный источник питания или включить на выходных устройствах преобразователи, позволяющие работать либо с 5, либо с 3,3 вольтами.
  • AREF-Опорное напряжение для аналоговых входов. Для установки опорного (порогового) напряжения используется функция analogReference() (подробнее о ней в следующей статье). Она программно устанавливает определенное напряжение на аналоговых пинах: если на микроконтроллер будет приходить некоторое напряжение, превышающее заданное значение, оно автоматически будет преобразовываться в максимальное (5V или 1023), если это значение ниже, то будет воспринято как"0".
  • RESET- т.е. сброс. Этот пин используется для программного сбрасывания (перезагрузки) платы.

Разберемся в отличиях между цифровым и аналоговым сигналами.

Цифровой сигнал (Digital)
Аналоговый сигнал (Analog)

График цифрового сигнала от времени
  • Контроллер считывает цифровой сигнал в диапазоне 0..255, на выходе мы получаем значения 0 или 1 (HIGH/LOW), полученное значение условно делится на диапазоны LOW и HIGH.
  • Эти пины используются для считывания высокого или низкого сигнала и передачи его на внешние устройства


 График аналогового сигнала от времени
  • При считывании аналогового сигнала, контроллер воспринимает весь диапазон считываемых значений, т.е. когда мы передаем аналоговый сигнал на внешнее устройство, то получаем не просто ВКЛ/ВЫКЛ, а можем подавать «дробное» напряжение.
  • Аналоговые пины используются для считывания сигнала  с аналоговых датчиков (датчик освещения, температуры, звука и т.п.)
  • Воспринимает диапазон считанный значений в интервале 0..1023

Блок пинов ANALOG IN:
  • Пины А0-А5 имеют возможность запоминать в память микроконтроллера псевдо аналоговый сигнал, а также передавать его на внешние устройства. Для получения такого сигнала извне необходимо увеличить частоту дискретизации (т.е. уменьшить время между последовательными считываниями высоты сигнала), при этом также увеличивается точность записи сигнала. Так, вместо диапазона 0..255 на цифровых пинах, мы получаем 0..1023 на аналоговых выходах.
  • Для того, чтобы иметь возможность обратиться к этим пинам, в программе необходимо использовать команды analogRead(номер пина)/analogWrite(номер пина, передаваемый сигнал). Первая команда дает возможность считывать сигнал, приходящий в этот порт, вторая же команда передает на внешние устройства аналоговый сигнал.
  • При этом есть небольшая особенность: пины, имеющие обозначение А0-А5 могут быть программно настроены и как цифровые пины, т.е. если в программе мы опишем:
digitalRead(A0) то получим цифровой сигнал в диапазоне 0..255, а если используем analogRead(A0)-получим уже аналоговый сигнал в диапазоне 0..1023.
  • Также порты  А4 и А5 поддерживают выводы порта I2C (SDA и SCL соответственно). Подробнее о шине I2C в следующей статье.

Блок пиновDIGITAL:
  • Цифровые пины, обозначаемые как digital, также могут использоваться для считывания показаний с датчиков, подключения отдельных внешних элементов (например,светодиодов). При считывании напряжения на этих пинах и выводя показания в монитор порта, мы увидим значения 0..255 при чтении показаний с аналоговых датчиков, при обычном чтении сигнала (например, с тактовой кнопки, у которой есть только два положения –нажата/не нажата) микроконтроллер оценивает высоту сигнала и на выходе мы получаем 0 или 1 (т.е. есть сигнал- кнопка нажата, схема замкнута/сигнала нет, схема разомкнута).
  • Также  у портов, имеющих обозначения «~» есть особенность, они поддерживают ШИМ (Широтно-импульсную модуляцию), т.е. формирование псевдо-аналогового сигнала. ШИМ используется для управления напряжением на выходе (подробнее также  в следующей статье). ШИМ пины имеют последовательные номера 3,5,6,9,10,11.
  • И еще одна особенность цифрового блока это пины 0 и 1, они поддерживают использование внешних устройств беспроводной связи (ТХ и RX, порт UART).Блок пинов ICSP ATmega328
  • ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P. С использованием библиотеки SPI  данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах  10(SS), 11(MOSI), 12 (MISO), 13(SCK). Микроконтроллер ATmega328P.
  • Сердцем платформы Arduino Uno является 8-битный микроконтроллер семейства AVR-ATmega 328

    Блок пинов ICSP ATmega16U2.
  • ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega16U2.
  • Микроконтроллер ATmega16U2 обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.