Как подать напряжение на пин ардуино
Перейти к содержимому

Как подать напряжение на пин ардуино

Как подать напряжение на пин ардуино

В данной статье мы познакомимся с такой великолепной и интересной по своим возможностям платформе как Arduino Uno. Данная статья является обзорной и ориентирована исключительно на начинающих.

Что такое Arduino UNO

Arduino UNO по своей природе это плата расширения для микроконтроллера, которая делает работу с данными микроконтроллером значительно проще и удобнее (в рассматриваемой нами Arduino UNO Rev3 установлен микроконтроллер ATmega328p).

Если бы микроконтроллер не обладал такой платой, то нам бы пришлось использовать программатор что бы запрограммировать данный микроконтроллер, а так же собрать необходимую минимальную электрическую схему из обязательных электронных компонентов что бы дать возможность работать микроконтроллеру. Так же нам бы пришлось использовать специальные средства программирования и разбирается в разных низкоуровневых настройках микроконтроллера связанной с такой "самостоятельной" работой с микроконтроллером.

Arduino UNO решает все эти проблемы, он предоставляет всю необходимую среду для работы микроконтроллера, а так же делает его программирование крайне простым делом не требующим от вас каких либо сложных знаний или дополнительного оборудования кроме вашего ПК. Более того, производители предоставили широкие возможности питания Arduino: USB или любой источник питания от 7В до 12В, что позволяет питать плату как от USB порта вашего ПК так и от блока питания или обычной батарейки, например "кроны".

Все что вам необходимо что бы запрограммировать ваш Arduino это подключить его по USB к вашему ПК и используя предоставленную среду разработки написать код и нажать кнопку "Загрузить на микроконтроллер", дальше среда разработки сделает все сама.

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

И так что же такое Arduino UNO теперь думаю немного понятнее, теперь давайте знаем что же он может.

Программа для Arduino

При программировании Arduino с помощью среды разработки, вам потребуется знать о назначений двух функций.

Когда микроконтроллер начинает выполнять вашу программу эта функция запускается самой первой, и запускается только ОДИН раз. Как правило ее назначение установить значения требуемых пинов (на вход или на выход, об этом мы поговорим чуть ниже) а так же произвести другие необходимые вашей программе начальные установки.

Эта функция и является основной рабочей функцией вашего Arduino. После выполнения функции setup() ваш микроконтроллер приступит к выполнению именно этой функции и когда функция дойдет до конца, микроконтроллер начнет ее выполнение повторно, и так до бесконечности. Думаю название функции loop (петля) говорит само за себя. В общем эта функция которая будет выполняться по кругу пока будет подключено питание.

Стандартный шаблон программы для Arduino выглядит так:

Включение требуемых файлов если нужно Объявление глобальных переменных если нужно Объявление прототипов функций если нужно void setup() < Код настройки >

Управление пинами Arduino

В целом, задача микроконтроллера сводится к тому что бы контролировать порты ввода-вывода, которые разработчики представили для нашего удобства в виде пинов. К данным пинам удобно подключатся, что делает процедуру подключения Arduino в схему весьма простым делом, не требуется ничего паять, нужно просто воткнуть соединительные провода в гнезда нужных пинов а другие концы подсоединить например к вашей схеме на макетной плате или к вашему проекту.

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

Обратите внимание, что пины вы можете указывать именно так как они пронумерованы на вашей плате, а среда разработки уже сама позаботится о том что бы превратить данные цифры в истинные адреса портов ввода-вывода, что в очередной раз облегает нам работу делая ее максимально простой и прозрачной.

Пины это средство общения вашего Arduino с внешним миром, с их помощью он может как "говорить" так и "слушать", но не все пины одинаковы.

На плате Arduino UNO существуют 3 вида пинов: Цифровые пины. Это пины: 0,1,2,4,7,8,12 Цифровые пины с функцией PWM (Широтно-импульсная модуляция). Это пины: 3,5,6,9,10,11,13 Аналоговые пины: Это пины: А0,А1,А2,А3,А4,А5

Цифровые пины Если пин работает на вход (INPUT), то любое напряжение на нем, рассматривается микроконтроллером как 1 (единица), а если напряжение отсутствует то 0 (ноль). Таким образом используя цифровой пин на выход, вы можете только узнать о том факте есть на пине напряжение или нет, но не то какой оно величины, для этого есть другие пины, о которых будет сказано чуть ниже. Получить информацию о состоянии данного типа пина в можете так:

В переменную val будет записано значение 1 или 0, что будет означать: 1 — есть напряжение, 0 — нет напряжения.

