Код для поиска

Урок 07: Получение дополнительных 5В и GND от Arduino | Курс Arduino Шаг за Шагом

Урок 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 или модуль реле для демонстрации

Руководство по подключению

Подключение для этого проекта простое, так как в основном оно включает подключение цифрового контакта к шине питания вашего компонента и другого цифрового контакта к его земле. В видео инструктор демонстрирует это, питая светодиод.

Вот как это настроить:

  1. Подключите светодиод: Подключите анод (длинную ножку) светодиода к цифровому контакту 5 на вашей Arduino через токоограничивающий резистор 1кОм.
  2. Подключите землю: Подключите катод (короткую ножку) светодиода непосредственно к цифровому контакту 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] Масштабирование с распределением питания на макетной плате

Изображения

Arduino UNO R3 compatible development board
Arduino UNO R3 compatible development board
538-Lesson 7: Getting Additional 5V and GND from Arduino
Язык: C++
/*
 * 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


}

Ресурсы и ссылки

Файлы📁

Нет доступных файлов.