Подключение светодиодной ленты к Arduino

Ряд публикаций на Галактике наглядно рассказывает об эффектном и полезном использовании светодиодных лент в детских проектах. Однако, ещё интереснее освоить управление яркостью светодиодной ленты, настроить различные режимы её свечения и так далее. Здесь уже будет не обойтись без программирования. Попробуем использовать плату Arduino для того, чтобы заставить ленту работать в разных режимах.

Шаг 1. Подключаем LED-ленту к Arduino. Светодиодная лента рассчитана на питание 12 В, а контроллер Arduino Uno, имеющийся в нашем распоряжении, имеет рабочее напряжение 5 В. Поэтому необходимо повышение вольтажа при помощи транзистора, который с помощью слабого сигнала помогает управлять более сильным. Для этих целей можно использовать биполярный NPN-транзистор, его максимальное напряжение - 50 В, он достаточно компактен и рассчитан на небольшие нагрузки. Средняя ножка транзистора - это база, как раз на неё будет подаваться сигнал с микроконтроллера (в нашем случае это пин 9), и она будет играть роль своеобразной кнопки. Две другие ножки - коллектор и эмиттер. Коллектор соединяется с "минусом" светодиодной ленты, а эмиттер подсоединён к выходу GND на Arduino. Базу транзистора подключаем через резистор на 1 кОм, чтобы не повредить транзистор. Шаг 2. Написание и проверка скетчей для разных режимов работы. Теперь мы подаём сигнал на базу транзистора, в результате чего управляем сразу всеми светодиодами ленты. Поэтому скетчи не будут отличаться от программ, написанных для управления яркостью светодиодов. Пример 1. Быстро мигающие светодиоды ленты

Код

void setup() { pinMode(9, OUTPUT); } void loop() { digitalWrite(9, HIGH); delay(100); digitalWrite(9, LOW); delay(100); }

Пример 2. Плавная пульсация с нарастанием яркости (описание подобного проекта на сайте Амперки)

Код

#define CONTROL_PIN 9 int brightness = 0; void setup() { pinMode(CONTROL_PIN, OUTPUT); } void loop() { brightness = (brightness + 1) % 256; analogWrite(CONTROL_PIN, brightness); delay(10); }

Пример 3. Пульсация с нарастанием и убыванием яркости. Скетч для светодиода можно найти в примерах в среде Arduino IDE (Файл - Примеры - Basics - Fade).

Код

int led = 9; int brightness = 0; int fadeAmount = 5; void setup() { pinMode(led, OUTPUT); } void loop() { analogWrite(led, brightness); brightness = brightness + fadeAmount; if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount; } delay(30); }

Шаг 3. Добавляем управление разными режимами работы. Делать это можно с помощью тактовой кнопки. Подключим кнопку через резистор на 10 кОм. На схеме ниже светодиодная лента указана как LED (кстати, это мой первый опыт работы в программе Fritzing).

Для проверки работоспособности системы следует начать с простого скетча. Пример 4. Включение всех светодиодов ленты по нажатию на кнопку

Код

const int buttonPin = 2; const int ledPin = 9; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }

Если всё получилось, то теперь в конструкцию if...else... можно вписывать опробованные ранее режимы работы. Например, так:

Итак, для подобных экспериментов вам будет необходимо следующее:

  • микроконтроллер

  • батарейка на 9В

  • одноцветная LED-лента

  • биполярный npn-транзистор

  • тактовая кнопка

  • резисторы на 1 кОм и 10 кОм

  • 8 проводов "папа - папа"

Напишите о ваших успехах.

#arduino #STEM #programming

приветствую
что свежего
рубрики

Пишите

Заходите

  • Facebook Clean
  • White Vkontakte Icon

© Nat Yanikova

Псков, Россия