Если пин работает на выход (OUTPUT), то вы можете либо подать на пин максимальное напряжение либо подать на пин нулевое напряжение, но регулировать уровень напряжения вы не сможете. Подать напряжение на пин вы можете следующим образом:

Константы HIGH и LOW в данном контексте означают, подать/выключить (HIGH) и не подавать/выключить (LOW). В целом просто цифровой пин это как выключатель, имеющий лишь два положение либо "Вкл." либо "Выкл." и вы можете либо узнавать положение выключателя либо управлять этим выключателем.

Цифровые пины с функцией PWM Если пин работает на вход (INPUT), то он совершенно аналогичен обычному цифровому пину работающему на вход.

Если пин работает на выход (OUTPUT), то с помощью функции PWM мы получаем возможность контролировать напряжением и подавать его от нулевого до максимального (на самом деле меняется не напряжение а сигнал PWM но в целом выглядит именно как изменение напряжения). Для того что бы сделать это, вам потребуется всего пара строк кода (Запишите в требуемый цифровой пин с функцией PWM любое значение от 0 до 255):

Таким образом возможный диапазон напряжений "размазывается" по диапазону от 0 до 255 соответственно. То есть получается следующие, если к примеру ваш Arduino может выдавать на пин от 0В до +5В, то значение 0 будет равно 0В, значение 255 будет равно +5В, а например значение 128 будет равно 2.5В, так как 128 это половина диапазона 0-255. Таким образом вы можете рассчитать любое требуемое вам напряжение в данном диапазоне.

Аналоговые пины Если пин работает на вход (INPUT), то данный пин может узнавать уровень напряжения которое присутствует на нем. Эти пины как правило являются теми самыми "рабочими лошадками" которые получают информацию об уровне напряжения с различных аналоговых датчиков.(Например в эксперименте: Ночной светильник, вы будите получать информацию о напряжение с фоторезистора что бы определить уровень освещенности) Получить значение информацию об уровне напряжения на пине можно так:

В переменную val будет записано значение от 0 до 1023. Диапазон возвращаемых данной функцией значений от 0 до 1023, уровень напряжение на пине от нуля до максимального будет "размазано" по данному диапазону, таким образом 0 будет соответствовать отсутствию напряжения а 1023 будет соответствовать максимальному входящему напряжению.

Если пин работает на выход (OUTPUT), то данный пин работает совершенно так же как и цифровой пин с функцией PWM. И совершенно все что было сказано про цифровой пин с функцией PWM выше, применимо к аналоговым пинам работающим на выход. Установить требуемый уровень напряжения на пине можно так:

Важно обратить внимание на следующие, хотя пины и называются аналоговыми и способны изменять уровень входящего напряжения, так как микроконтроллер имеет встроенный АЦП (аналогово-цифровой преобразователь) но вот выходное напряжение достигается опять такие с помощью PWM сигнала, так как Arduino UNO не имеет встроенного ЦАП (цифро-аналоговой преобразователь) что бы выдавать аналоговый сигнал. Таким образом, в режиме работы аналоговых пинов на выход, вы получаете именно PWM сигнал. В большинстве случаев это не имеет никакого значения, но в некоторых ситуациях может быть очень важным.

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

А в заключении пара важных моментов которые вы обязаны помнить: Обязательно устанавливаете режимы пинов, (желательно делать это в функции setup), какой пин в каком режиме вы будите использовать, с помощью функции pinMode(), это обязательно, следите за этим. Arduino способен пропускать через каждый пин ток не более чем 20 mA (миллиампер), а это значит что вы должны всегда следить за этим в своих проектах, и при необходимости обязательно использовать токоограничивающие резисторы. В противном случае вы можете легко сжечь микроконтроллер. Максимальное напряжение питания 12В, не подавайте напряжение выходящие за этот предел, это может привести к выходу из строя вашего Arduino.

Вот в общем то и все, этих знаний об Arduino уже достаточно для ваших первых экспериментов. А теперь пришла пора от теории и скучного чтения перейти к практике, и начать уже наконец использовать ваш Arduino с эксперимента — Маячок.

ВВОД-ВЫВОД на Arduino

По умолчанию цифровые выводы в Arduino предустановлены на вход, так что их нет нужды явно объявлять как INPUT с помощью pinMode().

Выводы, сконфигурированные как INPUT, подразумеваются в состоянии с высоким импедансом (сопротивлением).

Если на порт ввода не поступает сигнал, то рекомендуется задать порту известное состояние. Это делается добавлением подтягивающих резисторов 10 кОм, подключающих вход либо к питанию +5 В, либо к земле.

