Site Loader

Содержание

Светодиодная панель с Arduino [Амперка / Вики]

Светодиодные матрицы не содержат на борту микроконтроллеров, памяти и контроллеров ШИМ. По принципу своей работы панели рассчитаны на использования технологии «CPLD» или «FPGA». Arduino Mega 2560 удалось адаптировать для управления матрицей, но для полной раскачки панели вам необходимо найти более высокоскоростной контроллер.

Видеообзор

Что понадобится

Подключение и настройка

Шаг 1

Подключите 16-проводной шлейф к входному сигнальному разъёму матрицы DATA IN.

Шаг 2

С помощью проводов «папа-папа» подключите второй конец шлейфа к платформе Arduino Mega 2560.

Номера пинов изменять нельзя

Вывод шлейфа Вывод Arduino Mega
R1 24
G1 25
B1 26
GND GND
R2 27
G2 28
B2 29
GND GND
A A0
B A1
C A2
D A3
CLK 11
LAT 10
OE 9
GND GND

Шаг 3

Подключите питание на светодиодную матрицу через силовой шнур. Один конец провода к блоку питания, а второй — в разъём POWER на матрице. Каждая LED панель питается строго от 5 вольт. Потребление тока зависит от вида матрицы.

При подключении нескольких светодиодных панелей, соответственно увеличивайте запас по току в N-раз, где N — количество матриц в цепочке.

На схеме матрицы нет встроенного регулятора напряжения. При подаче напряжения более 5 вольт — вы убьёте LED панель.

Железо собрано. Теперь можно переходить к примерам работы.

Примеры работы

Для работы примеров скачайте и установите библиотеки RGBmatrixPanel,Adafruit_BusIO и Adafruit GFX через менеджер библиотек Arduino.

Тест матрицы

Для начала сделаем простой тест светодиодов «битых пикселей» на матрице.

fillColorTest.ino
// библиотека для работы с матрицей
#include <RGBmatrixPanel.h>
// установите и скачайте также библиотеку «Adafruit GFX Library»
// «RGBmatrixPanel» наследуется от «Adafruit GFX Library»
 
// управляющие пины матрицы
#define CLK   11
#define OE    9
#define LAT   10
#define A     A0
#define B     A1
#define C     A2
#define D     A3
 
// объявляем объект для работы с матрицей 64х32
// включаем двойную буферизацию
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, true, 64);
 
int color;
 
void setup() {
  // инициируем работу с матрицей
  matrix.begin();
}
 
void loop() {
  // закрашиваем матрицу в красный цвет
  matrix.fillScreen(matrix.Color888(255, 0, 0));
  // выводим цвет из буфера на экран
  matrix.swapBuffers(false);
  delay(1000);
  // закрашиваем матрицу в зелёный цвет
  matrix.fillScreen(matrix.Color888(0, 255, 0));
  // выводим цвет из буфера на экран
  matrix.swapBuffers(false);
  delay(1000);
  // закрашиваем матрицу в синий цвет
  matrix.fillScreen(matrix.Color888(0, 0, 255));
  // выводим цвет из буфера на экран
  matrix.swapBuffers(false);
  delay(1000);
  // закрашиваем матрицу в белый цвет
  matrix.fillScreen(matrix.Color888(255, 255, 255));
  // выводим цвет из буфера на экран
  matrix.swapBuffers(false);
  delay(1000);
}

Вывод геометрических фигур

Методы библиотеки легко позволяют выводить геометрические фигуры.

geometricFigures.ino
// библиотека для работы с матрицей
#include <RGBmatrixPanel.h>
// установите и скачайте также библиотеку «Adafruit GFX Library»
// «RGBmatrixPanel» наследуется от «Adafruit GFX Library»
 
// управляющие пины матрицы
#define CLK   11
#define OE    9
#define LAT   10
#define A     A0
#define B     A1
#define C     A2
#define D     A3
 
// объявляем объект для работы с матрицей 64х32
// включаем двойную буферизацию
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, true, 64);
 
// выводимая строка на матрицу
const char textStr[] = "Hello, World!";
// переменная с X-координатой текста
int textX = matrix.width();
 
// минимальное значение координаты текста
// количество символов в строке умноженное на ширину одного символа,
// после которой текст начнёт повторно выводиться
int textMin = sizeof(textStr) * -6;                  
 
void setup() {
  // инициируем работу с матрицей
  matrix.begin();
  int width = matrix.width();
  int height = matrix.height();
  // рисуем две диагонали
  matrix.drawLine(0, 0, width - 1, height - 1, matrix.Color333(7, 0, 0));
  matrix.drawLine(0, height - 1, width - 1, 0, matrix.Color333(7, 0, 0));
  // рисуем окружность в центре дисплея и радиусом 12
  matrix.drawCircle(width / 2, height / 2, 12 , matrix.Color333(7, 7, 0));
  // рисуем диск (закрашенную окружность) в центре дисплея и радиусом 8
  matrix.fillCircle(width / 2, height / 2, 8, matrix.Color333(0, 7, 7));
  // выводим текст из буфера на матрицу
  matrix.swapBuffers(false);
}
 
void loop() {
 
}

Анимация шариков

Заставим фигуры двигаться и отталкиваться от стен.

movingCircles.ino
// библиотека для работы с матрицей
#include <RGBmatrixPanel.h>
// установите и скачайте также библиотеку «Adafruit GFX Library»
// «RGBmatrixPanel» наследуется от «Adafruit GFX Library»
 
// управляющие пины матрицы
#define CLK   11
#define OE    9
#define LAT   10
#define A     A0
#define B     A1
#define C     A2
#define D     A3
 
// объявляем объект для работы с матрицей 64х32
// включаем двойную буферизацию
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, true, 64);
 
// массив с начальными координатами кругов и значениями смещения
// первые две координаты в каждой строке — координаты трёх кругов
// вторые две — координаты смещения кругов
int ball[3][4] = {                                                   
  {  6,  6,  1,  1 },                                                  
  { 17, 15,  1, -1 },                                                   
  { 27,  6, -1,  1 }                                                    
};
 
// цвет кругов
static const int ballColor[3] = {
  matrix.Color333(3, 0, 0),
  matrix.Color333(0, 3, 0),
  matrix.Color333(0, 0, 3)
};
 
// радиус кругов
static int const ballRadius = 3;
 
void setup() {
  // инициируем работу с матрицей
  matrix.begin();
}
 
void loop() {
  // очищаем экран
  matrix.fillScreen(0);
  // запускаем счётчик для смены координат кругов
  for (int i = 0; i < 3; i++) {
    // рисуем три круга с одинаковыми радиусами
    // разными начальными координатами и цветами
    matrix.fillCircle(ball[i][0], ball[i][1], ballRadius, ballColor[i]);
    // обновляем Х-координату кругов
    ball[i][0] += ball[i][2];
    // Обновляем Y-координату кругов
    ball[i][1] += ball[i][3];
    // если круг по Х дошёл до границы экрана
    if ((ball[i][0] == ballRadius) || (ball[i][0] == (matrix.width() - ballRadius))) {    
      // инициируем движение в обратную сторону
      ball[i][2] *= -1;
    }
    // если круг по Y дошёл до границы экрана
    if ((ball[i][1] == ballRadius) || (ball[i][1] == (matrix.height() - ballRadius))) {
      // инициируем движение в обратную сторону
      ball[i][3] *= -1;
    }
  }
  // выводим объекты из буфера на экран
  matrix.swapBuffers(false);
}

Вывод текста

Матрицы идеально подходят для объявлений и рекламных вывесок. Выведем цветной и яркий текст.

printString.ino
// библиотека для работы с матрицей
#include <RGBmatrixPanel.h>
// установите и скачайте также библиотеку «Adafruit GFX Library»
// «RGBmatrixPanel» наследуется от «Adafruit GFX Library»
 
// управляющие пины матрицы
#define CLK   11
#define OE    9
#define LAT   10
#define A     A0
#define B     A1
#define C     A2
#define D     A3
 
// объявляем объект для работы с матрицей 64х32
// включаем двойную буферизацию
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, true, 64);
 
// выводимая строка на матрицу
const char textStr[] = "Hello, World!";
// переменная с X-координатой текста
int textX = matrix.width();
 
// минимальное значение координаты текста
// количество символов в строке умноженное на ширину одного символа,
// после которой текст начнёт повторно выводиться
int textMin = sizeof(textStr) * -6;                  
 
void setup() {
  randomSeed(analogRead(A5));
  // инициируем работу с матрицей
  matrix.begin();
  // отключаем перенос текста на следующую строку
  matrix.setTextWrap(false);
  // устанавливаем размер текста
  matrix.setTextSize(1);
  // очищаем экран
  matrix.fillScreen(0);
  // выставляем курсор
  matrix.setCursor(10, 0);
  // печатаем первую строку
  matrix.println("Amperka");
  // выставляем курсор
  matrix.setCursor(0, 15);
  // выводимая вторая строка
  char strText[] = "LED MATRIX!";
  // перебираем по очереди каждый символ
  for (int i = 0; i < strlen(strText); i++) {
    // генерируем случайное число от 0 до 1536
    int hue = random(0, 1536);
    // устанавливаем случайный цвет по шкале «HSV»
    matrix.setTextColor(matrix.ColorHSV(hue, 255, 255, false));
    // печатаем символ текущего цикла
    matrix.print(strText[i]);
  }
  // выводим текст из буфера на матрицу
  matrix.swapBuffers(false);
}
 
void loop() {
}

Бегущая строка

Добавим тексту движения — сделаем бегущую строку.

runningString.ino
// библиотека для работы с матрицей
#include <RGBmatrixPanel.h>
// установите и скачайте также библиотеку «Adafruit GFX Library»
// «RGBmatrixPanel» наследуется от «Adafruit GFX Library»
 
// управляющие пины матрицы
#define CLK   11
#define OE    9
#define LAT   10
#define A     A0
#define B     A1
#define C     A2
#define D     A3
 
// объявляем объект для работы с матрицей 64х32
// включаем двойную буферизацию
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, true, 64);
 
// выводимая строка на матрицу
const char textStr[] = "Hello, World!";
// переменная с X-координатой текста
int textX = matrix.width();
 
// минимальное значение координаты текста
// количество символов в строке умноженное на ширину одного символа,
// после которой текст начнёт повторно выводиться
int textMin = sizeof(textStr) * -6;                  
 
void setup() {
  // инициируем работу с матрицей
  matrix.begin();
  // отключаем перенос текста на следующую строку
  matrix.setTextWrap(false);
  // устанавливаем размер текста
  matrix.setTextSize(1);
}
 
void loop() {
  // очищаем экран
  matrix.fillScreen(0);
  // устанавливаем цвет текста
  matrix.setTextColor(matrix.Color888(255, 0, 255));
  // указываем начальную координату вывода текста {textX; 12}
  matrix.setCursor(textX, 12);
  // выводим текст
  matrix.print(textStr);
  // сдвигаем текст на один пиксель при каждом выполнении цикла
  textX--;
  // если был отображён весь текст
  if (textX < textMin) {
    // начинаем выводить текст заново
    textX = matrix.width();
  }
  // выводим текст из буфера на матрицу
  matrix.swapBuffers(false);
}

Ресурсы

AlexGyver/LEDcube: 8x8x8 LED cube on Arduino

Описание проекта

  • Светодиодный куб 8x8x8
  • 10 режимов
  • Настройка скорости анимации
  • Динамическая индикация
  • Подробности в видео:

Папки

ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию

  • libraries — библиотеки проекта. Заменить имеющиеся версии
  • CUBE_Gyver — прошивка для Arduino, файл в папке открыть в Arduino IDE (инструкция)
  • CUBE_Gyver_v2 — новая версия!
  • schemes — схемы и печатки

Схемы

  • Весь проект на EasyEDA ссылка
  • Печатная плата из видео ссылка
  • Gerber файлы в папке schemes в архиве проекта!
  • Как вывести негатив для самодельной печатной платы я показывал в своих уроках по созданию печатных плат:

Материалы и компоненты

Ссылки оставлены на магазины, с которых я закупаюсь уже не один год

Arduino NANO 328p – искать

Вам скорее всего пригодится

Как скачать и прошить

  • Первые шаги с Arduino — ультра подробная статья по началу работы с Ардуино, ознакомиться первым делом!
  • Скачать архив с проектом

На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

  • Установить библиотеки в
    C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)
  • Подключить Ардуино к компьютеру
  • Запустить файл прошивки (который имеет расширение .ino)
  • Настроить IDE (COM порт, модель Arduino, как в статье выше)
  • Настроить что нужно по проекту
  • Нажать загрузить
  • Пользоваться

Настройки в коде

#define INVERT_Y 1    // инвертировать по вертикали (если дождь идёт вверх)
#define INVERT_X 0    // инвертировать по горизонтали (если текст не читается)

// текст для режима текста
String disp_text = "AlexGyver xyz";

FAQ

Основные вопросы

В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/

В: Компьютер никак не реагирует на подключение Ардуины!
О: Возможно у тебя зарядный USB кабель, а нужен именно data-кабель, по которому можно данные передавать

В: Ошибка! Скетч не компилируется!
О: Путь к скетчу не должен содержать кириллицу. Положи его в корень диска.

В: Сколько стоит?
О: Ничего не продаю.

Вопросы по этому проекту

Полезная информация

Victoria Arduino Eagle One 2 gr 220V white, Led кофемашина-автомат, 2 гр, мультибойлерная, белая, подсветка

Victoria Arduino Eagle One 2 gr 220V white, Led Кофемашина-автомат, 2 группы, мультибойлерная, белая, подсветка, 220V кофемашина эспрессо для кофейни, бара, ресторана

Новая версия кофемашины Victoria Arduino Eagle One обладает оригинальным дизайном и оснащена инновационными конструктивными решениями, позволяющими облегчить работу бариста и сэкономить электроэнергию.

  • Кофемашина-автомат с двумя термокомпенсированными группами (высота групп 125 мм) имеет корпус из нержавеющей стали.
  • В кофемашине установлена новая система NEO (New Engine Optimization), которая гарантирует высокую производительность при одновременном снижении энергопотребления машины.
  • Бойлеры изготовлены из стали и изолированы уникальным материалом, который гарантирует экстремальную теплоизоляцию, избегая рассеивания тепла.
  • Объем парового бойлера — 7 литров, объем кофейных бойлеров — 0,14 л.
  • Запатентованная система TERS (система рекуперации тепловой энергии) использует сбрасываемую воду для предварительного нагрева поступающей воды с помощью метода рециркуляции, что сводит к минимуму количество отходов.
  • Паровые краны Cool Touch предотвращают ожоги.
  • Машина имеет стильный дизайн, подсветку задней стенки и групп, многофункциональный TFT-дисплей и жидкокристаллические дисплеи на каждую группу.
  • Заднюю панель можно адаптировать под дизайн кофейни.
  • Машина соединяется с приложением на базе IOS или Android через Bluetooth, через приложение можно настраивать параметры напитков (температуру, время экстракции, предварительное смачивание) и отправлять настройки через почту или мессенджеры. 

Искусство, роскошь и исключительное мастерство — именно эти особенности выделяют кофемашины Victoria Arduino и характеризуют их как уникальные и неповторимые.

Бренд был создан в 1905 году Пьером Тересио Ардино в итальянском Турине. Пьер ставил перед собой цель-создание принципиально новой, стильной, максимально простой в управлении машины, которая могла бы удовлетворить вкусы потребителей в непростое время перемен, происходивших тогда в ресторанном бизнесе. В 1910-20 годах начался массовый выпуск кофемашин для ресторанов и баров, а так же отдельная серия элитных кофемашин для дома. Чтобы подчеркнуть классическую красоту своих творений, стоящую вне времени, Пьер Ардино дал им имена греческих богов.

В наше время бренды Nuova Simonelli и Victoria Arduino объединились для продолжения традиций роскоши и удивительного мастерства, воплощенных в уникальном хромированном дизайне необыкновенных кофемашин Victoria Arduino.

 

Мигающий светодиод на плате Arduino

Если его вам найти не удалось, то можете воспользоваться этой ссылкой для скачивания кода.

Что в архиве? Для начала, отмечу, что в любом коде для Arduino должны быть две обязательные функции: void setup() и void loop(). В первой прописывается то, что выполняется только один раз при включении платы. Во второй то, что будет выполняться постоянно, циклически. До функции void setup() прописываются переменные, которые понадобится использовать в коде (скетче) , подключаются различные библиотеки, задаются массивы — в общем, любые данные, которые мы будем использовать в коде. Как вы понимаете, в нашем коде ничего такого не потребуется.

Всего на плате Arduino Uno есть 14 цифровых контактов (от D0 до D13). Также имеются аналоговые контакты (обозначаются от А0 до А5). На выходах цифровых контактов может быть два значения — HiGH или LOW. На выходах аналоговых идет поддержка широтно-импульсной модуляции, что позволяет обрабатывать и считывать с различных датчиков множество значений. Для светодиода нам нужно только одно — чтобы он включался или выключался.

Поэтому подключать его будем к цифровому контакту. К контактам от 0 до 12 вы можете подключать внешние светодиоды через резистор в 220 Ом. К контакту 13 относится уже встроенный в плату светодиод, о котором мы говорили ранее. С помощью функции pinMode мы указываем тип цифрового вывода, как выход, т. к. светодиод будет выполнять наши команды, это нагрузка, которая ждет указаний (то же самое указывается, например, и при подключении реле).

Далее идет цикл. Как уже было сказано ранее, на цифровом контакте мы можем настроить два значения. Высокий логический уровень (HiGH) и низкий логический уровень (LOW) устанавливают максимальное значение напряжения (5В) на нем и минимальное (0В) соответственно.

При значении HiGH подается максимальное напряжение и светодиод горит. При значении LOW подается минимальное значение и светодиод тухнет.

Для того, чтобы было видно, как он мигает — установим задержку с помощью функции delay(1000). Эта команда приостанавливает работу кода на то, время которое прописывается в скобках, проще говоря, ставит наш код на паузу. В скобках указывается время в миллисекундах (1000 миллисекунд = 1 секунда). Когда включается состояние HIGH, а затем включается пауза в 1 секунду, то, так как состояние на выводе светодиода не изменилось, светодиод будет гореть ровно 1 секунду. Затем он выключается на 1 секунду, снова включается и так далее. Вот и получаем, то он мигает. Получилось!

Кофемашина Victoria Arduino Eagle One 3 gr 380V steelux, Led

Кофемашина Victoria Arduino Eagle One 3gr — создана для нового поколения кофеен, в которых дизайн, производительность и стабильность являются определяющими факторами для создания приятных и запоминающихся впечатлений. В Eagle One заложена философия стабильности и сохранения экологии окружающей среды. Воздействие на окружающую среду снижается за счет использования новых технологий. Выбросы углерода в результате энергопотребления сводятся к минимуму за счет использования новых материалов и уникальной конструкции машины. Eagle One — это отражение совместной работы профессиональных инженеров, дизайнеров и команды разработчиков Simonelli Group.

Кофемашина Eagle One 3 gr 380V steelux, Led с программируемым проливом воды через группу. Три термокомпенсированные кофейные группы имеют высоту 125 мм. Для пара предусмотрен отдельный бойлер объемом 7 литров, каждая группа оснащена бойлером для кофе объемом 0,14 литра. Бойлеры выполнены из стали и изолированы уникальным материалом, который гарантирует экстремальную теплоизоляцию, избегая рассеивания тепла. Многофункциональный TFT-дисплей для отображения и настройки параметров приготовления, и жидкокристаллические дисплеи на каждую группу. Корпус кофемашины изготовлен из нержавеющей стали. Паровые краны Cool Touch — холодные на ощупь для комфортной работы с молоком. LED подсветка задней стенки и рабочей зоны. Задняя панель может быть адаптирована под интерьер помещения. Цвет корпуса — сталь.

Машина соединяется с приложением на базе IOS или Android через Bluetooth, через приложение можно настраивать параметры напитков (температуру, время экстракции, предварительное смачивание) и отправлять настройки через почту или мессенджеры.

Особенности:

  • Совершенно новая система NEO (New Engine Optimization) —  используется система мгновенного нагрева с уникальным механизмом теплоизоляции, который снижает не только рассеивание тепла, но и потребление энергии. Он работает практически мгновенно, позволяя нагревать только необходимое количество воды для экстракции, что снижает затраты на электроэнергию. Результат — на 23% меньшее воздействие на окружающую среду по сравнению с машиной той же категории.
  • Запатентованная технология TERS (система рекуперации энергии температуры) — использует сброшенную воду для предварительного нагрева поступающей воды. Результат — 8% экономия от общего потребления машины.

Инструкция по эксплуатации

3 проекта с RGB Led и Arduino для всех уровней

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

Однако в последнее время пользователи учатся использовать светодиоды RGB, вариант, который стал очень популярным и очень полезно для многих проектов. Но Что это? Какие самые популярные проекты мы можем создать с новыми светодиодами RGB Led?

Что такое RGB Led?

Светодиод — это светоизлучающий диод. Недорогое и удобное устройство с любой электронной платой и без нее. Его основные функции — низкое энергопотребление и различные форматы светодиодов. Таким образом, в отличие от традиционных лампочек, которые нас освещают, Светодиоды позволяют нам использовать их в различных устройствах и даже создавать другие формы, далекие от традиционной формы лампочек.. Срок службы светодиодов также намного выше, чем у других устройств. Таким образом, как лампочка, диод этого типа дает больше часов света, чем традиционная лампочка; Светодиодные пиксели, являющиеся частью экрана, обеспечивают больший срок службы, чем обычный пиксель; То же самое и с различными устройствами, в которых используются технологии.

Теме статьи:

Комплекты электроники

Но в данном случае мы будем говорить о RGB-лампах, которые становятся все более популярными. Причина этого успеха заключается в возможностях, которые они предлагают над обычным светом. Светодиодный диод предлагает только один цвет света, который мы не можем изменить в устройстве, пока не заменим диод. Светодиод RGB Led излучает свет трех цветов: красный (красный), зеленый (зеленый) и синий (синий) и их комбинации., то есть он может менять цвет по своему желанию, не меняя диод. Успех светодиодных ламп RGB заключается в возможности изменения цвета света без замены диода, что очень практично, для чего необходимы только знания программирования.

Бесконечный светодиодный RGB-куб

Этот проект состоит из создания куба цветов, который может меняться в зависимости от времени, которое у нас есть, или просто каждые несколько секунд. Infinite Led RGB Cube — световой куб, который может работать как диодная лампа.. Конечным результатом будет комбинация светодиода rgb и Arduino.

Для его строительства вам понадобится 512 светодиодов RGB Led, 6 кристаллов, микроконтроллер, который вполне может быть Arduino UNO, кабель или аккумулятор для питания диодов и основание, поддерживающее всю конструкцию. Получив это, мы должны объединить все диоды, чтобы они образовали куб или имели форму куба. Секрет построения этой структуры состоит в том, чтобы согнуть один вывод диода перпендикулярно диоду, создав прямой угол с другим выводом. Одна сторона куба не имеет никакого отношения друг к другу, но все они будут подключены к одному светодиоду RGB.

Как только мы создали всю структуру, мы должны соединить контакты, которые остались на плате микроконтроллера. На этом этапе мы должны указать, что на стороне этого куба должно быть 8 x 8 диодов, создавая куб из 8 x 8 x 8 светодиодов RGB. Таким образом, мы соединяем штыри диодов, которые свободны от куба, с платой и вводим в нее программу, которая постепенно и с различными цветами включает куб диодов. Как только все будет собрано, мы должны использовать кристаллы, чтобы создать своего рода урну, которая защищает и закрывает диоды, основание будет поддерживать не только диодный куб, но и урну, которую мы создали. Конструкция этого куба Infinity Led RGB очень проста, но проще его настроить.. Еще в Instructables Вы найдете пошаговое руководство по его созданию.

Теме статьи:

Создайте свой собственный MIDI-контроллер с Arduino

Легкий светодиодный знак RGB

Этот проект более известен и полезен, но его сложнее построить, чем предыдущий. Easy LED RGB Sign — информационная вывеска, построенная на диодах и Arduino.. Для этого проекта требуется 510 светодиодов RGB, или мы можем заменить это на полосы того же типа. Идея состоит в том, чтобы построить прямоугольник из 10 х 51 светодиода. Нам также понадобятся 3 акриловых листа, которые будут служить опорой и защитой для создаваемой нами вывески Easy LED RGB. 510 светодиодов RGB, кабели для проводки, плата микроконтроллера, такая как Arduino UNO и аккумулятор для питания диода, а также платы Arduino.

Сначала нам нужно создать структуру и разместить на ней диоды. Мы можем делать все, что захотим, но хороший трюк — использовать один из этих акриловых листов в качестве опоры для светодиодных фонарей, так как он прозрачный, он не будет оценен в конечном результате. С помощью тонкого кабеля мы должны добавить диоды и подключить их к микроконтроллеру. Как только все подключено, подключаем микроконтроллер к аккумулятору и в нем мы представляем желаемую программу. Программа будет выполнять следующую функцию:

  • Включите определенные светодиоды.
  • Каждый из этих диодов будет иметь определенный цвет.

В результате будут созданы буквы, символы или сигналы, которые мы можем использовать в определенных ситуациях. Easy LED RGB Sign — очень интересный проект, так как он очень полезен, поскольку это позволяет нам создавать световые вывески, которые мы хотим. Подробнее о его строительстве у нас есть на сайте репозиторий Instructables. Но это не закрытый проект и Мы можем изменять количество диодов или напрямую изменять программу, которая запускает свет диодов, чтобы она работала иначе.. Мощность увеличивается, когда мы объединяем этот светодиодный знак RGB и Arduino, что позволяет создавать умные вывески или подключаться к компьютерам, как профессиональные вывески.

Сенсорный стол со светодиодной подсветкой пикселей RGB

Led RGB Pixel Touch Table — увлекательный проект, превращающий диоды в простой игровой стол. Этот проект сложнее предыдущих, но его конструкция очень проста. В этом случае мы объединим не только светодиоды RGB и Arduino, поскольку мы также будем использовать сенсорные датчики или ИК-датчики. Для этого нам потребуются следующие материалы:

  • Стол с прозрачной поверхностью.
  • Матрица из 10 х 16 RGB светодиодов.
  • Набор из 10 x 16 инфракрасных сенсорных датчиков.
  • Карта SD или MicroSD для хранения данных.
  • Модуль Bluetooth.
  • Плата Arduino.
  • Умный динамик с подключением по bluetooth.

В этом случае мы должны создать узлы или «ключи», которые образуют соединение сенсорного датчика и диода и это будут элементы управления, которые мы будем нажимать, играя с нашим столом. Таким образом, каждый узел может излучать информацию, если мы касаемся панели, и она может излучать свет. А) Да, Мы можем играть с этим настольным тетрисом, играми на визуальную память, классической змейкой., пинг-понг или создать простой счетчик. Всего у нас будет 160 узлов, которые мы можем разместить в виде матрицы 10 x 16.

Эту матрицу мы разместим под стеклом стола. Стекло стола необходимо заменить на более мягкую поверхность, например, акриловый пластик. Это сделано для того, чтобы датчик срабатывает, когда мы его нажимаем.

Теперь, когда все собрано, мы должны создать программу, которая работает и выполняется с этой матрицей. Мы можем использовать такие игры, как тетрис или просто классическую игру «Саймон». Вставляем в плату микроконтроллера и подключаем к матрице. Мы можем добавить звук в этот проект благодаря динамику bluetooth, который мы можем подключить к датчику bluetooth который имеет плату микроконтроллера.

Эсто это краткое изложение проекта Led RGB Pixel Touch Table, но его руководство не так просто, как кажется. Создание узлов требует схемы и создания небольших узлов, с игровым программным обеспечением происходит то же самое. Здесь мы просто хотели поговорить об основных идеях и о том, что может получиться. Но у вас есть полное руководство по его построению в ссылку.

Какой проект стоит построить?

Мы рассказали о трех проектах со светодиодами RGB. которые легко построить и недорого. Хотя многие из вас видели, что мы используем большое количество диодов, мы должны сказать, что цена этих новых очень низкая, настолько низкая, что такое количество диодов стоит всего пару евро. У всех проектов есть свои особенности и привлекательность. Лично Рекомендую делать все проекты. Сначала он построит куб из огней; позже он построит световой знак и, наконец, построит игровой стол. Порядок выполнения важен при переходе от простого проекта к более сложному. В любом случае, после постройки этих трех проектов результат будет тот же: освоим применение этих диодов. И тебе Какой проект тебе больше всего нравится?


LED Shield / Arduino и клоны / Сообщество EasyElectronics.ru

Arduino: LED Shield

По мотивам arduino.cc/en/Tutorial/ShiftOut родилась идея создания модуля:
на модуле размещаются два сдвиговых регистра 74HC595 в SMD корпусах, через резисторы по 300 Ом подключаются группа с 8 светодиодами и две группы по 4 светодиода. Катоды светодиодов через джамперы подключаются на землю. Над регистрами и резисторами устанавливается панелька для 4-х разрядного семисегментного индикатора типа CC/CA56-12. Сегменты подключаются к выходам первого регистра. Разряды подключаются к четырем выходам второго регистра. Оставшиеся четыре выхода выводятся на панельку и могут быть использованы для подключения исполнительных устройств. К этим же выходам подключена группа 4 светодиодов.
Получаем модуль для изучения работы сдвиговых регистров, создания всяческих гирлянд и мигалок… А при снятых джамперах и установленном семисегментном индикаторе модуль вывода.
На модуле имеются 2 кнопки, которые джамперами JP1 и JP2 коммутируем на цифровые порты 8, 9 или на аналоговые порты 1, 2.
В версии 2 добавлен пьезоизлучатель. Через джампер коммутируется на цифровой порт 10 или аналоговый порт 0.

На плате версии 2 джамперы для подключения кнопок и пьезоизлучателя не разведены. Предусмотрены контактные площадки для самостоятельного их подключения проводами.
Схема модуля:

Печатная плата V2 в формате Sprint Layout 5

Три скетча для мигания светодиодами

Тестовый скетч для работы с четырехразрядным семисегментным индикатором

Часы на базе Freeduino/Arduino и модуля LED Shield V2

Вид сверху собранного модуля V2:

Модуль V2 со снятым индикатором:

Модуль V2 вид с нижней стороны:

В первом варианте разводки была небольшая ошибочка. В приложенном файле печатной платы ошибка исправлена.

Совместно с модулем 2-Wire & 1-Wire Shield можно сделать например погодную станцию с часами, будильниками, двумя термометрами, с занесением статистики в микросхему памяти.

«Бутерброд» Freeduino + Wire Shield + LED Shield V2:

Часы с использованием модулей Wire Shield (DS1307) и LED Shield V2

Программа еще не закончена. На данный момент поочередно отображаются: время, день недели, дата, месяц, год; с кнопок устанавливаются часы и минуты; при старте играет коротенькая мелодия.

13 светодиодных проектов Arduino, которые вам нужно попробовать!

Мы практически каждый день используем светодиоды и фонари. Известные своим долгим сроком службы светодиоды можно использовать для простого освещения и отображения информации. Если вы думаете о том, чтобы опробовать светодиодные проекты на себе, вам повезло!

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

Прежде чем мы углубимся, если вы хотите получить светодиод для себя, не стесняйтесь проверить каталог светодиодов Seeed. Ниже я свяжу некоторые популярные варианты:

С учетом сказанного, перейдем к нашим светодиодным проектам!


  1. Умная лампа

Ref: Arduino

Эта умная лампа включается сама по себе, когда становится темно! Благодаря этому вы можете быть уверены, что ваш дом всегда будет светиться! Вы также можете легко включить или выключить его простым жестом руки.Он подойдет тем, кто хочет автономную систему освещения.

Что вам понадобится:

Вместо Arduino Uno попробуйте Seeeduino Nano от Seeed, в котором есть дополнительный разъем Grove I2C по более низкой цене! Разъемы Grove I2C позволяют легко подключать к нему сотни датчиков и исполнительных механизмов, таких как Grove Light и датчик приближения.

Если вам нужна интеллектуальная система освещения, обратите внимание на эту интеллектуальную лампу!

  1. Mood Lamp

Ref: Instructables

Настройте настроение своей комнаты или домашнего рабочего места с помощью Smart Arduino Mood Lamp.Легко меняйте цвет огней, чтобы создать атмосферу, которая может улучшить ту атмосферу, которую вы хотите. Например, установите синий свет, чтобы расслабиться, желтый свет для радостной атмосферы и зеленый свет для успокаивающего эффекта. Лампа также оснащена полностью настраиваемым «интеллектуальным» диодом RGB , который позволяет создавать более сложные эффекты.

Что вам понадобится:

  • Walnut 1/2 ″
  • Purpleheart 1/8 ″
  • Прозрачный акриловый лист 1/4 ″
  • Arduino Nano (рассмотрите наш Seeeduino Nano!)
  • RGB WS2812
  • Микрофонный модуль

Подробнее об инструкциях .

  1. Светодиодный экран EMOJI

Ссылка: Hackster

У вас есть любимый смайлик? Вы регулярно используете эмодзи, чтобы показать свое настроение во время текстовых сообщений? Что ж, теперь вы можете делать это и в реальной жизни со светодиодным дисплеем EMOJI Display!

Что вам понадобится:

Похоже, ты увлекаешься искусством? Попробуйте этот проект!

  1. Волшебный букет на День святого Валентина


Ref: Hackster

