Uno digital pwm что это
Цифровые и аналоговые пины Ардуино
Назначение пинов Arduino плат: Uno, Nano, Mega 2560 — важная информация, для тех кто начал свое знакомство с микроконтроллерами этого семейства. Мы решили в этом обзоре максимально подробно описать аналоговые, цифровые и шим пины Arduino, также вы узнаете, как сделать аналоговые пины цифровыми. Еще мы рассмотрим назначение пинов с дополнительными функциями: SDA и SCL, TX и RX, и другие.
Аналоговые, цифровые и шим пины Ардуино
Все пины можно разделить на несколько видов, различие будет только в количестве данных выводов на различных платах. Например, на Arduino Mega 2560 цифровых и аналоговых портов, значительно больше, чем на Uno или Nano из-за большего размера платы и производительности микроконтроллера. В остальном характеристики и способы программирования пинов не отличаются друг от друга.
Режим пинов назначается в процедуре void setup с помощью pinMode(), например:
Пояснения к коду:
Мы не случайно разделили пины с ШИМ модуляцией (PWM Pins) и аналоговые. PWM пины создают аналоговый сигнал, к ним подключают сервопривод, шаговый двигатель и другие устройства, где требуется подавать сигнал с разными характеристиками. Аналоговые пины (Analog In) используются для подключения аналоговых датчиков, с них входящий сигнал преобразуется в цифровой с помощью встроенного АЦП.
Ардуино Uno пины: шим, аналоговые, цифровые
Arduino UNO распиновка платы на русском
ШИМ (PWM) порты (Analog Out) | 3, 5, 6, 9, 10, 11 |
Аналоговые порты (Analog In) | A0, A1, A2, A3, A4, A5 на некоторых платах: A6, A7 |
Цифровые порты (Digital In/Out) | все порты со 2 по 13 пин можно использовать: A0 — A7 |
Из таблицы видно, какие пины на Arduino UNO поддерживают шим. Аналоговые пины (Analog In) используют, как цифровые если недостаточно портов общего назначения, например, вы хотите подключить к плате 15 светодиодов. Кроме того, на плате Arduino Uno и Nano порты A4 и A5 используются для I2C протокола (SDA и SCL пины) — они работают параллельно с пинами A4 и A5. Об этом мы расскажем чуть позже.
Ардуино Nano пины: шим, аналоговые, цифровые
Arduino Nano распиновка платы на русском
ШИМ (PWM) порты (Analog Out) | 3, 5, 6, 9, 10, 11 |
Аналоговые порты (Analog In) | A0, A1, A2, A3, A4, A5 на некоторых платах: A6, A7 |
Цифровые порты (Digital In/Out) | все порты со 2 по 13 пин можно использовать: A0 — A7 |
Если вы заметили, то пины на Arduino Nano и Uno имеют одинаковое количество и назначение. Платы отличаются лишь своими габаритами. Nano — более компактная и удобная плата, для экономии места на нее не ставят разъем питания, для этого используются пины Vin и GND на которое подается питание от источника.
Ардуино Mega пины: шим, аналоговые, цифровые
Схема распиновки платы Arduino Mega 2560 r3
ШИМ (PWM) порты (Analog Out) | все порты со 2 по 13 пин дополнительно: 44, 45, 46 пин |
Аналоговые порты (Analog In) | с A0 до A15 |
Цифровые порты (Digital In/Out) | все порты со 2 по 13, со 22 по 52 пин можно использовать: A0 — A15 |
Пины коммуникации нежелательно использовать, как обычные цифровые порты. Особенно при таком количестве портов общего назначения, как на Mega 2560. Более подробную информацию о рассмотренных платах, а также о других микроконтроллерах семейства Arduino (Pro Mini, Leonardo, Due и пр.): характеристики, описание пинов, габариты и т.д. можно узнать в разделе Микроконтроллеры на нашем сайте.
Аналоговые пины Ардуино, как цифровые
Как вы уже поняли, при подключении большого количества устройств к плате, пинов общего назначения может не хватить. Тогда в скетче указываете, что вы используете аналоговые пины, как цифровые. Также можно использовать не буквенное, а цифровое обозначение выходов, т.е. A0 — это 14 пин, A1 — это 15 пин и т.д. (работает только на Uno или Nano). В следующем примере две строчки имеют одинаковое значение.
Пины коммуникации на плате Arduino
Назначение пинов SDA, SCL Arduino
Данные пины используются для приема/передачи информации по протоколу I2C. Например, при подключении жк дисплея с модулем I2C или GPS модуля. С помощью специальной библиотеки микроконтроллер может обмениваться информацией с подключенным периферийным устройством, поддерживающим данный протокол. На Ардуино Мега, в отличии от Уно и Нано, имеется целых три пары пинов SDA, SCL.
Назначение пинов TX, RX Arduino
Пины TX/RX также используются для коммуникации, но уже по протоколу UART. На платах Уно и Нано пины TX/RX подключены параллельно USB разъему для связи с компьютером. Поэтому, если вы подключите к данным портам устройство, например, блютуз модуль, то вы не сможете загрузить в Ардуино скетч, так как плата автоматически переключается на чтение данных с устройства, а не с компьютера.
Изменение частоты ШИМ (PWM) Ардуино
Широтно-импульсная модуляция (ШИМ) Arduino UNO и NANO работает на аналоговых выходах 3, 5, 6, 9, 10, 11 с частотой 488,28 Гц. С помощью функции analogWrite частота ШИМ изменяется в диапазоне 0 до 255 и соответствует коэффициенту заполнения импульса от 0 до 100 %. Для многих устройств частота PWM Arduino NANO слишком мала, поэтому ее требуется увеличить. Рассмотрим, как это правильно сделать.
Широтно-импульсная модуляция Arduino
График. Параметры сигнала, коэффициент заполнения ШИМ
Можно выделить две области применения широтно-импульсной модуляции:
1. PWM используется в источниках питания, регуляторах мощности и т.д. Применение ШИМ на Arduino Nano позволяет значительно упростить управление яркостью источников света (светодиодов, LED-ленты) и скоростью вращения двигателей.
2. PWM используется для получения аналогового сигнала. Цифро-аналоговый преобразователь (ЦАП) на Ардуино прост в реализации, так как требует минимума радиоэлементов — достаточно одной RC цепочки из резистора и конденсатора.
Изменение частоты ШИМ Ардуино (разрядности)
Схема. Широтно-импульсная модуляция для чайников
В Arduino на базе ATmega168/328 для ШИМ используются три таймера:
Таймер 0 — выводы 5 и 6
Таймер 1 — выводы 9 и 10
Таймер 2 — выводы 3 и 11
ШИМ Ардуино определяется интегральными компонентами, называемыми таймерами. Каждый таймер в платах Arduino Uno и Nano на базе микроконтроллера ATmega168/328 имеет по два канала, подключенных к выходам. Для изменения частоты PWM сигнала требуется изменение таймера, к которому он подключается. При этом PWM изменится и на аналоговых выходах, подключенных параллельно к этому же таймеру.
Как увеличить частоту и разрядность ШИМ Ардуино
Не существует способа изменить частоту ШИМ Arduino без прямого управления памятью на низком уровне. Рассмотрим далее, как изменить режим работы таймера, чтобы увеличить частоту (frequency) ШИМ Ардуино. Таймер 0 используется для расчета времени, т.е. функции delay и millis. Увеличение частоты на Таймер 0 приведет к нарушению функций сохранения времени, которые могут использоваться в скетче.
Чтобы увеличить разрядность Ардуино на 9 и 10 аналоговом выходе, изменим частоту Таймера 1 без библиотеки. Максимальная частота PWM может достигать на платах Ардуино Уно и Нано — 62 500 Гц. Для этого в процедуре void setup() необходимо добавить соответствующую команду из таблицы, которая приведена далее.
Разрешение | Частота ШИМ | Команды установки режима |
8 бит | 62 500 Гц | TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x09; |
7 812,5 Гц | TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x0a; | |
976,56 Гц | TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x0b; | |
244,14 Гц | TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x0c; | |
61,04 Гц | TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x0d; |
Максимальная частота ШИМ Ардуино (Arduino PWM Frequency) — 62 500 Гц.
Arduino Uno: распиновка, схема подключения и программирование
Arduino Uno — флагманская платформа для разработки на языке программирования С++.
Uno выполнена на микроконтроллере ATmega328P с тактовой частотой 16 МГц. На плате предусмотрены 20 портов входа-выхода для подключения внешних устройств, например плат расширения или датчиков.
Видеообзор
Подключение и настройка
Шаг 1
Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B).
Шаг 2
Установите и настройте интегрированную среду разработки Arduino IDE.
Что-то пошло не так?
Пример работы
После загрузки программы встроенный светодиод L начнёт мигать раз в секунду.
Это значит, всё получилось, и можно смело переходить к другим экспериментам на Ардуино.
Элементы платы
Микроконтроллер ATmega328P
Сердцем платформы Arduino Uno является 8-битный микроконтроллер фирмы Microchip — ATmega328P на архитектуре AVR с тактовой частотой 16 МГц. Контроллер обладает тремя видами памяти:
Микроконтроллер ATmega16U2
Микроконтроллер ATmega328P не содержит USB интерфейса, поэтому для прошивки и коммуникации с ПК на плате присутствует дополнительный микроконтроллер ATmega16U2 с прошивкой USB-UART преобразователя. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт.
Светодиодная индикация
Порт USB Type-B
Разъём USB Type-B предназначен для прошивки и питания платформы Arduino. Для подключения к ПК понадобится кабель USB (A — B).
Разъём питания DC
Коннектор DC Barrel Jack для подключения внешнего источника напряжения в диапазоне от 7 до 12 вольт.
Понижающий регулятор 5V
Понижающий линейный преобразователь NCP1117ST50T3G обеспечивает питание микроконтроллера и другой логики платы при подключении питания через разъём питания DC или пин Vin. Диапазон входного напряжения от 7 до 12 вольт. Выходное напряжение 5 В с максимальным выходным током 1 А.
Понижающий регулятор 3V3
Кнопка сброса
Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.
ICSP-разъём ATmega328P
ICSP-разъём выполняет две полезные функции:
ICSP-разъём ATmega16U2
ICSP-разъём предназначен для программирования микроконтроллера ATmega16U2. А подробности распиновки читайте в соответствующем разделе.
Что такое ШИМ и как она используется в Arduino
Давайте разберёмся, что скрывается за аббревиатурой ШИМ, как это работает, для чего нужно и как мы можем использовать её в работе с Arduino.
Инструкция по использованию ШИМ в Arduino
1 Общие сведенияо широтно-импульсной модуляции
Цифровые выводы Arduino могут выдавать только два значения: логический 0 (LOW, низкий уровень) и логическую 1 (HIGH, высокий). На то они и цифровые. Но есть у Ардуино «особые» выводы, которые обозначаются PWM. Их иногда обозначают волнистой чертой «
» или обводят кружочками или ещё как-то выделяют среди прочих. PWM расшифровывается как Pulse-width modulation или широтно-импульсная модуляция, ШИМ.
Обозначение выходов с ШИМ на Arduino Leonardo
Если скважность равняется 100%, то всё время на цифровом выходе Arduino будет напряжение логическая «1» или 5 вольт. Если задать скважность 50%, то половину времени на выходе будет логическая «1», а половину – логический «0», и среднее напряжение будет равняться 2,5 вольтам. Ну и так далее.
Принцип работы широтно-импульсной модуляции (ШИМ)
В программе скважность задаётся не в процентах, а числом от 0 до 255. Например, команда analogWrite(10, 64) скажет микроконтроллеру подать на цифровой PWM выход №10 сигнал со скважностью 25%.
Выводы Arduino с функцией широтно-импульсной модуляции работают на частоте около 500 Гц. Значит, период следования импульсов – около 2 миллисекунд, что и отмеряют зелёные вертикальные штрихи на рисунке. Получается, что мы можем сымитировать аналоговый сигнал на цифровом выходе! Интересно, правда?!
2 Схема для демонстрации широтно-импульсной модуляции в Arduino
Схема для демонстрации ШИМ в Arduino
3 Пример скетча с ШИМ
Откроем из примеров скетч «Fade»: Файл Образцы 01.Basics Fade.
Открываем скетч для Arduino с использованием ШИМ
Немного изменим его и загрузим в память Arduino.
4 Управление яркостью светодиода с помощью PWM и Arduino
Включаем питание. Светодиод плавно наращивает яркость, а затем плавно уменьшает. Мы сымитировали аналоговый сигнал на цифровом выходе с помощью широтно-импульсной модуляции.
Управление яркостью светодиода – пример широтно-импульсной модуляции, используемой в Arduino
Посмотрите приложенные видео, где на экране осциллографа DSO138 наглядно показано изменение яркости светодиода, и как при этом меняется сигнал с Arduino.
Uno digital pwm что это
Главное меню
Последние статьи
Последние комментарии
Самое читаемое
Знакомство с Arduino UNO на примере китайского аналога
Решился я на Arduino UNO R3 и заказал его на AliExpress, вернее его китайский аналог.
Подключение к ПК и установка драйвера.
Ввиду того что в данном китайском аналоге Arduino для подключения к USB используется микросхема CH340G, предоставленные драйвера не подойдут для оригинальной Arduino и их аналогов, которые содержат в своём составе микросхему ATMEGA16U2.
Драйвер для Windows 98/ME/2000/XP/Server 2003/2008/2012/2016/VISTA/Win7/Win8/8.1/Win10 32/64 bit:
Скачиваем архив, распаковываем и запускаем файл SETUP.EXE. Выбираем INSTALL.
В процессе установки драйвера замигает светодиод RX, после установки появится соответствующее сообщение, нажимаем «Ок«.
В диспетчере устройств появится новое устройство «USB-Serial CH340«. В моём случае устройство подключилось на порт COM7, у каждого может быть любой другой номер порта, главное его запомнить для будущей работы.
Первый скетч.
Программа для Arduino называется скетч. Для того что бы записать в Arduino скетч нужно установить на компьютер среду разработки Arduino. Скачиваем последнюю версию и распаковываем. Запускаем среду разработки файлом arduino.exe.
Программа по-умолчанию загрузилась у меня с русским интерфейсом.
В списке «Язык редактора» можно выбрать любой другой язык, нажать «Ок» и перезапустить среду разработки. В составе имеются белорусский, украинский и другие языки.
Так же нужно проверить что бы правильно была выбрана платформа Arduino, для этого переходим в «Инструменты» – «Плата:» У меня по-умолчанию была правильно выбрана Anduino UNO, если у Вас что то другое, выбирайте свою платформу со списка.
Теперь попробуем запустить свой первый скетч на Arduino, который будет мигать светодиодом.
В новом окне откроется код программы. Теперь подготовим светодиод для нашей программы. На многих платах как и на моей, нужный светодиод был уже впаян вместе с остальными радиодеталями.
Когда всё готово, остаётся загрузить программу для мигания светодиодом в микроконтроллер. В среде разработчика жмём на кнопку «Вгрузить«, для загрузки скетча в Anduino.
После того как скетч будет удачно закружен, светодиод начнёт мигать, в моём случае мигал светодиод тот что был распаян на плате и тот что я подключил к пинам.
Для того что бы выключить Anduino, достаточно разъединить плату с USB кабелем.
На этом можно закончить первое знакомство с платформой, убедившись что всё работает исправно. Здесь можно заказать подобный аналог Arduino UNO.