Микроконтроллер ATmega имеет программируемые встроенные подтягивающие резисторы 20 кОм. Программирование данных резисторов осуществляется так:

Выводы, сконфигурированные как порты вывода находятся в низкоимпедансном состоянии. Данные выводы могут пропускать через себя достаточно большой ток. Выводы микросхемы ATmega могут быть источником тока до 40 мА.

digitalRead(pin) — Считывает значение заданного цифрового вывода (pin) и возвращает результат HIGH (=1) или LOW (=0). Вывод должен быть задан либо как переменная, либо как константа (0-13).

digitalWrite(pin, value); — задает либо логический уровень HIGH, либо LOW (включает или выключает) на заданном цифровом выводе pin.

Аналоговые входы

analogRead(pin) — cчитывает значение из заданного аналогового входа (pin) с 10-битовым разрешением. Эта функция работает только на аналоговых портах (0-5). Результирующее целое значение находится в диапазоне от 0 до 1023.

Аналоговые выводы не похожи на цифровые, и нет необходимости предварительно объявлять их как INPUT или OUTPUT (если только вы не планируете использовать их в качестве цифровых портов 14-18).

analogWrite(pin, value) , где value=0-255, — записывает псевдо-аналоговое значение, используя схему с широтно-импульсной модуляцией (ШИМ, PWM), на выходной вывод, помеченный как PWM. На новом модуле Arduino с ATmega168 (328), эта функция работает на выводах 3.

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

Аналоговые входы (номера от 14 до 19) также могут использоваться как цифровые выводы портов ввода/вывода:

Выводы аналоговые входов имеют подтягивающие резисторы работающие как на цифровых выводах. Включение резисторов производится командой

digitalWrite(14, HIGH); // включить резистор на выводе аналогового входа 0

пока вывод работает как порт ввода.

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

Питание Arduino:

1) VIN. Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.

Входное напряжение (рекомендуемое): 7-12 В.

Входное напряжение (предельное): 6-20 В.

2) 5V. Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.

Arduino.ru

Как правильно подать напряжение (сигнал) на аналоговый пин ардуино.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Всем привет! Делаю небольшой проект с помощью Arduino (в частности) для реального автомобиля Renault. Есть Arduino Pro Micro (китайский аналог оригинального Arduino Micro).

Ардуино питается 12 Вольтами от борт. сети автомобиля через стабилизированные через LM2596R-12 (в борт сети U = 11 . 15 В — все зависит от того работает ли автомобиль и как работает генератор и от других потребителей в авто).

В автомобиле есть «сигналы» которую идут на приборную панель (например включение ближнего или дальнего света фар, лампочка ручника и много много других). Но эти сигналы в автомобиле не стабилизрованы до 12 Вольт, а так же приходят сигналами от 11 до 15 В (смотря в каком состоянии сейчас автомобиль, заглушен или нет и тд).

Эти сигналы я хочу подавать на аналоговые пины Arduino (A).

1) Насколько я понял аналоговые входы питаются опорным напряжением Arduino которую я использую. Это 12 Вольт, которыми я питаю сам МК или это 5 Вольт которые понижает Arduino собственно говоря?

2) Как в данном примере мне лучше подать сигнал о чем либо (например включение ближнего света фар + дальнего света фар + сигнал ручника + сигнал включенного подогрева сидений)? Не ужели каждый такой сигнал понижать до опорного или как?

Плата Arduino Uno R3

Arduino Uno — плата на базе микроконтроллера ATmega328P с частотой 16 МГц. На плате есть все необходимое для удобной и быстрой работы с контроллером. Подробнее о микроконтроллере, плате и работе с ней расскажу далее в этой статье.

Arduino Uno — это базовая и самая популярная версия платы микроконтроллеров. С ней очень удобно работать благодаря тому, что пины распаяны однорядными коннекторами типа «мама». Обычно эту плату используют для прототипирования проектов, а собирают готовое устройство на базе более мелких плат ардуино, таких как Arduino Nano. Это легко сделать так как прошивки совместимы и в большинстве случаев номера пинов не отличаются. Для Arduino Uno существует множество плат расширения (шилдов), таких как Ethernet shield, motor shield, servo shield и другие.

Эта ардуинка бывает в двух разных вариантах: DIP и SMD. Отличаются они тем, что сам микроконтроллер может быть DIP исполнения (прямоугольный и ножками) и вставлен в колодку, или просто распаян на плате если это SMD версия (квадратный). Отличий в производительности, назначении пинов или их количестве в этих версиях нет.

