Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
КОНТАКТЫ ВВОДА-ВЫВОДА И ИНТЕРФЕЙСЫ ⇐ ПредыдущаяСтр 2 из 2
На плате выведены 14 цифровых пинов (контактов), любой из которых может работать как на вывод информации, так и на ввод. Для этого в коде программ применяются специальные функции: pinMode() Функция pinMode служит для задания режима работы контакта, будет-ли он работать на выход или на вход. В данной функции задается номер контакта, которым мы в дальнейшем собираемся управлять. digitalRead() Функция считывает текущее значение с заданного контакта – его значение может быть HIGH или LOW. digitalWrite() Функция передает определенное значение на заданный контакт – оно может быть HIGH или LOW. Все выводы обладают пятивольтовой логикой, то есть выдают логическую единицу как напряжение 5В. Каждый вывод платы имеет нагрузочный резистор номиналом 20-50 кОм и может пропускать до 40 мА, но по умолчанию все они отключены. Также, на контактных площадках Arduino Uno выведены специальные интерфейсы подключения различных цифровых устройств: АНАЛОГОВЫЕ ВХОДЫ: КОНТАКТЫ A0, A1, A2, A3, A4, A5 Arduino Uno имеет на своей платформе 6 аналоговых входов с разрешением 10 Бит на каждый вход. Данное разрешение говорит нам о том, что сигнал, приходящий на него, можно оцифровать в диапазоне от 0 до 1024 условных значений. Считывать значения с данных контактов можно функцией analogRead(), а передавать значения – функцией analogWrite(). Так как Arduino Uno обладает пятивольтовой логикой, то и значение будет находиться в диапазоне от 0 до 5 вольт, однако при помощи функции analogReference() можно изменять верхний предел. ПОСЛЕДОВАТЕЛЬНЫЙ UART ИНТЕРФЕЙС: КОНТАКТЫ 0 (RX) И 1 (TX) Данные выводы используются для обмена данными по протоколу UART. Контакт RX используется для получения данных, а контакт TX – для их отправки. Эти выводы подключены к соответствующим контактам последовательной шины схемы ATmega8U2 USB-to-TTL, выступающей в данном контексте в роли программатора. ВНЕШНЕЕ ПРЕРЫВАНИЕ: КОНТАКТЫ 2 И 3 Данные контакты могут конфигурироваться на вызов различных прерываний, когда программа останавливает выполнение основного кода и производит выполнение кода прерывания. Вызов прерывания может быть задан по-разному:
Более подробно прерывания описаны в отдельной статье нашей Вики. ШИМ: КОНТАКТЫ 3, 5, 6, 9, 10, И 11 Любой из контактов 3, 5, 6, 9, 10, и 11, может генерировать сигнал Широтно-импульсной модуляции (ШИМ, PWM)с разрешением 8 Бит. Для этого в коде программы используется функция analogWrite(). SPI ИНТЕРФЕЙС: КОНТАКТЫ 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) С помощью данных контактов происходит подключение периферии, работающей через интерфейс SPI. Для работы с данным интерфейсом в среде Arduino IDE предусмотрена отдельная библиотека с одноименным названием. I2C ИНТЕРФЕЙС: КОНТАКТЫ 4 (SDA) И 5 (SCL) При помощи данных контактов к Arduino можно подключать внешние цифровые устройства, умеющие общаться по протоколу I2C. Для реализации интерфейса в среде Arduino IDE присутствует библиотека Wire. ВСТРОЕННЫЙ СВЕТОДИОД: КОНТАКТ 13 Для проверки вашего кода по ходу его написания, самый удобный способ индикации – встроенный светодиод. Подав значение HIGH на 13 контакт, он загорается на плате красным цветом, тем самым показывая, что условие вашей программы выполнилось (или наоборот, что-то пошло не так). 13 контакт удобно использовать в коде программы для проверки ошибок и отладки. Кстати, хотим заметить, что последовательно к 13-ому контакту подключен резистор на 220 Ом, поэтому не стоит использовать его для вывода питания ваших устройств. ДОПОЛНИТЕЛЬНЫЕ КОНТАКТЫ: AREF И RESET Помимо всех вышеперечисленных, на платформе Uno имеется еще 2 дополнительных контакта. AREF Данный контакт отвечает за определение опорного напряжения аналоговых входов платформы. Используется только с функцией analogReference(). RESET Данный контакт необходим для аппаратной перезагрузки микроконтроллера. При подаче сигнала низкого уровня (LOW) на контакт Reset, происходит перезагрузка устройства. Данный контакт обычно соединен с аппаратной кнопкой перезагрузки, установленной на плате. СВЯЗЬ С ВНЕШНИМ МИРОМ Для осуществления связи с внешними устройствами (компьютером и другими микроконтроллерами) на плате существует несколько дополнительных устройств. На контактах 0 (RX) и 1 (TX) контроллер ATmega328 поддерживает UART – последовательный интерфейс передачи данных. ATmega8U2, выполняющий на плате роль программатора, транслирует этот интерфейс через USB, позволяя платформе общаться с компьютером через стандартный COM-порт. Прошивка, установленная в контроллер ATmega8U2, имеет на борту стандартные драйверы USB-COM, поэтому для подключения не потребуется никаких дополнительных драйверов. Внимание! На платах китайского производства, вместо контроллера ATmega8U2 используется другой программатор – CH340G, который не распознается Windows в автоматическом режиме. Для него необходимо установить дополнительный драйвер, о чем подробно написано в нашем блоге – Установка драйверов микросхемы CH340G для Arduino. При помощи мониторинга последовательной шины, называемого Serial Monitor, среда Arduino IDE посылает и получает данные от Arduino. При обмене данными на плате видно мигание светодиодов RX и TX. При использовании UART-интерфейса через контакты 0 и 1, светодиоды не мигают. Плата может взаимодействовать по UART-интерфейсу не только через аппаратным, но и через программным способом. Для этого в среде Arduino IDE предусмотрена библиотека SoftwareSerial. Также, на плате предусмотрены выводы основных интерфейсов взаимодействия с периферией: SPI и I2C (TWI). |
Последнее изменение этой страницы: 2019-04-10; Просмотров: 210; Нарушение авторского права страницы