Светодиодная лента

Подключение светодиодов, и светодиодных лент
Rominem
Рядовой
Сообщения: 3
Зарегистрирован: 24.08.2017{, 11:38}
Репутация: 0

Светодиодная лента

#1

Сообщение Rominem » 20.11.2017{, 08:56}

Помогите пожалуйста есть у меня светодиодная лента трехцветна подключенные к Arduino мосфет ключами Как написать программу чтобы можно было управлять цветами по кругу с помощью encoder

Аватара пользователя
Олег
Подполковник
Сообщения: 1469
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 60
Контактная информация:

Светодиодная лента

#2

Сообщение Олег » 20.11.2017{, 09:20}

Программу целиком за вас никто писать не будет, если у вас сделан какой-то проект, но он не работает, то прикрепите проект и задавайте конкретные вопросы.
Если вы сосем не понимаете как работать в программе, то для начала посмотрите видеоуроки
Да и подключение гирлянд и использование энкодера не раз обсуждались, воспользуйтесь поиском.
А вот как возникнут конкретные вопросы, так народ поможет.

Rominem
Рядовой
Сообщения: 3
Зарегистрирован: 24.08.2017{, 11:38}
Репутация: 0

Светодиодная лента

#3

Сообщение Rominem » 20.11.2017{, 09:53}

В программе я уже работал не раз, просто не могу понять Как мне организовать циклично смену цвета ШИМ сигналом, просто підкиньте ідею каким блоком это можно организовать

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#4

Сообщение rogerwaters » 30.05.2019{, 13:51}

Выкладываю простую схему управления светодиодной лентой WS2812. Вариации: без управления яркостью, управление яркостью 2мя кнопками,управление яркостью энкодером, автоматическая коррекция яркости фоторезистором.Может кому-нибудь будет интересно и полезно.
Вложения
WS2812.3 Фоторезистор.flp
(221.84 КБ) 15 скачиваний
WS2812.3 2Taster.flp
(240.68 КБ) 15 скачиваний
WS2812.3 Encoder.flp
(404.02 КБ) 15 скачиваний
WS2812.3.flp
(386.55 КБ) 15 скачиваний

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#5

Сообщение rogerwaters » 30.05.2019{, 18:38}

Здесь вы найдете файлы для управления WS2812-лентой с SD-карты.Для этого нужны: ардуино уно, считыватель SD-карт,форматированная в FAT-32 1-32 ГБ карта.Подключение считывателя: SC-10,MOSI-11,MISO-12,SCK-13,управляющий пин 6 .Сначала установите в ардуино иде библиотеку FastLED: инструменты,управлять библиотеками,FastLED,установить.Загрузите прилагаемый скетч в ардуино иде предварительно проверив число Led=60. Распакуйте myanim.zip и скопируйте myanim.dat на карту.Вставте карту в слот и нажмите Reset.Впрочем карту вы можете изготовить сами в программе GLEDIATOR (прилагается).Сейчас думаю как прикрутить регулятор яркости.
Вложения
glediator_v2.0.3.zip
(1.27 МБ) 8 скачиваний
myanim.zip
(161.46 КБ) 11 скачиваний
GLEDIATOR_with_SD_Card_WS2811_final_NANO.ino
(1.72 КБ) 19 скачиваний

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#6

Сообщение rogerwaters » 02.06.2019{, 16:07}

Третий день пытаюсь допилить прилагаемый блок управления WS2812-лентой с SD-карты.Работает только если вводить цифры прямо на вход, но отказывается работать с другими блоками.Нужна помощь специалиста.
Вложения
WS2812_SD_Combi_(CODE).ubi
(21.69 КБ) 4 скачивания

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#7

Сообщение aidar_i » 02.06.2019{, 17:43}

Я начал делать ПБ для работы с SD картой и Jinx! Посмотрю Ваши блоки. Из за дефицита времени не смогу быстро.
Мне кажется, с Jinx! проще работать чем с Glеdiator.

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#8

Сообщение aidar_i » 02.06.2019{, 19:19}

Попробуйте поставить FastLED.show(brightness); за пределами while (fxdata.available()). А внутри поставить FastLED.show();

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#9

Сообщение rogerwaters » 02.06.2019{, 23:51}

Енто как? Я уже все перепробовал.

Отправлено спустя 3 часа 50 минут 12 секунд:
Jinx! и Glеdiator как 2 близнеца. Неизвестно кто у кого спер идею.Файлы изготовленные в Jinx! после изменения названия и загрузки на карту можно проигрывать в Glеdiator скетче для ардуино иде(GLEDIATOR with SD-Card final NANO).Мой блок основан на этом скетче, но не могу привести его в рабочее состояние.

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#10

Сообщение aidar_i » 03.06.2019{, 07:09}

Так попробуйте:
СпойлерПоказать
FastLED.show(brightness);
fxdata = SD.open("myanim.dat"); // read only
if (fxdata)
{
Serial.println("file open ok");
}

while (fxdata.available())
{
fxdata.readBytes((char*)leds, NUM_LEDS*3);
FastLED.show();
delay(50); // set the speed of the animation. 20 is appx ~ 500k bauds
}

// close the file in order to prevent hanging IO or similar throughout time
fxdata.close();
Но, если Вы хотите менять яркость в процессе вывода эффекта переменными
, нужно прерывать цикл while, я так думаю. .
Последний раз редактировалось aidar_i 03.06.2019{, 08:55}, всего редактировалось 1 раз.

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#11

Сообщение aidar_i » 03.06.2019{, 08:47}

Переменные внутри while почему то не работают, только обращения к пинам, например , analogRead(sensorPin). Так можно считывать значение яркости и с потенциометра менять.
Или типа digitalWrite(LedPin, HIGH).