На плате Arduino Uno R3 установлены: контроллер ATmega328P с тактовой частотой 16 МГц, порт USB, разъем питания, кварцевый резонатор, стабилизаторы напряжения на 5 вольт и на 3.3 вольта, светодиоды и кнопка перезагрузки.

Расположение основных элементов на плате Arduino UNO R3

Расположение основных элементов на плате Arduino UNO R3

Распиновка (pinout) Arduino Uno R3

Распиновка Arduino Uno

Распиновка Arduino Uno

Характеристики ардуино уно

  • Микроконтроллер: ATmega328P
  • Диапазон допустимого напряжения питания: 5-20 В
  • Рекомендуемое напряжение питания: 7-12 В
  • Количество цифровых вводов/выводов: 14
  • ШИМ: 6 цифровых пинов могут быть использованы как выводы ШИМ
  • Количество аналоговых выводов: 6
  • Максимальная сила тока: 40 mAh с одного вывода и 500 mAh со всех выводов.
  • Flash память: 32 кб
  • SRAM: 2 кб
  • EEPROM: 1 кб
  • Тактовая частота: 16 МГц

Подключение Arduino Uno к питанию

Эту плату можно питать четырьмя способами:

  1. Через порт USB. Можно питать ардуино от компьютера, powerbank, смартфона (если он поддерживает режим OTG) или от адаптера, вставленного в розетку.
  2. Через пин +5V. Этот пин является не только выводом, но и вводом. Будьте внимательны! На этот пин нужно подавать ровно 5 вольт. В противном случае можно спалить сам микроконтроллер.
  3. Через штекер питания, расположенный на плате. Можно использовать, батарейки, аккумуляторы и разнообразные блоки питания. Этот штекер подключен к пину VIN. О напряжении и мерах предосторожности написано в следующем пункте.
  4. Через пин VIN. Ток от этого пина проходит через встроенный стабилизатор напряжения. По заявлениям производителя можно подавать от 5 до 20 вольт. Но это не совсем так. Так как стабилизатор имеет не 100% КПД, то при подаче 5 вольт на пин VIN напряжения может не хватить на питание микроконтроллера, да и на цифровых пинах будет не 5 вольт, а меньше. Также не стоит работать на максимальном напряжении. При 20 вольтах на пине VIN будет сильно греться стабилизатор напряжения, вплоть до выхода из строя. Поэтому рекомендуется использовать напряжение от 7 до 12 вольт.

Как уже было написано выше, плата имеет 14 цифровых пинов. На плате они помечены с ведущей буквой «D» (digital или цифровой). Они могут быть как входом так и выходом. Рабочее напряжение этих пинов составляет 5 В. Каждый из них имеет подтягивающий резистор и поданное на один из этих пинов напряжения ниже 5 вольт все равно будет считаться как 5 вольт (логическая единица).

Аналоговые пины на плате помечены ведущей «A». Эти пины являются входами и не имеют подтягивающих резисторов. Они измеряют поступающее на них напряжение и возвращают значение от 0 до 1024 при использовании функции analogRead(). Эти пины измеряют напряжение с точностью до 0,005 В.

Работа с arduino uno в windows 10

Данная плата имеет разъем USB type B для подключения к компьютеру. Обратите внимание, что платы от китайских производителей имеют микросхему CH340 для связи по usb. По умолчанию Windows 10 может не иметь подходящего драйвера, так что вам придется скачать и установить его самостоятельно. Описание драйвера и ссылки на скачивание вы найдете в статье «драйвер CH340».

Для дальнейшей работы с Arduino uno в Windows 10 вам понадобится программа Arduino IDE. Эта программа поможет вам писать скетчи (прошивки), исправлять ошибки и прошивать вашу плату. Вы можете использовать и другое ПО, если в нем есть поддержка работы с синтаксисом ардуино и COM портами. Я подробно рассказал как скачать, установить и пользоваться Arduino IDE, так что у вас не должно возникнуть проблем с этим.

Физические характеристики

Arduino Uno имеет следующие размеры: длина 69 мм и ширина 53 мм. Однако разъем питания и разъем USB немного выпирают за пределы печатной платы. Arduino Uno весит около 25 грамм. Плата имеет 4 отверстия для возможности ее закрепления на поверхности. Расстояние между выводами равняется 2,5 мм, кроме выводов 7 и 8. Между ними 4 мм.

Принципиальная схема

Принципиальная схема Ардуино Уно

Принципиальная схема Ардуино Уно

Монтажная схема

Монтажная схема Arduino Uno

Монтажная схема Arduino Uno

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

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