ШИМ Arduino
Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой
Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:
ШИМ ардуино
Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.
В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.
Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:
Платы расширения
В магазинах, специализирующихся на робототехнике и микроконтроллерах, можно встретить слово «шилд». Это специальная плата, которая напоминает Arduino Uno. Совпадает она с ней не только по форме, но и по количеству выводов.
Шилд устанавливается в клеммные колодки, при этом часть их них задействуется под функции шилда, а другая часть остаётся свободной для использования в проекте. В результате вы можете получить такой себе многоэтажный «бутерброд» из плат, которые реализуют множество функций.
Одним из самых популярных является Arduino Ethernet Shield. Он нужен для связи с Ардуино по обычному сетевому кабелю, витой паре. На нём расположен разъём rj45.
С подобным шилдом можно управлять вашим микроконтроллером по сети через веб-интерфейс, а также считывать параметры с датчиков, не отрываясь от компьютера. Существуют проекты с использованием такого комплекта в домашнем облачном хранилище, с ограничением по скорости, всё-таки Атмега328 слабовата для таких задач, и для этого лучше подойдут одноплатные компьютеры типа Raspberry pi.
Описание пинов платы
Микроконтроллер имеет 14 цифровых пинов, они могут быть использованы, как вход или выход. Из них 6 могут выдавать ШИМ-сигнал. Они нужны для регулировки мощности в нагрузке и других функций.
Пин ардуино | Адресация в скетче | Специальное назначение | ШИМ |
Цифровой пин 0 | RX | ||
Цифровой пин 1 | 1 | TX | |
Цифровой пин 2 | 2 | Вход для прерываний | |
Цифровой пин 3 | 3 | Вход для прерываний | ШИМ |
Цифровой пин 4 | 4 | ||
Цифровой пин 5 | 5 | ШИМ | |
Цифровой пин 6 | 6 | ШИМ | |
Цифровой пин 7 | 7 | ||
Цифровой пин 8 | 8 | ||
Цифровой пин 9 | 9 | ШИМ | |
Цифровой пин 10 | 10 | SPI (SS) | ШИМ |
Цифровой пин 11 | 11 | SPI (MOSI) | ШИМ |
Цифровой пин 12 | 12 | SPI (MISO) | |
Цифровой пин 13 | 13 | SPI (SCK) К выходу дополнительно подсоединен встроенный светодиод |
Вызов ШИМ-сигнала осуществляется через команду AnalogWrite (номер ножки, значение от 0 до 255). Для работы с аналоговыми датчиками присутствует 6 аналоговых входов/выходов.
Пин | Адресация в скетче | Специальное назначение |
Аналоговый пин A0 | A0 или 14 | |
Аналоговый пин A1 | A1 или 15 | |
Аналоговый пин A2 | A2 или 16 | |
Аналоговый пин A3 | A3 или 17 | |
Аналоговый пин A4 | A4 или 18 | I2C (SCA) |
Аналоговый пин A5 | A5 или 19 | I2C (SCL) |
Их тоже можно использовать, как цифровые.
Аналоговый сигнал обрабатывается 10 битным аналогово-цифровым преобразователем (АЦП), а при чтении микроконтроллер выдаёт численное значение от 0 до 1024. Это равно максимальному значению, которое можно записать в 10 битах. Каждый из выводов способен выдать постоянный ток до 40 мА.
Принципиальная схема платы выглядит так (нажмите для увеличения):
Шаг 4. Создаем печатную плату
Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.
После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber. Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта. Разместите заказ. Вы получите его через 1-2 недели.
Шаг 1. Изменения в оригинальной версии
Прежде всего давайте поговорим об изменениях, которые собираемся внести в оригинальную схему Arduino Uno, которую вы можете увидеть выше или скачать ниже.
Изменения будут следующими:
- Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
- Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
- Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
- Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
- Последнее, что нужно на плате, — это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.
Учитывая все изменения, мы можем записать окончательный список компонентов.
Размеры Уно
Arduino Uno R3 – самая популярная плата, построенная на базе процессора ATmega328. В зависимости от конкретной модели платы этой линейки используются различные микроконтроллеры, на момент написания статьи самой распространённой является версия именно R3.
Плату используют для обучения, разработки, создания рабочих макетов устройств. Ардуино, по своей сути, – это AVR микроконтроллер с возможностью упрощенного программирования и разработки. Это достигнуто с помощью специально подготовленного загрузчика, прошитого в память МК, и фирменной среды разработки.
Плата Ардуино Уно
Размеры платы представлены на схеме ниже. Общие размеры Уно составляют 53,4 мм на 68,6 мм.
Из чего состоит
На аппаратном уровне это серия смонтированных плат, мозгом которых являются микроконтроллеры семейства AVR. Платы имеют на борту всё необходимое для комфортной работы, но их функциональности часто бывает недостаточно. Чтобы сделать свой проект более интерактивным, можно использовать различные модули и платы расширений, совместимые с платформой Arduino. Сюда входят датчики (температуры, освещения, влаги, газа/дыма, атмосферного давления), устройства ввода (клавиатуры, джойстики, сенсорные панели) и вывода (сегментные индикаторы, LCD/TFT дисплеи, светодиодные матрицы).
Как обозначаются конденсаторы на схеме.
Читать далее
Как отличается параллельное и последовательное соединение резисторов.
Читать далее
Масляные трансформаторы – что это такое, устройство и принцип работы.
Читать далее
На программном уровне платформа Arduino представляет собой бесплатную среду разработки Arduino IDE. Микроконтроллеры надо программировать на языке C++, с некоторыми отличиями и облегчениями, созданными для быстрой адаптации начинающих. Компиляцию программного кода и прошивку микроконтроллера среда разработки берёт на себя. Существует также — сервис, базирующийся на Scratch, позволяющий более наглядно вести разработку на Arduino. Он подойдёт для обучения детей, а также если вы разово хотите создать простое устройство без изучения языка программирования Arduino и различных документаций. Для остальных же случаев лучше придерживаться традиционного процесса разработки.
Связь с внешним миром
Для осуществления связи с внешними устройствами (компьютером и другими микроконтроллерами) на плате существует несколько дополнительных устройств. На контактах 0 (RX) и 1 (TX) контроллер ATmega328 поддерживает UART – последовательный интерфейс передачи данных. ATmega8U2, выполняющий на плате роль программатора, транслирует этот интерфейс через USB, позволяя платформе общаться с компьютером через стандартный COM-порт.
На платах китайского производства, вместо контроллера ATmega8U2 используется другой программатор – CH340G, который не распознается Windows в автоматическом режиме. Для него необходимо установить дополнительный драйвер. При помощи мониторинга последовательной шины, называемого Serial Monitor, среда Arduino IDE посылает и получает данные от Arduino. При обмене данными на плате видно мигание светодиодов RX и TX. При использовании UART-интерфейса через контакты 0 и 1, светодиоды не мигают.
Плата может взаимодействовать по UART-интерфейсу не только через аппаратным, но и через программным способом. Для этого в среде Arduino IDE предусмотрена библиотека SoftwareSerial. Также, на плате предусмотрены выводы основных интерфейсов взаимодействия с периферией: SPI и I2C (TWI).
https://youtube.com/watch?v=739WmHH4uSY
Arduino Uno R3
Так же на выводе D13 имеется встроенный в плату светодиод.
GND — земля Ground Pin. Чтобы не возникало сомнений по порядку нумерации выводов коннектора, ниже приводится фрагмент принципиальной схемы платы Ардуино: Этот разъем подключается к программатору с интерфейсом SPI интерфейс последовательного программирования контроллеров Atmel.
Вместе с тем активное распространение Ардуино-плат для освоения разработки и проектирования устройств на микроконтроллерных системах породило новый виток в вопросе качества и эргономики. Раз уж тут объединены программирование и электроника, то ключевой вещью в использовании модуля становится спецификация его выводов, или распиновка, как еще принято говорить. Источник питания выбирается автоматически.
В то же время сохраняется легкость подключения при помощи разъемов с шагом выводов 2,54 мм, что важно для любительских экспериментов. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату
Статья по теме: Гост прокладка кабелей в земле
Когда контроллер прошивается скетчем через USB, он записывается именно во Flash — память. Напряжение менее 7 В может привести к нестабильной работе, так как на входном каскаде может запросто теряться В. Максимальное потребление тока 50 мА. A5 — аналоговые входы могут использоваться и в качестве цифровых.
Возможно, вам также будет интересна инструкция по созданию сигнализатора поклевки своими руками Этот проект можно улучшить и поднять на более высокий уровень для, например, автоматизация дома через управление смартфоном, управляемый робот и многое другое. В этом окне вам необходимо выбрать, какая плата была подключена к вашему компьютеру. Разъем USB и силовой разъем выходят за границы данных размеров. Программирование для платы Uno Для написания программ скетчей для контроллер Ардуино вам нужно установить среду программирования. Ключевым отличием является размер платы и тип контактных площадок.
Видеообзор платформы Arduino
Память эта энерго-зависимая, при выключении питания все данные, разумеется, сотрутся. Габариты Arduino Uno: 6,8 см x 5,3 см.
Выводы модуля можно классифицировать разными способами, поскольку их функции зависят от программной конфигурации контроллера. Вы можете скачать приложение на GitHub. Подсоедините плату и выберите этот последовательный порт.
Ардуино: рисуем схемы в программе sPlan 7.0
https://youtube.com/watch?v=X-J-RY0AQ4A
Работа в комплексе с другими системами
Самое первое, с чем вы можете познакомиться, даже без приобретения дополнительных устройств для разработки – это связь по последовательному порту. Он активируется по команде Serial.begin (скорость, например 9600). Подробно о каждой команде вы можете прочитать в обучающем разделе на официальном сайте проекта Arduino.ru. Вы можете обмениваться с компьютером информацией. Плата, в зависимости от программного кода, может вам присылать данные, а вы их, через монитор портов в Arduino IDE, можете читать.
Кроме последовательного порта, в ардуино UNO реализована поддержка таких интерфейсов:
- I2C;
- SPI.
Через них можно осуществлять «общение» между несколькими платами, а также подключать разную периферию: датчики и дисплеи.
Характеристики
В основе платы лежит процессор ATmega 328. Кроме него на плате находится модуль USB для связи с компьютером и прошивки. Этот модуль называется «USB-TTL преобразователь». На фирменных платах Arduino Uno для этой целей используется дополнительный микроконтроллер ATmega16U2.
Характеристики | Arduino Uno R3 |
Микроконтроллер | ATmega328 |
Рабочее напряжение | 5В |
Напряжение питания (рекомендуемое) | 7-12В |
Напряжение питания (предельное) | 6-20В |
Цифровые входы/выходы | 14 (из них 6 могут использоваться в качестве ШИМ-выходов) |
Аналоговые входы | 6 |
Максимальный ток одного вывода | 40 мА |
Максимальный выходной ток вывода 3.3V | 50 мА |
Flash-память | 32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком |
SRAM | 2 КБ (ATmega328) |
EEPROM | 1 КБ (ATmega328) |
Тактовая частота | 16 МГц |
Особенность этого чипа заключается в аппаратной поддержке USB, что позволяет организовывать связь без дополнительных преобразователей. В то время как ATmega328 не поддерживает такой функции, поэтому 16u2 выступает в роли преобразователя данных из USB в последовательный порт для МК AVR. В него залита программа для выполнения этой задачи.
Однако так происходит не всегда: в более мелких платах, таких как Arduino Nano, используют преобразователи уровней на базе различных микросхем, например FT232, CP21XX, Ch340g и подобных. Это решение является более дешевым и не требует прошивки дополнительного связывающего контроллера, как описано выше.
Внимание! Не всё так однозначно с DCcduino UNO r3 на ch340g. В ней как раз и использован более дешевый, чем в оригинале, вариант преобразователя USB-TTL
На плате есть выход 3.3 В, он нужен для подключения периферии и некоторых датчиков, его пропускная способность по току равна 50 мА.
ATmega328 работает на частоте 16 МГц. Она фиксирована кварцевым резонатором, который вы можете, по желанию, заменить, тем самым ускорив работу Uno r3.
Важно! После замены кварцевого резонатора функции, связанные со временем, такие как Delay, не будут соответствовать введенным значениям. Это функция задержки времени, по умолчанию её аргументом является требуемое время задержки в мс
Функция прописана в библиотеках Ардуино, с учетом стандартной тактовой частоты в 16 МГц. Поэтому после замены кварца заданное время не будет соответствовать написанному. Для этого нужно либо подбирать опытным путем и устанавливать зависимости, либо править файлы библиотек.
Аналоги UNO r3
Все цифровые порты на плате выдают стабилизированное напряжение в 5 Вольт. Два верхних и нижних ряда соединены по — рядно вдоль всей платы. Никакого спама, только полезные идеи! Для работы с данным интерфейсом в среде Arduino IDE предусмотрена отдельная библиотека с одноименным названием.
Скетч Создание программы, которая будет выполняться микроконтроллером. Этот чип выполняет программы, которые хранятся в его памяти. Переменные используются в программах для хранения значений. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Попробуйте поменять задержку, чтобы посмотреть, как она работает.
Источник питания выбирается автоматически. Остальные выводы, через ограничительные резисторы, надо подсоединить к выводам ШИМ. Версия R3 незначительно отличается от предыдущих.
Связь На платформе Arduino Uno установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. Подробная информация находится в справочнике и инструкциях.
Но это не совсем так. Последовательный порт позволяет отправлять Arduino сообщения на компьютер, в то время, как сам контроллер выполняет программу. Вы не сможете считать или записать данные с пина, пока не установите его соответственно в pinMode.
Если вы загрузили и распаковали Zip архив или по какой-то причине плата неправильно распознана, выполните приведенную ниже процедуру. Некоторые из этих отверстий электрически соединены друг с другом. Остальные выводы, через ограничительные резисторы, надо подсоединить к выводам ШИМ. Принципиальная схема
Характеристики
В основе платы лежит процессор ATmega 328. Кроме него на плате находится модуль USB для связи с компьютером и прошивки. Этот модуль называется «USB-TTL преобразователь». На фирменных платах Arduino Uno для этой целей используется дополнительный микроконтроллер ATmega16U2.
Характеристики | Arduino Uno R3 |
Микроконтроллер | ATmega328 |
Рабочее напряжение | 5В |
Напряжение питания (рекомендуемое) | 7-12В |
Напряжение питания (предельное) | 6-20В |
Цифровые входы/выходы | 14 (из них 6 могут использоваться в качестве ШИМ-выходов) |
Аналоговые входы | 6 |
Максимальный ток одного вывода | 40 мА |
Максимальный выходной ток вывода 3.3V | 50 мА |
Flash-память | 32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком |
SRAM | 2 КБ (ATmega328) |
EEPROM | 1 КБ (ATmega328) |
Тактовая частота | 16 МГц |
Особенность этого чипа заключается в аппаратной поддержке USB, что позволяет организовывать связь без дополнительных преобразователей. В то время как ATmega328 не поддерживает такой функции, поэтому 16u2 выступает в роли преобразователя данных из USB в последовательный порт для МК AVR. В него залита программа для выполнения этой задачи.
Однако так происходит не всегда: в более мелких платах, таких как Arduino Nano, используют преобразователи уровней на базе различных микросхем, например FT232, CP21XX, Ch340g и подобных. Это решение является более дешевым и не требует прошивки дополнительного связывающего контроллера, как описано выше.
Внимание! Не всё так однозначно с DCcduino UNO r3 на ch340g. В ней как раз и использован более дешевый, чем в оригинале, вариант преобразователя USB-TTL
На плате есть выход 3.3 В, он нужен для подключения периферии и некоторых датчиков, его пропускная способность по току равна 50 мА.
ATmega328 работает на частоте 16 МГц. Она фиксирована кварцевым резонатором, который вы можете, по желанию, заменить, тем самым ускорив работу Uno r3.
Важно! После замены кварцевого резонатора функции, связанные со временем, такие как Delay, не будут соответствовать введенным значениям. Это функция задержки времени, по умолчанию её аргументом является требуемое время задержки в мс
Функция прописана в библиотеках Ардуино, с учетом стандартной тактовой частоты в 16 МГц. Поэтому после замены кварца заданное время не будет соответствовать написанному. Для этого нужно либо подбирать опытным путем и устанавливать зависимости, либо править файлы библиотек.
Загрузка библиотек и запуск SD card на Arduino
Чтобы подсоединиться к SD карте и свободно передавать на неё данные, потребуется написать немало кода, однако здесь нам поможет встроенная библиотека SD.
Библиотеку по работе с картами памяти можно найти на официальном сайте производителя микроконтроллера: https://www.arduino.cc/en/Reference/SD
Открыв подменю «образцов», найдите заготовку «cardinfo», именно её мы не будем использовать в качестве прописной функции при загрузке информации. Скетч пригодится лишь для проверки, опознаётся ли дополнительная память на устройстве. Проверяйте chipSelect, учитывая, что подключение идёт через 10 пин.
#include const int chipSelect = 4; void setup() { Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. } Serial.print(“Initializing SD card…”); pinMode(10, OUTPUT); //iniot SD card if (!SD.begin(chipSelect)) { Serial.println(“Card failed, or not present”); return; } Serial.println(“card initialized.”); } void loop() { String dataString = “”; // read three sensors and append to the string for (int analogPin = 0; analogPin < 3; analogPin++) { int sensor = analogRead(analogPin); dataString += String(sensor); if (analogPin < 2) { dataString += “,”; } } // open the file. File dataFile = SD.open(“data.txt”, FILE_WRITE); // if the file is available, write to it: if (dataFile) { dataFile.println(dataString); dataFile.close(); } // if the file isn’t open else { Serial.println(“error opening data.txt”); } }
Если всё прошло удачно, то на экран выведется информация о типе файловой системы и объёме вашей SD-карты. Если же производитель подсунул вам не лучший продукт, могут возникнуть ошибки. Здесь проще купить новую флешку, чем бороться с ошибками файловой системы, изначально заложенными в девайс.
Когда вы получите отклик от системы, можете начинать подгружать библиотеки и нужные вам файлы. SD-карта полностью работает и подключена, однако не забудьте протестировать несколько типов файловых систем, дабы подобрать оптимальный вариант по скорости и потреблению ресурсов. В каждом конкретном случае эти параметры будут разными, поэтому не бойтесь экспериментировать.
Автоматический (программный) сброс
Для того, чтобы не приходилось каждый раз перед загрузкой программы нажимать кнопку сброс, на плате UNO реализована аппаратная функция сброса, инициируемая с подключенного компьютера. Один из сигналов управления потоком данных (DTR) микросхемы ATmega16U2 подключен к выводу сброса микроконтроллера ATmega328 через конденсатор емкостью 0,1 мкФ. Когда сигнал DTR переходит в низкое состояние, формируется импульс сброса микроконтроллера. Это решение позволяет загружать программу одним нажатием кнопки из интегрированной среды программирования Arduino (IDE).
Вопрос эксперту
Есть ли недостатки у функции автоматического сброса?
При подключении платы UNO к компьютеру с операционной системой Mac Os X или Linux, микроконтроллер будет сбрасываться при каждом соединении программы с платой. В течение половины секунды на плате UNO будет запущен загрузчик. Несмотря на то, что программа загрузчика игнорирует посторонние данные, она может принять несколько байтов из пакета сразу после установки соединения.
Если в программе на плате Ардуино предусмотрено получение каких-либо данных при первом запуске, необходимо отпралять данные с задержкой примерно на 1 секунду после соединения. На модуле UNO существует дорожка, которую можно перерезать для отключения функции автоматического сброса. Дорожка маркирована надписью ”RESET-EN”. Автоматический сброс также можно запретить, подключив резистор сопротивлением 110 Ом между линией питания 5 В и выводом RESET.
Настройка Arduino IDE
После установки необходимо настроить программу. Сделать это очень легко:
1. Сначала подключите вашу ардуинку к компьютеру с помощью USB кабеля.
2. Потом перейдите в «Пуск >> Панель управления >> Диспетчер устройств«. Там надо найти «Порты COM и LPT». В этом списке будет указана ваша arduino и порт к которому она подключена (COM2). Запомните это значение.
Arduino Uno в диспетчере устройств
3. Теперь запускаем Arduino IDE и сразу идем в меню «Инструменты >> Порт«. Там необходимо выбрать тот COM порт, который вы запомнили.
Выбор COM порта
4. Далее надо выбрать плату. Для этого в меню»Инструменты >> Платы» выбираете модель вашей платы.
Выбор платы ардуино
На этом настройка закончена. Не забывайте, что эти настройки придется менять если вы подключите плату к другому USB порту или будите использовать другую плату.
Описание пинов платы
Микроконтроллер имеет 14 цифровых пинов, они могут быть использованы, как вход или выход. Из них 6 могут выдавать ШИМ-сигнал. Они нужны для регулировки мощности в нагрузке и других функций.
Пин ардуино | Адресация в скетче | Специальное назначение | ШИМ |
Цифровой пин 0 | RX | ||
Цифровой пин 1 | 1 | TX | |
Цифровой пин 2 | 2 | Вход для прерываний | |
Цифровой пин 3 | 3 | Вход для прерываний | ШИМ |
Цифровой пин 4 | 4 | ||
Цифровой пин 5 | 5 | ШИМ | |
Цифровой пин 6 | 6 | ШИМ | |
Цифровой пин 7 | 7 | ||
Цифровой пин 8 | 8 | ||
Цифровой пин 9 | 9 | ШИМ | |
Цифровой пин 10 | 10 | SPI (SS) | ШИМ |
Цифровой пин 11 | 11 | SPI (MOSI) | ШИМ |
Цифровой пин 12 | 12 | SPI (MISO) | |
Цифровой пин 13 | 13 | SPI (SCK) К выходу дополнительно подсоединен встроенный светодиод |
Вызов ШИМ-сигнала осуществляется через команду AnalogWrite (номер ножки, значение от 0 до 255). Для работы с аналоговыми датчиками присутствует 6 аналоговых входов/выходов.
Пин | Адресация в скетче | Специальное назначение |
Аналоговый пин A0 | A0 или 14 | |
Аналоговый пин A1 | A1 или 15 | |
Аналоговый пин A2 | A2 или 16 | |
Аналоговый пин A3 | A3 или 17 | |
Аналоговый пин A4 | A4 или 18 | I2C (SCA) |
Аналоговый пин A5 | A5 или 19 | I2C (SCL) |
Их тоже можно использовать, как цифровые.
Аналоговый сигнал обрабатывается 10 битным аналогово-цифровым преобразователем (АЦП), а при чтении микроконтроллер выдаёт численное значение от 0 до 1024. Это равно максимальному значению, которое можно записать в 10 битах. Каждый из выводов способен выдать постоянный ток до 40 мА.
Принципиальная схема платы выглядит так (нажмите для увеличения):
Описание пинов платы
Микроконтроллер имеет 14 цифровых пинов, они могут быть использованы, как вход или выход. Из них 6 могут выдавать ШИМ-сигнал. Они нужны для регулировки мощности в нагрузке и других функций.
Пин ардуино | Адресация в скетче | Специальное назначение | ШИМ |
Цифровой пин 0 | RX | ||
Цифровой пин 1 | 1 | TX | |
Цифровой пин 2 | 2 | Вход для прерываний | |
Цифровой пин 3 | 3 | Вход для прерываний | ШИМ |
Цифровой пин 4 | 4 | ||
Цифровой пин 5 | 5 | ШИМ | |
Цифровой пин 6 | 6 | ШИМ | |
Цифровой пин 7 | 7 | ||
Цифровой пин 8 | 8 | ||
Цифровой пин 9 | 9 | ШИМ | |
Цифровой пин 10 | 10 | SPI (SS) | ШИМ |
Цифровой пин 11 | 11 | SPI (MOSI) | ШИМ |
Цифровой пин 12 | 12 | SPI (MISO) | |
Цифровой пин 13 | 13 | SPI (SCK) К выходу дополнительно подсоединен встроенный светодиод |
Вызов ШИМ-сигнала осуществляется через команду AnalogWrite (номер ножки, значение от 0 до 255). Для работы с аналоговыми датчиками присутствует 6 аналоговых входов/выходов.
Пин | Адресация в скетче | Специальное назначение |
Аналоговый пин A0 | A0 или 14 | |
Аналоговый пин A1 | A1 или 15 | |
Аналоговый пин A2 | A2 или 16 | |
Аналоговый пин A3 | A3 или 17 | |
Аналоговый пин A4 | A4 или 18 | I2C (SCA) |
Аналоговый пин A5 | A5 или 19 | I2C (SCL) |
Их тоже можно использовать, как цифровые.
Аналоговый сигнал обрабатывается 10 битным аналогово-цифровым преобразователем (АЦП), а при чтении микроконтроллер выдаёт численное значение от 0 до 1024. Это равно максимальному значению, которое можно записать в 10 битах. Каждый из выводов способен выдать постоянный ток до 40 мА.
Принципиальная схема платы выглядит так (нажмите для увеличения):
Из чего состоит плата Arduino?
Выпускаются различные модели Arduino. Каждая из них «заточена» для различных задач. Некоторые платы принципиально отличаются от приведенной на рисунке ниже. Но большинство из них имеют следующие одинаковые узлы:
Разъем питания (USB / разъем для адаптера)
Каждая плата Arduino должна подключаться к источнику питания. Arduino Uno может запитываться от USB кабеля от вашего персонального компьютера Или от отдельного адаптера, который подключается к предусмотренному на плате разъему. На рисунке соединение через USB отмечено (1), а разъем для внешнего источника питания — (2).
USB также используется для загрузки вашей программы (скетча) на плату.
Примечание! Не используйте источник питания с напряжением на выходе более 20 вольт. Это может привести к тому, что ваша плата перегорит. Рекомендуемое напряжение питания для Arduino — от 6 до 12 вольт.
Разъемы (пины) (5V, 3.3V, GND, Analog, Digital, PWM, AREF)
Пины на вашей плате Arduino — это предусмотренные разъемы, к которым вы будете подключать провода от периферийных устройств (очень часто для прототипов используют монтажные платы (макетная плата, макетка) и провода с коннекторами на концах). На Arduino несколько типов пинов, каждый из которых подписан в соответствии с выполняемой функцией.
- GND (3): сокращение от ‘Ground’ — ‘Земля’. На платах несколько пинов GND, каждый из которых может использоваться для заземления вашей электрической цепи.
- 5V (4) и 3.3V (5): как вы могли уже догадаться — питы, которые на выходе обеспечивают питание 5 вольт и 3.3 вольт соответственно. Большинство компонентов, которые подключаются к Arduino, благополучно питаются именно от 5 или 3.3 вольт.
- Analog (6): на участке, который подписан ‘Analog In’ (от A0 до A5 на Arduino Uno) расположены аналоговые входы. Эти пины позволяют считывать сигналы от аналоговых датчиков (например, датчик температуры) и преобразовывать их в цифровые значения, которыми мы в дальнейшем оперируем.
- Digital (7): напротив аналоговых пинов находятся цифровые пины (от 0 до 13 на Arduino Uno). Эти пины используются для цифровых входящих (input) сигналов (например, нажатие кнопки) и для генерации цифровых исходящих (output) сигналов (например, питание светодиода).
- PWM (8): вы наверное заметили знак (~) рядом с некоторыми цифровыми пинами (3, 5, 6, 9, 10, и 11 на UNO). Эти пины работаю как в обычном цифровом режиме, так и в режиме ШИМ-модуляции (PWM). Если объяснить вкратце — эти пины могут имитировать аналоговый выходной сигнал (например, для постепенного затухания светодиода).
- AREF (9): Этот пин используется достаточно редко. В некоторых случаях это подключают в схему для установки максимального значения напряжения на аналоговых входах (от 0 до 5 вольт).
Кнопка сброса (Reset Button)
Как и на оригинальных Nintendo, на Arduino есть кнопка сброса (reset) (10). При нажатии на нее контакт сброса замыкается с землей и код, загруженный на Arduino начинает отрабатывать заново. Полезная опция, если ваш код отрабатывает без повторов, но вы хотите протестить его работу.
Индикатор питания (Power LED)
Немного справа и ниже надписи “UNO” установлен светодиод, подписанный «on» (11). Этот светодиод должен загореться, когда вы подключили Arduino к источнику питания. Если светодиод не загорелся — плохой знак ;).
Светодиоды TX и RX
TX — сокращение от transmit (передача), RX — от receive (прием). Эти условные обозначения часто встречаются в электронике для обозначения контактов, которые отвечают за серийный обмен данным. На Arduino Uno эти контакты встречаются два раза на цифровых пинах 0 и 1 и в качестве светодиодов TX и RX (12). Эти светодиоды позволяют визуально отслеживать, передает или принимает данные Arduino (например, при загрузке программы на плату).
Главная интегральная микросхема (IC)
Черная деталь с металлическими коннекторами с двух сторон это интегральная микросхема, микропроцессор (IC или Integrated Circuit) (13). Можете смело считать, что это «мозги» нашей Arduino. Этот чип разный в разных моделях Arduino, но обычно он относится к линейке микропроцессоров ATmega от компании ATMEL
Это может оказаться важной информацией для загрузки скетча на плату. Модель интегральной микросхемы обычно указана на ее верхней корпусной части
Для дополнительной информации о вашей микросхеме стоит обратиться к ее даташиту.
Регулятор напряжения
Регулятор напряжения (14) is выполняет функцию, указанную в названии — контролирует напряжение, которое поступает на плату Arduino. Можете его себе представить как охранника, который не пропускает слишком большое напряжение на плату во избежание ее повреждений. Конечно же, у регулятора есть свой предел. Так что питать Arduino напряжением больше 20 вольт нельзя.
Расположение выводов, распиновка
Разработчики платы Arduino очень удобно и логично расположили выводы платы. Дело в том, что при разработке на «чистых» МК АВР приходилось обращаться к выводу порта, для этого нужно было запомнить название каждой ножки на чипе. Здесь это гораздо проще. На самой плате указано название каждого из пинов. Удобства добавляет и то, что пины разбиты на 3 группы:
- Digital – блок цифровых пинов.
- Analog – блок аналоговых пинов.
- Power – блок пинов, которые связаны с питанием и работой микросхемы.
Распиновка платы При этом в разделе Digital пины, которые могут выдавать ШИМ-сигнал (PWM), помечены тильдой «~». Для служебных целей и проверки работоспособности контроллера на плате установлен светодиод, который подключен к 13-му выводу, а из среды разработки Arduino IDE к нему можно обращаться через встроенную директиву LED_BUILTIN. Такие схемы расположения пинов называются «Arduino UNO pinout», при этом, вместо UNO, может быть указано название другой платы, которая вас интересует.