Аватара пользователя
Cancertanly
Сержант
Сообщения: 134
Зарегистрирован: 06.04.2016{, 19:59}
Репутация: 12
Откуда: bish
Имя: Антон

Светодиодная лента

#12

Сообщение Cancertanly » 03.06.2019{, 10:47}

Rominem, опишите с какого цвета в какой должен происходить переход при каждом повороте энкодера.
какая ардуина у вас будет?
Может и поможем
FLProg_ru
https://t.me/flrog_ru ...................................................FPRrog_v4.2.4

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#13

Сообщение aidar_i » 03.06.2019{, 21:34}

rogerwaters, поработайте с этим кодом

Код: Выделить всё

#include <FastLED.h>
#include <SPI.h>
#include <SD.h>

#define NUM_LEDS 240 // кол-во LED
#define DATA_PIN 6    // выход на ленту
#define SpeedPort A0 // потенциометр скорости
#define BrPort A1 // потенциометр яркости
#define CHIPSET WS2812B  // тип LED chip
#define CMD_NEW_DATA 1

File fxdata;
CRGB leds[NUM_LEDS];
CRGB templeds[NUM_LEDS];


void setup()
{
  //  pinMode(PotPort, INPUT);
  FastLED.addLeds<CHIPSET, DATA_PIN, GRB>(leds, NUM_LEDS); //see doc for different LED strips

  for (int y = 0 ; y < NUM_LEDS ; y++)
  {
    leds[y] = CRGB::Black; // гасим все светодиоды
  }
  FastLED.show();

  pinMode(4, OUTPUT); // CS/SS pin as output for SD library to work.
  digitalWrite(4, HIGH); 
  pinMode(7, OUTPUT);//зелёный светодиод
  pinMode(8, OUTPUT); // красный светодиод
  digitalWrite(7, LOW); //зелёный светодиод
  digitalWrite(8, LOW); //красный светодиод

  if (!SD.begin(4))
  {
    digitalWrite(8, HIGH);//зажигаем красный светодиод при ошибке чтения CD
    return;
  }
  digitalWrite(8, LOW);// инициализация SD карты успешна.
}

void loop()
{       int SpeedData; // объявляем переменную со значением задержки для delay();
        int BrData; // объявляем переменную со значением задержки для яркости();
  fxdata = SD.open("1.out");
  if (fxdata) {
    digitalWrite(7, HIGH); // //зажигаем зелёный светодиод при успешном открытии файла
    }
      while (fxdata.available())
      {
        fxdata.readBytes((char*)leds, NUM_LEDS * 3);
        FastLED.show();
        SpeedData = 20 + (analogRead(SpeedPort) / 6);
        delay(SpeedData); // устанавливаем скорость анимации. 20 is appx ~ 500k bauds
        BrData = (analogRead(BrPort) / 5);
        BrData = constrain(BrData, 10, 254); // Эта функция контролирует, что бы переменная BrData не стала больше 254 и меньше 10.
        FastLED.setBrightness(BrData); // устанавливаем яркость матрицы
        // delay(90); // устанавливаем скорость анимации. 20 is appx ~ 500k bauds
      }

      // close the file in order to prevent hanging IO or similar throughout time
      fxdata.close();

      for (int y = 0 ; y < NUM_LEDS ; y++)
      {
        leds[y] = CRGB::Black; // гасим все светодиоды
      }
      FastLED.show();

      delay(100);
    }
Отправлено спустя 2 минуты 15 секунд:
Схема подключения
СпойлерПоказать
Arduino SD схема для скетча Alexsys Jinx SD Card1 фигурная матрица.jpg
Чтобы яркость менялся от блоков программы попробуйте создать выход ШИМ , подключите его к выходу блока, и этот выход соедините с А1.

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#14

Сообщение rogerwaters » 07.06.2019{, 16:50}

Ограничение трафика или бутылочное горло Arduino IDE.Программа Glеdiator работает с частотой 921600. Максимально возможная скорость с использованием библиотек Arduino IDE 115200. 921600:115200 =8, т.е. при считывании файла с карты 7/8 информации теряется. Это вы сами можете проверить сравнив яркость и скорость эффектов при прокручивании одинаковых файлов с карты и в Glеdiator.

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#15

Сообщение aidar_i » 07.06.2019{, 20:38}

Вы имеете ввиду скорость передачи между Ардуино и СД картой?
Испытайте esp8266 с SPIFFS.

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#16

Сообщение rogerwaters » 08.06.2019{, 00:29}

В предложеной Вами схеме от 05.06.2019 используется блок "отправка переменной в UART" с максимальной скоростью 115200.Та же бутылка.

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#17

Сообщение aidar_i » 08.06.2019{, 08:51}

Про какую схему Вы пишете?

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#18

Сообщение rogerwaters » 08.06.2019{, 13:45}

После проверки скетча Arduino IDE в секции void setup() находится следующая строка: Serial.begin(115200).Кроме того #include <SPI.h>. <SPI.h> в Arduino IDE работает на 115200.
Вложения
ws2812esp8266 Jinx_Glediator_SPIFFS.flp
От aidar_i
(78.66 КБ) 8 скачиваний
Последний раз редактировалось rogerwaters 09.06.2019{, 22:08}, всего редактировалось 1 раз.

aidar_i
Капитан
Сообщения: 919
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 84
Откуда: Уфа
Контактная информация:

Светодиодная лента

#19

Сообщение aidar_i » 09.06.2019{, 17:38}

Повторно не нужно выкладывать проект, достаточно ссылки.

rogerwaters
Рядовой
Сообщения: 10
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Светодиодная лента

#20

Сообщение rogerwaters » 09.06.2019{, 22:10}

А как ее делают?

Ответить

Вернуться в «Светодиоды»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость