Урок 07: Получение дополнительных 5В и GND от Arduino | Курс Arduino Шаг за Шагом
В этом уроке из курса Robojax Arduino Step By Step мы рассмотрим практическое решение распространенной проблемы: нехватка контактов 5V и GND на вашей плате Arduino. Собираете ли вы проект, требующий питания сервопривода, ЖК-дисплея, ультразвукового датчика или комбинации устройств, ограниченное количество контактов питания на Arduino Uno или Nano может быстро стать узким местом. Это руководство демонстрирует, как творчески использовать любой цифровой контакт ввода/вывода в качестве дополнительного источника 5V или заземления, предоставляя вам гибкость для питания нескольких компонентов без необходимости во внешнем источнике питания для устройств с низким потреблением тока.
Этот метод особенно полезен для нескольких реальных применений, включая:
- Питание небольшого OLED- или ЖК-дисплея вместе с сервоприводом в одном проекте.
- Одновременное питание нескольких датчиков, таких как ультразвуковой датчик и датчик движения PIR.
- Создание временных тестовых схем на макетной плате, где вам нужен быстрый и простой источник питания для нового модуля.
- Питание маломощных светодиодов или логических схем, требующих чистой опорной линии 5V.
Понимание ограничений питания Arduino
Прежде чем углубиться в решение, крайне важно понять архитектуру питания вашей платы Arduino. На стандартной плате Arduino Uno у вас обычно есть один выделенный контакт 5V. На некоторых сторонних платах, как отмечается в видео, может быть второй контакт 5V, но даже в этом случае вам может понадобиться больше (в видео на 00:26).
Величина тока, который вы можете получить с этих контактов, зависит от вашего источника питания. Если вы питаете плату через USB, ток ограничен USB-портом или зарядным устройством, которое вы используете — например, зарядное устройство на 1A позволит получить до 1A, а зарядное устройство на 2.4A позволит больше (в видео на 01:55). Если вы используете разъем питания с источником 7-12В, ток регулируется встроенным чипом стабилизатора напряжения AMS1117, который имеет типичный предел тока 1.1A (в видео на 02:20).
Также важно отметить разъем ICSP на плате. Как объясняется в видео, этот разъем обеспечивает доступ к контактам SPI (последовательный периферийный интерфейс), и контакт с правой стороны на самом деле является VCC (5V), а последний контакт — GND (в видео на 00:54). Это дает вам еще одно физическое место для подключения к шине 5V.
Однако наиболее критическое ограничение, которое следует помнить, касается цифровых контактов ввода/вывода. Согласно официальной документации Arduino, каждый цифровой контакт может подавать или принимать максимум 20 миллиампер (мА) (в видео на 03:30). Этого более чем достаточно для светодиодов, логических схем и многих датчиков, но недостаточно для устройств с высоким потреблением тока, таких как двигатели или мощные сервоприводы. Для них всегда следует использовать основной контакт 5V или внешний источник питания.
Оборудование и компоненты
Для этой демонстрации вам понадобятся следующие компоненты:
- 1x плата Arduino (Uno, Nano или аналогичная)
- 1x светодиод (любого цвета)
- 1x резистор 1кОм
- 1x макетная плата
- Соединительные провода
- (Необязательно) ЖК-дисплей 1602 или модуль реле для демонстрации
Руководство по подключению
Подключение для этого проекта простое, так как в основном оно включает подключение цифрового контакта к шине питания вашего компонента и другого цифрового контакта к его земле. В видео инструктор демонстрирует это, питая светодиод.
Вот как это настроить:
- Подключите светодиод: Подключите анод (длинную ножку) светодиода к цифровому контакту 5 на вашей Arduino через токоограничивающий резистор 1кОм.
- Подключите землю: Подключите катод (короткую ножку) светодиода непосредственно к цифровому контакту 2 на вашей Arduino.
Эта простая схема позволяет контакту 5 действовать как источник 5V, а контакту 2 — как земля, замыкая цепь (в видео на 06:05).
Для более масштабируемого подхода вы можете использовать макетную плату для распределения питания, как показано в видео. Подключив красную шину питания макетной платы к контакту 5 и синюю/черную шину земли к контакту 2, вы можете легко питать несколько компонентов, подключая их к соответствующим шинам (в видео на 06:59).
Объяснение кода
Код, предоставленный для этого урока, исключительно прост, так как его единственная цель — настроить два цифровых контакта для работы в качестве контактов питания. Ключ к этой функциональности лежит в двух конфигурационных константах, определенных в верхней части скетча.
Вот настраиваемая пользователем часть кода:
#define VCC2 5 // определите контакт 5 или любой другой цифровой контакт здесь как VCC2
#define GND2 2 // определите контакт 2 или любой другой цифровой контакт как Ground 2
Эти две строки являются ядром настройки. Директива #define — это команда препроцессора, которая сообщает компилятору Arduino заменить каждое вхождение VCC2 на число 5 и каждое вхождение GND2 на число 2 перед компиляцией кода. Это делает изменение контактов, используемых для питания, невероятно простым. Если вы хотите использовать контакт 8 в качестве источника 5V, вам просто нужно изменить 5 на 8 в первой строке. Аналогично, вы можете изменить контакт земли, отредактировав вторую строку.
Остальная часть кода — это просто логика инициализации внутри функции setup(). Она устанавливает пин, определённый как VCC2, в режим OUTPUT, а затем записывает в него HIGH, что выдаёт 5В. И наоборот, она устанавливает пин, определённый как GND2, в режим OUTPUT и записывает в него LOW, что заставляет его работать как заземление. Как только это сделано в setup(), пины будут сохранять свои состояния всё время, пока Arduino находится под напряжением, и вы можете добавить свою основную программную логику в функцию loop().
Живая демонстрация проекта
В видео инструктор демонстрирует концепцию, загружая код на Arduino. После загрузки светодиод, подключённый между пином 5 и пином 2, немедленно включается, доказывая, что пин 5 подаёт напряжение, а пин 2 принимает ток как земля. Чтобы дополнительно проиллюстрировать эту мысль, он показывает, что перемещение подключения питания светодиода на другой, не настроенный цифровой пин приводит к тому, что светодиод не включается, так как этот пин не настроен на вывод 5В (в видео на 06:37).
Демонстрация также включает практический пример с использованием макетной платы. Подключив пин 5В к шине питания макетной платы и пин земли к шине земли, он одновременно запитывает дисплей 1602 LCD и модуль реле. Это показывает, как можно использовать этот метод для создания небольшой выделенной шины распределения питания для ваших низкотоковых компонентов, сохраняя проводку чистой и организованной (в видео на 06:59).
Заключение
Этот урок предлагает простой, но мощный приём для расширения возможностей вашей платы Arduino. Переопределяя цифровые пины как источники питания, вы можете решить распространённую проблему ограниченного количества подключений 5В и GND. Помните о критическом ограничении в 20мА на пин, и вы сможете безопасно питать различные датчики и небольшие модули в ваших будущих проектах.
Главы
- [00:00] Введение и обзор пинов 5В
- [00:54] Понимание разъёма ICSP и пинов SPI
- [01:55] Ограничения по току в зависимости от источника питания
- [03:30] Лимиты тока цифровых пинов и варианты использования
- [04:51] Объяснение кода для создания дополнительных 5В и GND
- [06:05] Демонстрация подключения со светодиодом
- [06:59] Масштабирование с распределением питания на макетной плате
/*
* S01-07 Additional 5V or GND pin.
If your Arduino board voltage is 3.3V, then we will get 3.3V and GND pin
* Arduino Sketch to give you extra 5V pin from Arduino
Please watch video instruction here https://youtu.be/pQKrl5Kpi50
This code is available at http://robojax.com/course1/?vid=lecture07
with over 100 lectures Free On YouTube. Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339
* Written by Ahmad Shamshiri for Robojax, robojax.com http://youtube.com/robojaxTV
* on Jan 01, 2019 at 08:54 in Ajax, Ontario, Canada
*
*/
#define VCC2 5 // define pin 5 or any other digital pin here as VCC2
#define GND2 2 // define pin 2 or any other digital pin as Ground 2
void setup() {
pinMode(VCC2,OUTPUT);//define a digital pin as output
digitalWrite(VCC2, HIGH);// set the above pin as HIGH so it acts as 5V
pinMode(GND2,OUTPUT);//define a digital pin as output
digitalWrite(GND2, LOW);// set the above pin as LOW so it acts as Ground
}
void loop() {
//Robojax Step By Step Arduino Course http://robojax.com/L/?id=338
}
Ресурсы и ссылки
-
Внешний
-
Внешний
-
Внешний
-
Внутренний
Файлы📁
Нет доступных файлов.