Please reload

что свежего

тому, кто забрёл

29.06.2017

1/1
Please reload

приветствую

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

18.08.2015

Ряд публикаций на Галактике наглядно рассказывает об эффектном и полезном использовании светодиодных лент в детских проектах. Однако, ещё интереснее освоить управление яркостью светодиодной ленты, настроить различные режимы её свечения и так далее. Здесь уже будет не обойтись без программирования. Попробуем использовать плату 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 проводов "папа - папа"



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

 

Please reload