Приближается День святого Валентина, вы ищете нетрадиционный подарок для своего партнера? В этом проекте показано, как можно напечатать цветы на 3D-принтере и подарить их красивыми светодиодами! Лучшая вещь? Вам понадобится всего несколько компонентов, чтобы воссоздать этот проект!

Что вам понадобится:
  • Arduino UNO (рассмотрим наш Seeeduino V4.2!)
  • Гибкие трубочки
  • Натуральный PLA
  • Костяной белый PLA
  • Световая полоса
  • Блок питания
  • 3D-принтер

Звучит как идеальный подарок для вашего партнера? Оцените этот проект до Дня святого Валентина!

  1. Игра TIC TAC TOE


Ссылка: Hackster

Создайте свою собственную игру «Крестики-нолики», в которую можно играть с помощью Arduino Mega! Эта автоматическая игра позволяет вам играть со своей семьей и друзьями, ударяя кулаком, кладя руки в коробки, чтобы отметить O или X.

Что вам понадобится:
  • Arduino Mega (подумайте о Seeeduino Mega!)
  • Датчики приближения
  • Светодиодная лента RGB
  • BC547 Транзисторы
  • Резисторы 1 кОм
  • Штекерные и женские разъемы
  • Разъем постоянного тока
  • Зуммер (рассмотрите наш Grove — Piezo Buzzer / Активный зуммер)
  • Кнопка
  • Переключатель ВКЛ / ВЫКЛ
  • Адаптер 5 В
  • Адаптер 12 В
  • Деревянный ящик на заказ

Если вы хотите создать эту знакомую игру, в которую все знают, как играть, ознакомьтесь с этой проект для полной инструкции!

  1. Сделай сам Arduino 1D Pong Game

Ссылка: Arduino Project Hub

Хотите создать игру для всей семьи? В этом проекте показано, как создать свою одномерную версию классической игры «Понг» со светодиодами! Это игра для двоих, в которой «мяч» движется по длине светодиодной ленты и отскакивает назад, если нажать кнопку, когда горят несколько конечных светодиодов.

Что вам понадобится:

Нравится игры «Сделай сам»? Посмотрите этот проект и повеселитесь с семьей и друзьями!

  1. B aby High Chair Musical


Ref: Hackster

У вас есть ребенок, который постоянно полон энергии и которому все интересно? Этот проект позволяет вам настроить игру для вашего ребенка, и когда он нажимает кнопку, загорается свет того же цвета, и воспроизводится звук! Это помогает развлечь их, и у вас будет больше времени для себя.

Что вам понадобится:
  • Arduino UNO (Рассмотрим наш Seeeduino V4.2!)
  • 4 аркадные кнопки 45 мм
  • 4 цветных светодиода
  • Динамик 40 Ом
  • Конденсатор 10 мкФ
  • Проволока обоих из них может быть полезна здесь и здесь
  • Резистор 10 кОм 5% здесь
  • 9v аккумулятор (или любой блок питания для Arduino)
  • Любой детский стульчик с планшетом

Похоже на то, что вашему ребенку понравится? Посмотрите этот проект и начните строить прямо сейчас!

  1. Светодиодный световой меч Arduino

Ref: Hackster

«Сила — это то, что дает джедаю его силу», — говорит Оби-Ван Люку.Тем не менее, батарея — это все, что нужно для питания этого светодиодного светового меча Arduino. Если вы большой поклонник «Звездных войн» и любите приключения, это для вас! Этот элегантный настраиваемый световой меч даст вам преимущество над самыми стойкими противниками … или, по крайней мере, станет отличным украшением вашего стола.

Что вам понадобится:
  • Arduino MKR Zero
  • Neopixel 12 Ring
  • Датчик цвета
  • Динамик: 0,25 Вт, 8 Ом
  • Powerboost 500c
  • UDOO 2AA Держатель батареи для RTC
  • 2.5 Вт, усилитель
  • Резистор 10 кОм
  • Кнопочный переключатель
  • Ползунковый переключатель
  • Штекерный разъем, 40 позиций, 1 ряд (0,1 ″)
  • Кабель Micro-USB — USB (общий)
  • Провода перемычки

Если вы готовы к владеть этим могучим оружием, посмотрите этот проект прямо сейчас.

  1. Внутренний сад Arduino

Ссылка: Hackster

Если у вас есть зеленые пальцы, вы будете знать, что садоводство требует больших усилий.Однако, если мы добавим в уравнение Arduino, все станет намного проще! Добавив датчик, исполнительные механизмы и несколько простых строк кода, вы получите полностью автоматизированный внутренний сад, которым можно управлять с вашего устройства Android!

Что вам понадобится:

Узнайте больше о Hackster.

  1. Arduino LED Dice


Ссылка: Instructables

Arduino LED Dice — это простой, недорогой и увлекательный проект, который подходит для начинающих, изучающих Arduino.С минимальным количеством компонентов вы сможете сделать крутые светодиодные кости Arduino!

Что вам понадобится:
  • Arduino Uno (рассмотрите наш Seeeduino V4.2!)
  • 7 светодиодов любого цвета
  • Резистор 10 кОм
  • 7 x 220 или 330 резистор
  • Кнопка A
  • Макетная плата
  • Провода перемычки

Найти больше на Instructables.

  1. Светодиодные часы Arduino Nano

Ссылка: Hackster

Светодиодные цифровые часы станут отличным настольным аксессуаром.Благодаря светодиодному матричному дисплею считывание часов на расстоянии тоже будет простым. Этот простой проект также отлично подходит для новичков, которые только начинают знакомиться с Arduino.

Что вам понадобится:

  • Arduino Nano (обратите внимание на Seeeduino Nano!)
  • Светодиодная матрица
  • Фоторезистор
  • Макетная плата
  • DS3231

Если вам нужен новый прохладный настольный аксессуар, зайдите сюда, чтобы узнать больше.

  1. Светофор, управляемый Arduino

Ссылка: Hackster

Дети любят машинки.Машинки — это весело, но мы можем сделать их еще лучше. Светофор можно сделать с помощью Arduino и некоторых светодиодов, которые сделают игру с игрушечными машинками еще более увлекательной. Это также хороший и интуитивно понятный способ научить ребенка правилам дорожного движения.

Что вам понадобится:
  • Arduino Nano (рассмотрите наш Seeeduino Nano!)
  • 5-миллиметровый светодиод: красный, желтый и зеленый
  • Поворотный потенциометр
  • Ползунковый переключатель
  • Резистор 100 Ом

Узнайте больше здесь.

  1. Светодиодный матричный информационный дисплей

Ссылка: Hackster

Это дисплей 6-в-1, который сообщает вам день недели, месяц, год, время, температуру и влажность! Заключенный в красивый деревянный корпус, этот светодиодный дисплей 32 × 8 будет хорошо смотреться на любой столешнице. Если вы ищете довольно простой, практичный и увлекательный проект для работы, это то, что вам нужно. Вы обязательно останетесь довольны конечным результатом.

Что вам понадобится:
  • Arduino Nano (рассмотрите наш Seeeduino Nano!)
  • DS1302 Часы реального времени
  • AM2320 Датчик температуры и влажности
  • Датчик движения PIR (общий)
  • MAX7219 Светодиодная матрица 8 × 8

Узнайте больше о Hackster.


Сводка

И это все о наших светодиодных проектах Arduino! Надеемся, вам будет интересно опробовать некоторые из этих проектов на себе, наверняка хотя бы один из них вам понравится.Ознакомьтесь с другими статьями, связанными со светодиодами, если вам понравилась эта! Удачной работы!

Многие из вышеупомянутых проектов используют Arduino Nano. Вместо Arduino Nano обратите внимание на Seeeduino Nano от Seeed, в котором есть дополнительный разъем Grove I2C по более низкой цене! Разъемы Grove I2C позволяют легко подключать к нему сотни датчиков и исполнительных механизмов, таких как Grove Light и датчик приближения.

Рекомендуемая литература

Следите за нами и ставьте лайки:

Продолжить чтение

Основы Arduino: регулировка яркости светодиода

Первоначально опубликовано 5 февраля 2020 г.

Содержание

  1. Введение
  2. Яркость не регулируется цифровым способом
  3. Изменение яркости светодиода с помощью цифрового выхода
  4. Регулировка яркости с ШИМ
  5. Постепенное мигание светодиода
  6. Статьи по теме

Введение

Эта статья была переведена на английский и изначально была опубликована для deviceplus.jp.

Device Plus представил множество приложений и примеров Arduino, но базовые знания по-прежнему важны, независимо от того, что вы делаете!
В этой статье мы познакомим вас с «ключевыми» основами электроники Arduino, позволив Arduino регулировать яркость светодиода.

Вы можете легко включать и выключать светодиод между ВЫСОКИМ (5 В) и НИЗКИМ (0 В) состояниями, подключив его к цифровым выходным клеммам Arduino. Однако, поскольку цифровой выход может выводиться только в одном из двух состояний, вы не можете регулировать такие элементы управления, как яркость.
Вместо этого для этой цели можно использовать выход «ШИМ». ШИМ можно использовать для регулировки яркости светодиода путем многократного переключения между ВЫСОКИМ и НИЗКИМ состояниями.
В этой статье мы узнаем, как использовать ШИМ для регулировки яркости светодиода. Мы также узнаем, как написать программу, которая использует выход ШИМ для постепенного включения светодиода.

Яркость не может быть изменена цифровым способом

Как мы объяснили в прошлый раз, яркость светодиода изменяется в зависимости от протекающего тока.Сравнивая резистор 330 Ом с резистором 10 кОм, подключенным для регулировки величины тока, подключенного к светодиоду, например, через 330 Ом протекает больший ток с меньшим сопротивлением, что приводит к более яркому свечению светодиода. В качестве альтернативы, протекающий ток также изменится, если вы измените напряжение источника питания, подключенного к светодиоду.

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

Однако цифровой выход Arduino имеет только два состояния: ВЫСОКИЙ (5 В) или НИЗКИЙ (0 В), что означает, что значения напряжения и сопротивления не могут быть изменены, даже если схема подключена как есть. Таким образом, яркость светодиода не регулируется. Хотя есть только два состояния выхода, HIGH и LOW, яркость светодиода можно изменить с некоторой изобретательностью.

Изменение яркости светодиода с помощью цифрового выхода

Давайте изменим яркость светодиода, используя только цифровой выход.Яркость можно регулировать, заставляя светодиод мигать. На самом деле управляйте светодиодом шаг за шагом, чтобы увидеть, как меняется яркость. Подключите светодиод к контакту 5 Arduino, как показано ниже:

Затем создайте программу, как показано ниже, и запишите ее в Arduino. Светодиод должен мигать с интервалом в одну секунду.

В программе светодиод загорается в «digitalWrite (LED_PIN, HIGH)» (строка 11) с выходом HIGH, а затем ждет продолжительности, указанной в «delay (ON_TIME)» (строка 12).Продолжительность указывается в миллисекундах; если вы укажете 1000, светодиод будет гореть в течение одной секунды.

Затем светодиод выключается в «digitalWrite (LED_PIN, LOW)» (строка 14) с выходом LOW, а затем отключается на время, указанное в «delay (OFF_TIME)» (строка 15). Светодиод мигает при повторении этой программы.

