Адресная лента ардуино блютуз

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Матрица адресных светодиодов, управляемая по Bluetooth

License

AlexGyver/GyverMatrixBT

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

PROJECT_PHOTO

Bluetooth адресная матрица на Arduino

AlexGyver YouTube

  • Описание проекта
  • Папки проекта
  • Схемы подключения
  • Материалы и компоненты
  • Как скачать и прошить
  • FAQ
  • Полезная информация

Матрица на адресных светодиодах с управлением по Bluetooth
Гайд по матрицам: https://alexgyver.ru/matrix_guide/
Страница проекта на сайте: https://alexgyver.ru/gyvermatrixbt/
Описания к новыем версиям прошивок и приложений смотри на странице проекта

  • «Дыхание» яркости
  • Смена цвета
  • Снегопад
  • Блуждающий кубик
  • Радуга
  • Огонь
  • The Matrix
  • Летающие частицы
  • Линии
  • Автоподключение к матрице при запуске
  • Настройки яркости и скорости отображения
  • Использование акселерометра в играх

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

  • libraries — библиотеки проекта. Заменить имеющиеся версии (в этом проекте внешних библиотек нет)
  • firmware — прошивки для Arduino
  • schemes — схемы подключения компонентов
  • Android — файлы с приложениями, примерами для Android и Thunkable
  • 3Dprint — файлы для печати и исходники

SCHEME

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

Полный список компонентов есть в статье https://alexgyver.ru/matrix_guide/

  • Arduino NANO https://ali.ski/RJYuqhttps://ali.ski/8JonUmhttps://ali.ski/0DIg3
  • Bluetooth HC-06 https://ali.ski/nrJ-Ghttps://ali.ski/0H5Vkhttps://ali.ski/xC5vwp
  • Матрицы разные https://ali.ski/ft9Y6T
  • Лента https://ali.ski/cXIgB1
  • Модульная гирлянда https://ali.ski/qrVjv
  • Резисторы https://ali.ski/sr6Xy
  • БП 5 Вольт https://ali.ski/HkrNAGhttps://ali.ski/Y-6VK

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

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

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

  • Установить библиотеки в
    C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)
  • Подключить внешнее питание 5 Вольт
  • Подключить Ардуино к компьютеру
  • Запустить файл прошивки (который имеет расширение .ino)
  • Настроить IDE (COM порт, модель Arduino, как в статье выше)
  • Настроить что нужно по проекту
  • Нажать загрузить
  • Скачать GyverMatrixBT с Play Market
  • Пользоваться
USE_BUTTONS 0 // использовать физические кнопки управления (0 нет, 1 да) BUTT_UP 3 // кнопка вверх BUTT_DOWN 5 // кнопка вниз BUTT_LEFT 2 // кнопка влево BUTT_RIGHT 4 // кнопка вправо LED_PIN 6 // пин ленты BRIGHTNESS 60 // стандартная маскимальная яркость (0-255) WIDTH 16 // ширина матрицы HEIGHT 16 // высота матрицы MATRIX_TYPE 0 // тип матрицы: 0 - зигзаг, 1 - последовательная CONNECTION_ANGLE 0 // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний STRIP_DIRECTION 0 // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз SCORE_SIZE 0 // размер букв счёта в игре. 0 - маленький (для 8х8), 1 - большой FONT_TYPE 1 // (0 / 1) два вида маленького шрифта GLOBAL_COLOR_1 CRGB::Green // основной цвет №1 для игр GLOBAL_COLOR_2 CRGB::Orange // основной цвет №2 для игр 

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

Читайте также:  Может ли вай фай мешать блютуз наушникам

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

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

В: Вылетает ошибка загрузки / компиляции! О: Читай тут: https://alexgyver.ru/arduino-first/#step-5

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

Источник

Подсветка комнаты или кухни на Ардуино с пультом

Умная подсветка комнаты на Ардуино

Схема сборки данного проекта представлена на картинке ниже, обратите внимание, что для ленты ws2811 потребуется источник питания 12 Вольт, а для ленты ws2812 или ws2815 блок питания на 5 Вольт. Схема подключения адресной ленты и Ардуино при этом остается неизменной. Так же необходимо, чтобы в адресной ленте было четное количество светодиодов для симметричности включения световых эффектов.

Сборка подсветки для ванной комнаты на Ардуино

Схема умной подсветки комнаты на Ардуино

Для создания эффектов на ws2811 используется библиотека Adafruit_NeoPixel.h, для ИК пульта необходима библиотека IRremote.h, а для записи настроек в память eeprom необходима библиотека EEPROM.h — скачать библиотеки можно здесь. После сборки электрической схемы умной подсветки в комнате на Arduino и ws2812, установите необходимые библиотеки и загрузите следующую программу в плату.

Скетч. Подсветка комнаты или кухни на Ардуино

#include "EEPROM.h" #include "IRremote.h" #include "Adafruit_NeoPixel.h" // пины подключения ИК приемника, адресной ленты, датчика #define IR_PIN 2 #define LED_PIN 7 #define PIR_PIN A1 int PIX = 119; // количество светодиодов в ленте (120 шт) int TIME = 1; // через сколько минут отключать подсветку // коды от кнопок ИК пульта #define ENT 16726215 // ok - вход в настройки #define RGT 16734885 // -> - увеличить задержку #define LFT 16716015 // #define TOP 16718055 // увеличить яркость #define BOT 16730805 // уменьшить яркость #define EF1 16753245 // 1 - первый эффект #define EF2 16736925 // 2 - второй эффект #define EF3 16769565 // 3 - третий эффект #define RED 16769055 // 7 - настройка красного цвета #define GRN 16754775 // 8 - настройка зеленого цвета #define BLU 16748655 // 9 - настройка синего цвета #define UPD 16756815 // # - сохранить настройки int pix_l_start = 0; int pix_l_finis = PIX / 2; int pix_r_start = PIX / 2; int pix_r_finis = PIX; int brg, del, p, x, i, j, e, w; byte r, g, b; unsigned long timer; unsigned long t = t * 60 * 1000; IRrecv irrecv(IR_PIN); decode_results results; Adafruit_NeoPixel strip (PIX, LED_PIN, NEO_GRB + NEO_KHZ800); void setup() < // считываем информацию из энергонезависимой памяти r = EEPROM.read(1); // значение красного цвета g = EEPROM.read(2); // значение зеленого цвета b = EEPROM.read(3); // значение синего цвета brg = EEPROM.read(4); // значение яркости ленты del = EEPROM.read(5); // значение скорости эффектов e = EEPROM.read(6); // номер эффекта при включении Serial.begin(9600); irrecv.enableIRIn(); strip.begin(); strip.setBrightness(brg); strip.clear(); pinMode(IR_PIN, INPUT); pinMode(PIR_PIN, INPUT); > void loop() < p = digitalRead(A1); delay(100); // если есть движение включаем подсветку с эффектом if (p == HIGH && x == 0) < effect(e); svet(); x = 1; >// если нет движения включаем счетчик if (p == LOW && x == 1) < timer = millis(); x = 2; > // если движения не было, то выключаем подсветку if (p == LOW && x == 2 && millis() - timer > t) < timer = millis(); vykluchenie(); x = 0; > // если движение появилось отключаем отсчет времени if (p == HIGH && x == 2) < x = 1; >// выводим сигнал с ик пульта на монитор порта if (irrecv.decode(&results)) < Serial.println(results.value); // если пришел сигнал ENT - переходим в режим настройки if (results.value == ENT) < demo(); w = 1; >irrecv.resume(); > while (w == 1) < // выводим сигнал с ик пульта на монитор порта if (irrecv.decode(&results)) < Serial.println(results.value); // выбор эффекта включения подсветки с демонстрацией if (results.value == EF1) < e = 1; effect(e); strip.clear(); > if (results.value == EF2) < e = 2; effect(e); strip.clear(); > if (results.value == EF3) < e = 3; effect(e); strip.clear(); > // настройка яркости подсветки if (results.value == TOP) < brg = brg + 60; if (brg >240) < brg = 240; >> if (results.value == BOT) < brg = brg - 60; if (brg < 60) < brg = 60; >> // настройка скорости включения подсветки с демонстрацией if (results.value == LFT) < del = del - 10; if (del < 0) < del = 0; >effect(e); strip.clear(); > if (results.value == RGT) < del = del + 10; if (del >50) < del = 50; >effect(e); strip.clear(); > // настройка цвета подсветки if (results.value == RED) < r = r + 60; if (r >240 || r < 60) < r = 0; >> if (results.value == GRN) < g = g + 60; if (g >240 || g < 60) < g = 0; >> if (results.value == BLU) < b = b + 60; if (b >240 || b < 60) < b = 0; >> // при нажатии на кнопку UPD - сохраняем настройки в eeprom if (results.value == UPD) < delay(1); EEPROM.update(1, r); delay(1); EEPROM.update(2, g); delay(1); EEPROM.update(3, b); delay(1); EEPROM.update(4, brg); delay(1); EEPROM.update(5, del); delay(1); EEPROM.update(6, e); delay(1); effect(e); > // выход из режима настройки if (results.value == ENT) < effect(e); strip.clear(); w = 0; > demo(); irrecv.resume(); > > > // включение подсветки в режиме настройки void demo() < strip.clear(); strip.setBrightness(brg); for (i = 0; i < PIX; i = i + 2) < strip.setPixelColor(i, strip.Color(r, g, b)); strip.show(); > > // основной режим подсветки void svet() < strip.setBrightness(brg); for (i = 0; i < PIX; i++) < strip.setPixelColor(i, strip.Color(r, g, b)); strip.show(); > > // плавное выключение подсветки void vykluchenie() < for ( j = brg; j >= 0; j = j - 20) < strip.setBrightness(j); for ( i = pix_l_start; i setPixelColor(i, strip.Color(r, g, b)); strip.show(); > > > // включение эффекта (зависит от переменной 'e') void effect(int e) < // вывод на монитор порта значений всех настроек подсветки // Serial.print("r - "); Serial.println(r); // Serial.print("g - "); Serial.println(g); // Serial.print("b - "); Serial.println(b); // Serial.print("e - "); Serial.println(e); // Serial.print("brg - "); Serial.println(brg); // Serial.print("del - "); Serial.println(del); // Serial.println(""); strip.clear(); strip.setBrightness(brg); // включение подсветки с первым эффектом while (e == 1) < j = 0; for (i = pix_r_start; i setPixelColor(i, r / 3, g / 3, b / 3); strip.setPixelColor(pix_l_finis - j, r / 3, g / 3, b / 3); strip.show(); delay(del); > j = 0; for ( i = pix_r_finis; i >= pix_r_start; i--) < j++; strip.setPixelColor(i, r / 2, g / 2, b / 2); strip.setPixelColor(i + 1, r / 2, g / 2, b / 2); strip.setPixelColor(i + 2, r / 2, g / 2, b / 2); strip.setPixelColor(i + 3, r / 3, g / 3, b / 3); strip.setPixelColor(pix_l_start + j, r / 2, g / 2, b / 2); strip.setPixelColor(pix_l_start + j - 1, r / 2, g / 2, b / 2); strip.setPixelColor(pix_l_start + j - 2, r / 2, g / 2, b / 2); strip.setPixelColor(pix_l_start + j - 3, r / 3, g / 3, b / 3); strip.show(); delay(del); > j = 0; for (i = pix_r_start; i setPixelColor(i, r, g, b); strip.setPixelColor(pix_l_finis - j, r, g, b); strip.show(); delay(del); > break; > // включение подсветки со вторым эффектом while (e == 2) < pix_l_finis = PIX / 2; while (pix_l_finis > 0) < j = 0; for ( i = pix_l_start; i setPixelColor(i, r / 2, g / 2, b / 2); strip.setPixelColor(i - 1, r / 2, g / 2, b / 2); strip.setPixelColor(i - 2, r / 2, g / 2, b / 2); strip.setPixelColor(i - 3, 0, 0, 0); strip.setPixelColor(pix_r_finis - j, r / 2, g / 2, b / 2); strip.setPixelColor(pix_r_finis - j + 1, r / 2, g / 2, b / 2); strip.setPixelColor(pix_r_finis - j + 2, r / 2, g / 2, b / 2); strip.setPixelColor(pix_r_finis - j + 3, 0, 0, 0); strip.show(); delay(del / 10); > pix_l_finis = pix_l_finis - 3; > pix_l_finis = PIX / 2; j = 0; for (i = pix_r_start; i setPixelColor(i, r, g, b); strip.setPixelColor(pix_l_finis - j, r, g, b); strip.show(); delay(del / 2); > break; > // включение ленты с третьим эффектом while (e == 3) < j = 0; for ( j = 0; j setBrightness(j); for ( i = pix_l_start; i setPixelColor(i, strip.Color(r, g, b)); strip.show(); > > break; > >

Пояснения к коду:

  1. после загрузки программы необходимо указать коды от кнопок пульта ДУ — они будут выводиться на мониторе порта Arduino IDE;
  2. также необходимо указать в скетче количество светодиодов в ленте (желательно использовать четное количество светодиодов в подсветке).
Читайте также:  Marshall stockwell black bluetooth

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

Источник

Оцените статью
Adblock
detector