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

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

  • автор:

Arduino.ru

Подает HIGH или LOW значение на цифровой вход/выход (pin).

Если вход/выход (pin) был установлен в режим выход (OUTPUT) функцией pinMode(), то для значение HIGH напряжение на соответствующем вход/выходе (pin) будет 5В (3.3В для 3.3V плат), и 0В(земля) для LOW.

Если вход/выход (pin) был установлен в режим вход (INPUT), то функция digitalWrite со значением HIGH будет активировать внутренний 20K нагрузочный резистор. Подача LOW в свою очередь отключает этот резистор. Нагрузочного резистра достаточно чтобы светодиод, подключенный к входу, светил тускло. Если вдруг светодиод работает, но очень тускло, возможно необходимо установить режим выход (OUTPUT) функцией pinMode().

Замечание. Вход/выход 13 сложнее использовать как цифровой вход, т.к. он имеет встроенный в плату резистор и светодиод. Если вы активируете еще внутренний нагрузочный резистор 20K, то напряжение на этом входе будет около 1.7В, вместо ожидаемых 5В, т.к. светодиод и добавочный резистор снижает напряжение, т.е. Вы всегда будете получать LOW. Если же Вам все же необходимо использовать 13ый вход/выход, то используйте внешний нагрузочный резистор.

Синтаксис
Параметры
  • pin: номер вход/выхода(pin)
  • value: значение HIGH или LOW
Возвращаемое значение
Пример
int ledPin = 13; // Светодиод подключенный к вход/выходу 13 void setup() < pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход >void loop() < digitalWrite(ledPin, HIGH); // включает светодиод delay(1000); // ждет секунду digitalWrite(ledPin, LOW); // выключает светодиод delay(1000); // ждет секунду >
Примечание

Аналоговые входы (analog pins) могут быть использованы как цифровые вход/выходы (digital pins). Обращение к ним идет по номерам от 14 (для аналогового входа 0) до 19 (для аналогового входа 5).

Смотрите также
  • pinMode()
  • digitalRead()
  • Описание цифровых вход/выходов

Arduino.ru

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

  • Войдите на сайт для отправки комментариев

Вс, 17/07/2022 — 18:01
Зарегистрирован: 16.07.2022

Всем привет! Делаю небольшой проект с помощью 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. Данная статья является обзорной и ориентирована исключительно на начинающих.

Что такое 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, которая например может выглядеть так:

pinMode(6, OUTPUT); // 6 пин будет работать на выход pinMode(5, INPUT) // 5 пин будет работать на вход

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

Пины это средство общения вашего 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 (ноль). Таким образом используя цифровой пин на выход, вы можете только узнать о том факте есть на пине напряжение или нет, но не то какой оно величины, для этого есть другие пины, о которых будет сказано чуть ниже. Получить информацию о состоянии данного типа пина в можете так:

int val = digitalRead(4); // Получить состояние пина 4:

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

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

digitalWrite(4, HIGH); // Подать максимальное напряжение на пин 4 digitalWrite(4, LOW); // Подать нулевое напряжение на пин 4

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

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

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

analoglWrite(6, 0); // Подать нулевое напряжение на 6 пин digitalWrite(6, LOW); // То же самое что и analoglWrite(6, 0); analogWrite(6, 128); // Подать половину максимального напряжения на 6 пин analogWrite(6, 255); // Подать максимальное напряжение на 6 пин digitalWrite(6, HIGH); // То же самое что и analogWrite(6, 255);

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

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

int val = analogRead(A0); // Получить уровень напряжения на пине А0

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

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

analogWrite(A0, 0); // Установить нулевое напряжение на пине А0 digitalWrite(A0, LOW); // То же самое что и analogWrite(A0, 0); analogWrite(А0, 128); // Установить половину максимального напряжения на А0 пин analogWrite(A0, 255); // Установить максимальное напряжение на пине А0 digitalWrite(A0, HIGH); // То же самое что и analogWrite(A0, 255);

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

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

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

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

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International

Производные работы должны содержать ссылку на http://wiki.amperka.ru, как на первоисточник, непосредственно перед содержимым работы.
Вики работает на суперском движке DokuWiki.

arduino-быстрый-старт/arduino-uno.txt · Последние изменения: 2014/06/23 18:51 — acos

Инструменты страницы

  • Показать исходный текст
  • История страницы
  • Ссылки сюда
  • Наверх

Плата Arduino Uno R3

Плата Arduino Uno R3

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

Купить 70.05 ₽ Arduino Uno R3

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

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

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

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

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

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

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

Для отправки комментария вам необходимо авторизоваться.

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

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