Теперь давайте сократим продолжительность включения и выключения. Продолжительность включения может быть изменена с помощью «const int ON_TIME» (строка 3), а продолжительность выключения может быть изменена с помощью «const int OFF_TIME» (строка 4).Измените оба значения на «500» и напишите программу для проверки состояния светодиода. Скорость мигания должна увеличиться. По мере того, как вы уменьшаете значения до «250», «100», «75», «50» и т. Д., Мигание должно становиться быстрее. При значении около «10» светодиод горит постоянно. Если он мигает слишком быстро, человеческий глаз не успевает за ним, из-за чего кажется, что свет постоянно горит.

Теперь давайте изменим продолжительность включения и выключения. Установите для «ON_TIME» и «OFF_TIME» значение «10».Затем последовательно измените значение «ON_TIME» на «9», «8», «7»… «1» и проверьте состояние свечения светодиода. По мере уменьшения значения вы можете видеть, что светодиод становится темнее.

Светодиод выглядит темнее, потому что продолжительность освещения сокращается, а количество свечения уменьшается. Другими словами, вы можете регулировать яркость светодиода, изменяя «продолжительность свечения». Этот метод позволяет вам управлять яркостью светодиода с помощью цифрового выхода Arduino, оснащенного только функциями включения и выключения.

Регулировка яркости с ШИМ

Как описано выше, вы можете регулировать яркость, регулируя соотношение HIGH и LOW, заставляя светодиод мигать в течение короткого цикла. Однако создавать собственную программу для управления продолжительностью мигания нецелесообразно. Если для обработки других программ требуется время, интервал мигания сместится, изменяя яркость.

Arduino обеспечивает PWM (широтно-импульсную модуляцию), которая может периодически выводить HIGH и LOW. Функцию ШИМ, периодически переключающуюся между ВЫСОКИМ и НИЗКИМ с заданной скоростью, можно использовать для регулировки яркости светодиода, как описано ранее.

Однако контакты, которые можно использовать для ШИМ, фиксированы в Arduino. Выход PWM доступен только для контактов, у которых есть знак «~» рядом с номером (то есть 3, 5, 6, 9, 10 и 11). Обратите внимание, что другие контакты не поддерживают вывод ШИМ.

PWM имеет преимущество стабильного вывода без влияния на работу программы, поскольку PWM генерируется на микрокомпьютере Arduino.
Теперь подключите светодиод к контакту 5, чтобы попробовать операцию. Заранее подключите светодиод, как в схеме, показанной ранее.
Затем напишите программу, как показано ниже, и перенесите ее в Arduino. Светодиод должен светиться немного темнее.

Для вывода с ШИМ установите целевой вывод в режим вывода с помощью «pinMode ()» (строка 6). Фактический вывод происходит с помощью «analogWrite ()» (строка 10). Укажите целевой номер вывода, а затем установите соотношение HIGH в диапазоне от 0 до 255. «0» всегда выводит LOW, а «255» всегда выводит HIGH. «127» одинаково выводит как HIGH, так и LOW.

В этой программе вы можете указать коэффициент ШИМ в «const int DUTY» (строка 3).Измените значение, чтобы увидеть, как меняется яркость.

Постепенное мигание светодиода

Вывод с использованием ШИМ расширяет способ свечения светодиода. Теперь давайте постепенно изменим ШИМ, чтобы получить эффект постепенного увеличения яркости светодиода.

Напишите программу, как показано ниже

Вышеупомянутая программа сохраняет коэффициент ШИМ в переменной «i», используемой в функции loop (), чтобы она могла увеличивать значение, чтобы светодиод постепенно становился ярче.

Обработка while (строка 14) увеличивает значение с шагом, указанным в STEP, пока i не достигнет 255.Увеличенное значение выводится функцией analogWrite () (строка 15) для изменения яркости светодиода. Кроме того, ему предписывается ждать в течение времени, указанного параметром WAITTIME, каждый раз, когда изменяется выход ШИМ (строка 16).

Когда коэффициент ШИМ достигает 255, он уменьшается до 0 для постепенного затемнения светодиода (строки с 21 по 25). Вы можете изменить скорость мигания, изменив значение WAITTIME (строка 3) или STEP (строка 4).

На этот раз мы научились управлять яркостью светодиода.Увидимся в другой статье!

Статьи по теме

Об Arduino всегда можно узнать больше! Взгляните на некоторые из наших других статей:

  1. Как создать генератор кода Морзе с помощью Arduino
  2. Как управлять светом с помощью датчика внешней освещенности
  3. USB-регулятор громкости с Arduino

pololu / pololu-led-strip-arduino: библиотека Arduino для адресных светодиодных лент RGB от Pololu

Версия: 4.3.1
Дата выпуска: 12.01.2021
www.pololu.com

Сводка

Это библиотека для Arduino для управления этими адресными Светодиодная RGB продукция от Pololu:

  • Адресная 30-светодиодная лента RGB, 5 В, 1 м (SK6812)
  • Адресная лента RGB с 60 светодиодами, 5 В, 2 м (SK6812)
  • Адресная 150-светодиодная лента RGB, 5 В, 5 м (SK6812)
  • Адресная лента RGB с 60 светодиодами, 5 В, 1 м (SK6812)
  • Адресная 120-светодиодная лента RGB, 5 В, 2 м (SK6812)
  • Адресная 72-светодиодная лента RGB высокой плотности, 5 В, 0.5 м (SK6812)
  • Адресная 30-светодиодная лента RGB, 5 В, 1 м (WS2812B)
  • Адресная лента RGB с 60 светодиодами, 5 В, 2 м (WS2812B)
  • Адресная 150-светодиодная лента RGB, 5 В, 5 м (WS2812B)
  • Адресная лента RGB с 60 светодиодами, 5 В, 1 м (WS2812B)
  • Адресная 120-светодиодная лента RGB, 5 В, 2 м (WS2812B)
  • Адресная 72-светодиодная лента RGB высокой плотности, 5 В, 0,5 м (WS2812B)
  • Адресный светодиодный RGB-светодиод 5 мм со сквозным отверстием и рассеянной линзой, драйвер WS2811 (комплект из 10)
  • Адресный светодиодный RGB-светодиод 8 мм со сквозным отверстием и рассеянной линзой, драйвер WS2811 (комплект из 10)
  • Adafruit 16 WS2812 LED NeoPixel Ring
  • Adafruit 24 WS2812 LED NeoPixel Ring
  • Adafruit 15 WS2812 LED NeoPixel 1/4 кольца
  • Adafruit 5 × 8 WS2812 LED NeoPixel Shield для Arduino
  • Адресная 30-светодиодная лента RGB, 5 В, 1 м (High-Speed ​​TM1804)
  • Адресная лента RGB с 60 светодиодами, 5 В, 2 м (High-Speed ​​TM1804)
  • Адресная 150-светодиодная лента RGB, 5 В, 5 м (High-Speed ​​TM1804)

Эта библиотека оптимизирована для SK6812 и WS2812B, поэтому передает цвета в зелено-красно-синем порядке.

Если у вас есть светодиод WS2811 или высокоскоростная светодиодная лента TM1804, обратите внимание что его красный и зеленый каналы поменяны местами относительно SK6812 и WS2812B, поэтому вам нужно будет поменять местами эти каналы в своем коде. Ты может предпочесть использовать версия 2.1.0 библиотеки, что не требует замены красного и зеленого в ваш код.

Эта версия библиотеки не поддерживает старую низкоскоростную Светодиодные ленты TM1804. Если вы хотите контролировать их, мы рекомендуем использовать версия 1.2.0, который работает медленнее, но может работать с любым из низкоскоростных светодиодов TM1804 полосы, высокоскоростные полосы TM1804, полосы SK6812, полосы WS2812B или Светодиоды WS2811.

Эта библиотека позволяет полностью контролировать цвет произвольного количество светодиодных лент с произвольным количеством светодиодов. Каждый светодиод может могут управляться индивидуально, а светодиодные ленты можно соединять вместе.

Поддерживаемые платформы

Эта библиотека и примеры предназначены для работы с Arduino. IDE версий 1.0 и 1.5 и, вероятно, не будет работать с более ранними версиями. версии.

Эта библиотека в настоящее время поддерживает любые платы на базе ATmega168, ATmega328P, ATmega328PB, ATmega32U4 или ATmega2560, которые работают на 8 МГц, 12 МГц, 16 МГц или 20 МГц.Это включает Доски A-Star, Arduino Uno, более старая Arduino Duemilanovae, детеныш орангутанга B-328, Орангутанг СВ-328, Ардуино Леонардо, Arduino Micro, и Arduino Mega. Не все контакты на Arduino Mega поддерживаются (см. Ниже).

Эта библиотека также поддерживает Arduino Due, который на базе ATSAM3X8E.

Начало работы

Оборудование

Адресные светодиодные ленты RGB можно приобрести на сайте Pololu. используя ссылки выше.

Входной разъем светодиодной ленты имеет два контакта, которые необходимо подключить к Arduino. Заземление светодиодной ленты необходимо подключить к один из контактов GND Arduino и линия ввода сигнала светодиодной ленты необходимо будет подключить к одной из линий ввода-вывода Arduino. Наш в примерах эскизов предполагается, что сигнальная линия подключена к выводу 12. Эти соединения могут быть выполнены с использованием двух Провода для перемычек премиум-класса между мужчинами и женщинами, с охватывающими концами, вставленными в светодиодную ленту.

Вам также потребуется подключить подходящий блок питания к светодиодной ленте. используя один из разъемов питания.Электропитание должно быть на правильное напряжение и достаточный ток, чтобы соответствовать светодиодной ленте требования.

Программное обеспечение

Если вы используете версию 1.6.2 или новее Программное обеспечение Arduino (IDE), вы можете использовать Диспетчер библиотек для установки этой библиотеки:

  1. В среде Arduino IDE откройте меню «Эскиз», выберите «Включить библиотеку», затем «Управление библиотеками …».
  2. Найдите «PololuLedStrip».
  3. Щелкните запись PololuLedStrip в списке.
  4. Щелкните «Установить».

Если это не сработает, вы можете установить библиотеку вручную:

  1. Загрузить архив последней версии с GitHub и распаковать его.
  2. Переименуйте папку «pololu-led-strip-arduino-xxxx» в «PololuLedStrip».
  3. Перетащите папку «PololuLedStrip» в каталог «библиотеки» внутри вашего Каталог альбомов Arduino. Вы можете просмотреть местоположение своего альбома для рисования, выбрав открыв меню «Файл» и выбрав «Настройки» в Arduino IDE. Если в этом месте еще нет папки «библиотеки», вы должны сделать папку сами.
  4. После установки библиотеки перезапустите Arduino IDE.

Примеры

Доступно несколько примеров эскизов, показывающих, как использовать библиотека. Вы можете получить к ним доступ из Arduino IDE, открыв В меню «Файл» выберите «Примеры», а затем выберите «PololuLedStrip». Если вы не можете найти эти примеры, вероятно, библиотека была установлена неправильно, и вам следует повторить приведенные выше инструкции по установке.

LedStripGradient

Этот примерный набросок кода подсвечивает светодиодную ленту движущимся градиентный узор.Вы можете открыть этот пример эскиза, выбрав Файл-> Примеры-> PololuLedStrip-> LedStripGradient. Нажмите «Загрузить». кнопку, чтобы загрузить его на свою доску.

LedStripRainbow

Этот пример похож на LedStripGradient, но создает радужный узор. вместо. Вы можете открыть этот пример эскиза, выбрав Файл-> Примеры-> PololuLedStrip-> LedStripRainbow. Нажмите «Загрузить». кнопку, чтобы загрузить его на свою доску.

LedStripColorTester

Этот пример скетча кода позволяет вам вводить цвета в серийный Наблюдайте и смотрите их на светодиодной ленте.Вы можете открыть этот пример, выбрав Файл-> Примеры-> PololuLedStrip-> LedStripColorTester. Нажмите кнопку «Загрузить», чтобы загрузить его на свою доску. См. Комментарии в код для получения дополнительной информации о том, как его использовать.

Сроки

Эта библиотека занимает около 1,1 мс для обновления 30 светодиодов (1 метр). Светодиод стрипы используют высокоскоростной однопроводной протокол с относительно строгими требования к времени, поэтому эта библиотека отключает прерывания, чтобы гарантировать надежная цветопередача. К сожалению, отключение прерываний вызывает проблемы в других библиотеках, использующих прерывания, таких как Последовательная библиотека и такие функции, как millis () , которые отслеживают время.

Эта библиотека предоставляет параметр interruptFriendly , который позволяет ему сосуществуют с библиотеками на основе прерываний. Когда эта опция включена, библиотека будет временно разрешать прерывания после каждого цвета отправляется примерно каждые 36 микросекунд. Если ты сможешь сохранить все свои прерывания достаточно короткие, тогда эта опция должна позволить этой библиотеке работать вместе с вашими библиотеками прерываний. Однако если у вас включено прерывание, которое занимает больше времени, чем примерно 38 микросекунды для SK6812, 5 микросекунд для WS2812B или 8 микросекунд для TM1804, то это прерывание иногда вызывает испускается очень длинный низкий импульс, который будет интерпретироваться Светодиодная лента в качестве команды сброса.Это может вызвать видимое мерцание светодиодная лента. По умолчанию многие распространенные Arduino, такие как Arduino У Uno есть прерывание, которое запускается каждую миллисекунду и занимает больше времени чем 8 микросекунд. Чтобы включить опцию interruptFriendly , добавьте эту строку в свою функцию setup () :

 PololuLedStripBase :: interruptFriendly = true; 

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

Документация

rgb_color

Библиотека определяет тип с именем rgb_color , который можно использовать для представляют цвета.Тип определяется так:

 typedef struct rgb_color
{
  беззнаковый символ красный, зеленый, синий;
} rgb_color; 

Поля красный , зеленый и синий — это числа от 0 до 255 и представляют яркость красного, зеленого и синего цветов. компоненты соответственно.

PololuLedStrip

Библиотека определяет шаблонный класс с именем PololuLedStrip . В pin параметр шаблона является беззнаковым char и должен быть номер вывода Arduino, на котором находится линия ввода данных светодиодной ленты. подключен к.Для плат на базе ATmega2560, таких как Arduino Mega, можно использовать только следующие пины: 0–5, 10–13, 18–41 и 50–61 (порты с A по G). Этот шаблонный класс наследуется от абстрактного класса PololuLedStripBase , что полезно если вы хотите иметь указатели на объекты светодиодной ленты.

У этого класса нет конструктора, кроме конструктора по умолчанию. Этот класс имеет одна функция:

  • void write (rgb_color * colors, unsigned int count)
    Записывает указанные цвета к светодиодной ленте.Параметр цветов должен быть указатель на массив из структур rgb_color в ОЗУ. Счетчик параметр — количество цветов для записи. Первый цвет в массив будет записан на светодиод, ближайший к входу данных разъем. Чтобы обновить все светодиоды в светодиодной ленте, необходимо отсчетов быть равным количеству светодиодов в полосе или превышать его. Если количество меньше, чем количество светодиодов в полосе, затем несколько светодиодов ближе к концу полоска обновляться не будет.Эта функция временно отключает прерывания. Эта функция приостанавливается более чем на 10 нам в конце, прежде чем вернуться, чтобы цвета вступили в силу.

PololuLedStripBase

  • static bool interruptFriendly;
    Этот параметр по умолчанию ложь . Установка этого значения на истина изменяет поведение записи функция, позволяющая разрешать прерывания после отправки каждого цвета, примерно каждые 36 микросекунд. См. Обсуждение выше.

Соединение светодиодных лент вместе

Для соединения светодиодных лент друг с другом специальный код не требуется. Х-метр Светодиодной лентой, прикрепленной цепью к Y-метру Светодиодной лентой, можно точно управлять так же, как одинарная (X + Y) -метровая светодиодная лента.

История версий

  • 4.3.1 (2021-01-12): изменено поле архитектур в library.properties с * на avr, sam .
  • 4.3.0 (2019-04-03): Добавлена ​​поддержка ATmega328PB и AVR 12 МГц.
  • 4.2.0 (20.03.2017): добавлен конструктор для rgb_color, который принимает три значения цвета, и изменены примеры для его использования. Добавлен файл keywords.txt , который используется IDE Arduino для подсветки синтаксиса.
  • 4.1.1 (2017-01-16): Исправлено поле «url» библиотеки library.properties.
  • 4.1.0 (03.11.2016): изменено время сброса с 50 до 80 мкс для поддержки SK6812.
  • 4.0.0 (22.08.2016): обновлена ​​библиотека для работы с диспетчером библиотек Arduino.
  • 3.2.0 (27.08.2014): Добавлена ​​поддержка AVR, работающих на частоте 8 МГц (спасибо odewdney).
  • 3.1.2 (10.06.2014): исправлена ​​ошибка преобразования HSV в RGB в примере LedStripRainbow.
  • 3.1.1 (07.01.2014): изменены примеры, чтобы использовать uint16_t вместо байт для i , что упрощает их расширение за пределы 254 светодиодов.
  • 3.1.0 (19.12.2013): Добавлен пример LedStripXmas.
  • 3.0.0 (2013-11-20): переключены красный и зеленый каналы и увеличено время сброса, так что эта библиотека будет хорошо работать с новыми светодиодными лентами WS2812 и WS2182B.Высокоскоростные светодиодные ленты TM1804 по-прежнему работают, если вы переключите красный и зеленый в свой код.
  • 2.1.0 (11.11.2013): добавлен пример LedStripRainbow.
  • 2.0.0 (2013-10-07): прекращена поддержка старых, более медленных светодиодных лент, чтобы сделать библиотеку быстрее.
  • 1.2.0 (2013-10-07): изменено время, чтобы эта библиотека работала с новыми высокоскоростными полосами, но также продолжала работать со старыми низкоскоростными полосами.
  • 1.1.0 (2012-12-17): добавлена ​​поддержка плат на базе ATmega32U4, таких как Arduino Leonardo.Добавлена ​​поддержка плат на базе ARM, таких как Arduino Due.
  • 1.0.0 (09.03.2012): Исходный выпуск.

Библиотека светодиодной анимации FastLED для Arduino (ранее FastSPI_LED)

FastLED - это быстрая, эффективная и простая в использовании библиотека Arduino для программирования адресуемых светодиодных лент и пикселей, таких как WS2810, WS2811, LPD8806, Neopixel и других. FastLED используется тысячами разработчиков в бесчисленных художественных и хобби-проектах, а также в многочисленных коммерческих продуктах.

Мы создаем FastLED, чтобы помочь вам быстрее приступить к работе, быстрее разработать код и ускорить его выполнение.

Отличная совместимость

FastLED поддерживает популярные светодиоды, включая Neopixel, WS2801, WS2811, WS2812B, LPD8806, TM1809 и другие. Библиотека работает на широком спектре Arduino и совместимых плат, включая микроконтроллеры на базе AVR и ARM.

Отличные особенности

В дополнение к быстрому, эффективному и совместимому коду драйвера светодиодов FastLED также предоставляет функции, которые позволяют быстро запускать анимацию:

  • Полная поддержка цветов HSV , а также классическая RGB
  • Основная настройка яркости (неразрушающий) контролирует яркость, энергопотребление и срок службы батареи
  • Быстрые вычисления и функции памяти До 10 раз быстрее, чем стандартные библиотеки Arduino
  • Сообщество пользователей тысяч, которые делятся советами, идеями и помощью
  • Многолетняя история активного развития и развития
  • Безжалостная эффективность , почти фанатичное стремление к производительности и красивая униформа с RGB-подсветкой.

Начать ...

Загрузите библиотеку и приступайте к кодированию!


Даниэль Гарсиа (координатор) создал FastSPI_LED в 2010 году, FastSPI_LED2 в 2012 году.
Марк Кригсман (кригсман) присоединился к проекту в 2013 году.

Создание светодиодной матрицы с помощью Arduino, на основе материалов CUI

Фон

Поскольку COVID-19 удерживает многих из нас дома, я тратил часть своего дополнительного времени дома на просмотр своих запасов источников питания и электронных компонентов, чтобы посмотреть, что я могу с ними сделать.Моим первым проектом было использование некоторых старых программируемых светодиодных лент, оставшихся с праздников. Результатом стала матрица светодиодов RGB 24 x 18 (всего 432 светодиода RGB). Матрица имеет в общей сложности 144 управляемых раздела (24 x 6), запрограммированных с помощью множества выбираемых программ.

Рис. 1. «CUI» на плате светодиодов

Обзор платы

Плата сделана из куска фанеры с 3 полосами светодиодов длиной 5 метров, нарезанными в общей сложности на 24 полосы меньшего размера, каждая из которых содержит 18 светодиодов. Цвет светодиодов контролируется Arduino Uno группами по три (6 групп на полосу из 18 светодиодов) на основе пользовательского ввода с потенциометра и трех кнопок.Плата питается от CUI SDI65-12-U-P6, источник питания переменного / постоянного тока 60 Вт, 12 В, 5 А и две внутренние шины +/- 5 В поставляются от CUI V7805-1000. Схема демультиплексора используется для маршрутизации данных на светодиодные ленты. Arduino контролирует ток светодиода и управляет питанием светодиодов через реле.

Рисунок 2: Блок-схема светодиодной платы Рисунок 3: Светодиодная плата спереди Рисунок 4: Светодиодная плата сзади
Категория Описание КОЛ-ВО
Контроллер ARDUINO UNO ATMEGA328 EVAL BRD 1
Светодиодные ленты 5 м 150 светодиодов WS2811 светодиодная лента программируемая светодиодная подсветка цвета мечты IP67 трубка водонепроницаемая белая печатная плата 3
Блок питания АДАПТЕР ДЛЯ НАСТОЛЬНОГО ИСТОЧНИКА AC / DC 12V 60W 1
Плата MUX Демулиплексоры и регулятор 5 В 1
Плата измерения тока Датчик тока и усилитель, с регулятором -5 В, 5 В 1
Релейная плата Плата реле, 12В 1
Плата кнопок Плата интерфейса пользователя, три кнопки, один потенциометр, 5 В 1
Рисунок 5: Спецификация верхнего уровня

Внешний источник питания

Внешний источник питания SDI65-12-U-P6 используется в качестве основного источника питания для платы.Он может обеспечивать 12 В непрерывно, до 5 А. Где-то между 5 и 7,5 А блок питания перейдет в режим защиты от перегрузки по току и будет работать с ошибками, пока ток нагрузки не упадет. Когда это происходит, Arduino теряет питание и сбрасывается, если его шина питания не удерживается достаточно долго для обнаружения и устранения неисправности. Чтобы измерить ток и предотвратить сброс контроллера OCP, светодиодные ленты подключены к источнику питания 12 В через цепь измерения тока и реле, которое управляется Arduino.

Максимальный ток каждого светодиода составляет 18,5 мА. С 432 светодиодами максимальный ток составляет 8 А, что означает, что при определенных условиях может сработать OCP. Но это условие применяется только тогда, когда все красный, зеленый и синий светодиоды горят одновременно. Сплошной красный или зеленый при полной яркости требует всего 2,7 А. После тестирования я обнаружил, что 4,5 А будет более чем достаточно для всего, что я планировал сделать. Arduino будет отслеживать измеренный ток светодиода и выключить реле, если ток превысит ~ 4.6 А. Это оставляет 5 Вт для других цепей.

Рисунок 6: Тестовое измерение OCP - Реле (зеленый) переходит в низкий уровень, когда ток (фиолетовый), измеряемый усилителем (голубой), превышает 4,78 А, в результате чего напряжение светодиода (темно-синий) гаснет. Максимальная выходная мощность составила 57,2 Вт во время теста

Arduino Uno

Плата Arduino Uno, основанная на Atmel ATmega328, используется для управления системой. Связь со светодиодными лентами (или WS2811, которые их внутренне контролируют) является однопроводной связью на основе ширины импульса и обрабатывается библиотекой Adafruit NeoPixel, которая включена в Arduino IDE.Все коммуникации, процедуры отображения, пользовательский интерфейс и управление реле программируются и контролируются платой Arduino.

Рисунок 7: Плата Arduino Uno Рисунок 8: Синхронизация связи WS2811

Плата MUX

Каждая из небольших полосок имеет однопроводную линию связи, которая была демультиплексирована в одну линию связи платой мультиплексора, которая управляется Arduino Uno. Плата мультиплексора также служит центральной точкой распределения энергии. Внешнее питание от SDI65-12-U подключается непосредственно к плате мультиплексора.12 В от источника питания распределяются с платы мультиплексора на плату реле и на вход импульсного регулятора V7805-1000, который преобразует его в 5 В для демультиплексоров. Шина 5 В также выводится на Arduino, а через эту плату - на платы кнопок и датчиков тока.

Рисунок 9: Плата MUX Рисунок 10: Схема платы MUX
Категория Описание Арт. КОЛ-ВО
Разъем 2.0 x 6,5 мм, 5,0 A, горизонтальный, поверхностный монтаж (SMT), разъем питания постоянного тока J8 1
Разъем CONN ЖАТКА VERT 10POS 2.54MM J1, J2, J3 3
Ползунковый переключатель Ползунковый переключатель, однополюсный, 5A / 120V, двухпозиционный S1 1
Провод к клемме TERM BLK 2P SIDE ENT 2.54 мм печатная плата J4, J5, J6, J7, J9 5
Провод к клемме TERM BLK 2P SIDE ENT 5.08MM PCB J10 1
Регулятор переключения DC-DC НЕИЗОЛЯЦИОННЫЙ, 2 A, 8 ~ 36 VD DC1 1
Керамический конденсатор КОЛПАЧОК CER 0,1 мкФ 50 В X7R РАДИАЛЬНЫЙ C3, C4, C5 3
Электролитический конденсатор КРЫШКА АЛЮМИНИЕВАЯ 1 мкФ 20% 50 В РАДИАЛЬНАЯ C2 1
Алюминиевый полимерный конденсатор КРЫШКА ALUM POLY 470UF 20% 16V T / H C1 1
Светодиод ЗЕЛЕНЫЙ ДИФФУЗОР LED T-1 3/4 T / H D1 1
MUX IC 3-8 ЛИНИЙ ДЕКОДЕР / DEMUX 16-DIP MUX0, MUX1, MUX2 3
Резистор РЭС 1.2 кОм 1/8 Вт 5% CF AXIAL R1 1
Рисунок 11: Спецификация платы MUX

Плата измерения тока

Плата измерения тока является частью цепи защиты от перегрузки по току (OCP). Ток к светодиодам протекает через силовой резистор на этой плате, и напряжение этого резистора, пропорциональное току светодиода, измеряется и усиливается операционным усилителем и выводится на Arduino. Коэффициент усиления усилителя регулируется потенциометром с минимальным коэффициентом усиления 1 и максимальным коэффициентом усиления 11.Обычно он установлен на 5, так что выход составляет 2,5 A / V входного сигнала (2 В при 5 A). Компаратор, порог которого устанавливается вторым потенциометром, определяет, было ли превышено пороговое значение OCP, который включает светодиодный индикатор и выдает логический сигнал на Arduino. Эта плата питается от шины V7805-1000 5V, идущей от платы MUX. Он также внутренне создает шину -5 В для операционного усилителя, используя V7805-1000 в его инвертирующей конфигурации.

Рисунок 12: Схема измерения тока Рисунок 13: Схема платы датчика тока
Категория Описание Арт. КОЛ-ВО
Резистор RES 5,1 кОм 1/8 Вт 5% ось R2, R8 2
ОП-АМП IC OPAMP GP 1 ЦЕПЬ 8DIP У2, У3 2
Резистор RES 10K OHM 1 / 8W 5% AXIAL R5, R6, R10 3
Светодиод ЗЕЛЕНЫЙ ДИФФУЗОР LED T-1 3/4 T / H D1 1
Светодиод КРАСНЫЙ СВЕТОДИОДНЫЙ ТИП Т-1 3/4 Т / В D2 1
Транзистор МОП-транзистор N-CH 60V 200MA TO-92 Q1, Q2 2
Провод к клемме TERM BLK 2P SIDE ENT 2.54 мм печатная плата J1, J2 2
Керамический конденсатор КОЛПАЧОК CER 0,1 мкФ 50 В X7R РАДИАЛЬНЫЙ C2, C3, C4 3
Регулятор переключения DC-DC НЕИЗОЛЯЦИОННЫЙ, 2 A, 8 ~ 36 VD U1 1
Резистор Смола 470 Ом 1 / 8Вт 5% ОСЕВОЙ R1 1
Емкость КРЫШКА АЛЮМИНИЯ 47 мкФ 20% 25 В ПРОХОДНОЕ ОТВЕРСТИЕ C1 1
Резистор RES CHAS MNT 0.1 Ом 5% 16 Вт R4 1
Керамический конденсатор КОЛПАЧОК CER 0,01 мкФ 50V X7R РАДИАЛЬНЫЙ C5 1
Обрезной горшок ТРИММЕР 10 кОм 0,2 Вт PC PIN TOP R3 1
Обрезной горшок ТРИММЕР 50 кОм 0,2 Вт PC PIN TOP R7 1
Рисунок 14: Спецификация платы датчика тока

Релейная плата

Плата реле представляет собой простое реле и драйвер.Когда на управляющем входе устанавливается высокий уровень, реле включает светодиоды, а когда понижается мощность, светодиоды снимаются. Эта плата работает от 12 В, поступающего от SDI65-12-U-P6 через плату MUX.

Рисунок 12: Плата реле Рисунок 13: Схема платы реле
Категория Описание Арт. КОЛ-ВО
Провод к клемме TERM BLK 2P SIDE ENT 2.54MM PCB J1, J2, J3 3
Транзистор Биполярный (BJT) транзистор PNP 40V 200MHz 600mW Through Hole TO-92 1 квартал 1
Транзистор N-канал 60 В 200 мА (Ta) 400 мВт (Ta) сквозное отверстие TO-92-3 2 квартал 1
Резистор РЭС 2.2 кОм 1/8 Вт 5% ось R1 1
Резистор RES 110K OHM 1 / 8W 5% CF AXIAL R3 1
Резистор RES 1,2 кОм 1 / 8W 5% CF AXIAL R2 1
Реле РЕЛЕ ГЕНЕРАЛЬНОГО НАЗНАЧЕНИЯ DPDT 5A 24V К1 1
Рисунок 14: Спецификация платы реле

Плата кнопок

Пользователь может регулировать яркость светодиодов с помощью потенциометра.Три кнопки позволяют пользователю циклически переключаться между различными режимами отображения и настройками цвета. Эта плата питается от 5 В от V7805-1000 на плате MUX.

Рисунок 14: Плата кнопок Рисунок 15: Схема платы кнопок
Категория Описание Арт. КОЛ-ВО
Кнопки ВЫКЛЮЧАТЕЛЬ КНОПКИ SPST 1A 30V S1, S2, S3 3
Провод к клемме TERM BLK 2P SIDE ENT 2.54 мм печатная плата J1, J2, J3 3
Керамический конденсатор КОЛПАЧОК CER 0,1 мкФ 50 В X7R РАДИАЛЬНЫЙ C2 1
Светодиод ЗЕЛЕНЫЙ ДИФФУЗОР LED T-1 3/4 T / H D1 1
Резистор RES 4,7 кОм 1/8 Вт 5% ось R1 1
Электролитический конденсатор КРЫШКА АЛЮМИНИЕВАЯ 10 мкФ 20% 16 В РАДИАЛЬНАЯ C1 1
Резистор RES 110K OHM 1 / 8W 5% CF AXIAL R2, R3, R4 3
Потенциометр POT 10 кОм 1 / 5W PLASTIC LINEAR R5 1
Рисунок 16: Плата кнопок Спецификация

Результаты

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

Для первой процедуры (прежде чем я закончил добавлять все светодиодные ленты) я заменил потенциометр на внешний аналоговый вход. К этому входу были применены микрофон и схема определения уровня, а громкость микрофона регулировала светодиоды.

Еще одна процедура представляла собой прыгающий квадрат, цвет которого менялся при попадании на край.

Наконец, я добавил настройку полностью белого цвета для проверки функции OCP. Когда яркость увеличивается, запускается цепь OCP. Следующий клип также демонстрирует панель кнопок, переключающую запрограммированные процедуры отображения.

Вам также может понравиться


У вас есть комментарии к этому сообщению или темам, которые вы хотели бы, чтобы мы освещали в будущем?
Отправьте нам письмо по адресу powerblog @ cui.ком

Управление 3 светодиодами с Arduino и одной кнопкой • AranaCorp

Теги: Arduino, C / C ++, Программирование

Один из самых простых и быстрых способов начать изучение программирования и электроники с Arduino - это использовать светодиоды. Здесь мы увидим, как управлять светодиодами и как выбирать различные функции кода, используя только одну кнопку. Это в простой форме резюмирует то, с чем вы можете столкнуться при работе с роботом: мозг (плата Arduino), чувства (датчики, здесь кнопка) и выходы или исполнительные механизмы (здесь обозначены светодиодами).

Материал

  • Компьютер
  • Arduino UNO
  • USB-кабель
  • Светодиоды x3
  • Макетная плата
  • Кабель Dupont M / M
  • Кнопка x1
  • Сопротивления x4

Объектив

В этом уроке мы создадим несколько функций для управления светодиодами различными способами в соответствии с выбранным режимом. Это цель любой программы робота: выполнить действие в зависимости от входных сигналов от датчиков.

Электропроводка

Кнопка подключена к контакту 8, LED1 - к 9, LED2 - к 10 и LED3 - к 11.Мы добавили некоторое электрическое сопротивление для защиты компонентов, но оно не всегда необходимо. Перед использованием сверьтесь с таблицей компонентов.

Код

Для управления светодиодом мы можем использовать функцию digitalWrite () с параметром HIGH, чтобы включить его, и LOW, чтобы выключить.

 digitalWrite (led1Pin, HIGH);
  задержка (30);
  digitalWrite (led1Pin, LOW);
  задержка (30);
 

Мы также можем регулировать яркость светодиода с помощью analogWrite ().

 int яркость = 0;
  int fadeAmount = 5;

 for (яркость = 0; яркость <= 255; яркость + = fadeAmount) {
    analogWrite (led1Pin, яркость);
    задержка (30);
  }

 

Эти базовые функции используются в примерах из Arduino IDE, Blink и Fade.Из них мы можем создать подфункции, которые будут по-разному управлять светодиодами в зависимости от выбранного режима.

Чтобы прочитать состояние кнопки, мы используем функцию digitalRead (). В этом приложении мы хотим подсчитать количество нажатий кнопки. Для этого есть специальная функция pulseIn (), которая измеряет длину импульса.

 длинная кнопка без знакаState = 0;
int funcState = 0;

void buttonPressed () {
    buttonState = pulseIn (btnPin, HIGH, 1000000);
    if (buttonState> 50) {
      funcState + = 1;
        Серийный .print ("Состояние кнопки n:");
        Серийный номер  .println (funcState);
    }
    funcState = funcState% NBSTATE;
  }

 

Выбранный режим сохраняется в переменной funcState. Мы можем определить режимы и связать соответствующие функции. Мы используем ключевые слова enum, которые создают список целых чисел, и switch..case, которые выбирают фрагмент кода для выполнения в зависимости от переменной.

 enum fcnMode {
  ВЫКЛЮЧЕННЫЙ,
  LED1,
  LED2,
  LED3,
  FADE1,
  ВСЕ,
  МИГАЕТ,
  NBSTATE
  }; // ВЫКЛ = 0 и NBSTATE = 7

  switch (funcState) {
    case OFF:
    перерыв;
    корпус LED1:
      digitalWrite (led1Pin, HIGH);
    перерыв;
    корпус LED2:
      digitalWrite (led2Pin, HIGH);
    перерыв;
    корпус LED3:
       digitalWrite (led3Pin, HIGH);
    перерыв;
    case FADE1:
      fade1 ();
      перерыв;
    case ALL:
      digitalWrite (led1Pin, HIGH);
      digitalWrite (led2Pin, HIGH);
      digitalWrite (led3Pin, HIGH);
    перерыв;
    case МИГАЕТ:
      blinkLed1 ();
      blinkLed2 ();
      blinkLed3 ();
    перерыв;
  }

 

Полный код

Вы можете изменить весь код, чтобы адаптировать его к вашему проекту.

 // Назначение контактов
const int btnPin = 8;
const int led1Pin = 9;
const int led2Pin = 10;
const int led3Pin = 11;
enum fcnMode {
ВЫКЛЮЧЕННЫЙ,
LED1,
LED2,
LED3,
FADE1,
ВСЕ,
МИГАЕТ,
NBSTATE
}; // ВЫКЛ = 0 и NBSTATE = 7
int ledState1 = LOW, ledState2 = LOW, ledState3 = LOW; // ledState используется для установки светодиода
беззнаковая длинная кнопкаState = 0;
int funcState = 0;
беззнаковый длинный currentMillis1, currentMillis2, currentMillis3; // сохраним текущее время
беззнаковое длинное значение previousMillis1, previousMillis2, previousMillis3; // сохранит время последнего обновления светодиода
const long interval1 = 100; // интервал мигания (миллисекунды)
const long interval2 = 300;
const long interval3 = 500;
/ *********************************************** ***************** \
 ЧАСТНАЯ ФУНКЦИЯ: настройка

 ПАРАМЕТРЫ:
 ~ пусто

 ВОЗВРАЩЕНИЕ:
 ~ пусто

 ОПИСАНИЕ:
 Инициировать входы / выходы

 \ *********************************************** ***************** /
void setup () {
 Серийный .begin (9600); // инициализируем последовательный порт
pinMode (btnPin, INPUT_PULLUP);
pinMode (led1Pin, ВЫХОД);
pinMode (led2Pin, ВЫХОД);
pinMode (led3Pin, ВЫХОД);
}
/ *********************************************** ***************** \
 ЧАСТНАЯ ФУНКЦИЯ: петля

 ПАРАМЕТРЫ:
 ~ пусто

 ВОЗВРАЩЕНИЕ:
 ~ пусто

 ОПИСАНИЕ:
 Основная функция кода
 \ *********************************************** ***************** /
void loop () {
buttonPressed ();
установить режим();
}
/ *********************************************** *****************
 ПОДФУНКЦИИ
 \ *********************************************** ***************** /
void buttonPressed () {
buttonState = pulseIn (btnPin, HIGH, 1000000);
if (buttonState> 50) {
funcState + = 1;
 Серийный .print ("Состояние кнопки n:");
 Серийный номер  .println (funcState);
}
funcState = funcState% NBSTATE;
}
void setMode () {
// Все выключить
digitalWrite (led1Pin, LOW);
digitalWrite (led2Pin, LOW);
digitalWrite (led3Pin, LOW);
 Серийный номер  .print ("Функция:");
 Серийный номер  .println (funcState);
switch (funcState) {
case OFF:
перерыв;
корпус LED1:
digitalWrite (led1Pin, HIGH);
перерыв;
корпус LED2:
digitalWrite (led2Pin, HIGH);
перерыв;
корпус LED3:
digitalWrite (led3Pin, HIGH);
перерыв;
case FADE1:
fade1 ();
перерыв;
case ALL:
digitalWrite (led1Pin, HIGH);
digitalWrite (led2Pin, HIGH);
digitalWrite (led3Pin, HIGH);
перерыв;
case МИГАЕТ:
blinkLed1 ();
blinkLed2 ();
blinkLed3 ();
перерыв;
}
}
void fade1 () {
int яркость = 0;
int fadeAmount = 5;
for (яркость = 0; яркость <= 255; яркость + = fadeAmount) {
analogWrite (led1Pin, яркость);
задержка (30);
}
for (яркость = 255; яркость> = 0; яркость - = fadeAmount) {
analogWrite (led1Pin, яркость);
задержка (30);
}
}
void blinkLed1 () {
currentMillis1 = миллис ();
if (currentMillis1 - previousMillis1> = interval1) {
// сохраняем время последнего мигания светодиода
previousMillis1 = currentMillis1;
// если светодиод не горит, включаем и наоборот:
if (ledState1 == LOW) {
ledState1 = ВЫСОКИЙ;
} еще {
ledState1 = LOW;
}
// устанавливаем светодиод с ledState переменной:
digitalWrite (led1Pin, ledState1);
}
}
void blinkLed2 () {
currentMillis2 = миллис ();
if (currentMillis2 - previousMillis2> = interval2) {
// сохраняем время последнего мигания светодиода
previousMillis2 = currentMillis2;
// если светодиод не горит, включаем и наоборот:
if (ledState2 == LOW) {
ledState2 = ВЫСОКИЙ;
} еще {
ledState2 = LOW;
}
// устанавливаем светодиод с ledState переменной:
digitalWrite (led2Pin, ledState2);
}
}
void blinkLed3 () {
currentMillis3 = миллис ();
if (currentMillis3 - previousMillis3> = interval3) {
// сохраняем время последнего мигания светодиода
previousMillis3 = currentMillis3;
// если светодиод не горит, включаем и наоборот:
if (ledState3 == LOW) {
ledState3 = ВЫСОКИЙ;
} еще {
ledState3 = LOW;
}
// устанавливаем светодиод с ledState переменной:
digitalWrite (led3Pin, ledState3);
}
}
 

Оставьте комментарий, чтобы поделиться своими проектами или сообщить нам, что вы думаете об этом руководстве.Не стесняйтесь обращаться к нам с любыми вопросами, которые могут у вас возникнуть.

Приложение

Источник

Найдите другие примеры и руководства в нашем автоматическом генераторе кода
Code Architect

Освещение светодиода с помощью платы Arduino - Классные компоненты

Светодиоды

являются одними из самых популярных компонентов, их можно использовать для множества вещей, от дисплеев до инструментов для поиска и устранения неисправностей. Но как их использовать и подключать к плате разработки на базе Arduino? Прежде чем подключать светодиод к Arduino, нам сначала нужно понять, как работает светодиод.

Стандартная светодиодная схема

Ниже приведен пример простой светодиодной схемы, которая может включать большинство стандартных светодиодов. Он состоит из последовательно соединенных светодиода, токоограничивающего резистора и батареи AA.

Каждый светодиод состоит из анодного (положительного) и катодного (отрицательного) соединений, и важно правильно подключить светодиод, чтобы не повредить его, когда ток течет в неправильном направлении. Достаточно легко определить, какая сторона является положительной и отрицательной, более длинная или нога с выемкой на ней является анодом (+), а другая нога - катодом (-).Для светодиода также необходим токоограничивающий резистор, который обеспечит защиту светодиода от сверхтоков, которые могут его повредить и сломать.

Стандартный сквозной светодиод

Теперь мы знаем, как светодиод питается и используется в нормальной цепи, давайте немного изменим схему выше, чтобы она питалась через Arduino. При использовании Arduino мы будем использовать цифровой контакт (контакт 7) для управления положительной мощностью на Светодиод и платы обозначены контактом заземления. Как и раньше, для защиты светодиода нам понадобится токоограничивающий резистор.

Программирование Arduino

Для программирования платы мы будем использовать модифицированную версию примера Blink, встроенную в IDE Arduino. Код состоит из трех основных частей: создание переменной, определение контакта и включение светодиода.

Создание переменной для вывода светодиода выполняется вне и перед разделами void setup или viod loop. Затем нам нужно объявить контакт, который мы используем, и то, как он будет использоваться, это делается в разделе кода void setup.Мы будем использовать вывод 7 в качестве выхода, так как мы использовали переменную для хранения вывода светодиода, который вы можете использовать.

Наконец, нам нужно включить и выключить светодиод, поскольку светодиод подключен к выходному контакту Arduino, мы можем использовать простую цифровую запись для установки высокого или низкого уровня выходного сигнала.

Вы можете просмотреть полный код ниже:

Светодиод RGB с общим катодом

Это светодиод с общим катодом RGB, это три отдельных светодиода (красный, зеленый, синий) с общей массой в одном корпусе.Вы используете его так же, как и стандартный светодиод, подайте положительное напряжение на анод (+) и заземление на вывод GND, и он загорится. Этот тип светодиода позволяет создавать широкий диапазон цветов RGB, смешивая, какие из них горят, и изменяя интенсивность отдельных (R, G, B) светодиодов.

При подключении такого светодиода лучше рассматривать его как 3 отдельных светодиода, которые имеют общую землю. Каждому светодиоду по-прежнему потребуется резистор, ограничивающий ток, и положительный вывод питания от вывода Arduino.

Программирование платы

Программирование платы очень похоже на предыдущий пример, за исключением того, что на этот раз у нас есть три светодиода для включения и выключения. Код, показанный ниже полностью, совпадает с приведенным выше примером, только расширенным для других светодиодов. При программировании он будет по очереди загорать и выключать каждый из светодиодов (R, G, B).

.

alexxlab

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

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