ARDUINO RGB контроллер. Обсуждение проекта

voly-alex

✩✩✩✩✩✩✩
23 Май 2021
8
1
Всем доброго времени суток! При попытке завести схему столкнулся с тем, что на ардуинке сгорает регулятор напряжения с таким симпатичным дымком и запахом жженого пластика. Сначала пробовал заводить от БП на 12 В, затем от 9 В - итого минус два регулятора. Сами контроллеры работают от usb и нормально прошиваются (тестил на blink). В чем может быть проблема?

Все контакты спаяны надежно - несколько раз прозвонил и проверил.
В качестве транзисторов взял IRF3205 в корпусе d2pak, они слегка не влезли как надо и пришлось немного поизвращаться (но впаяны надежно, нигде не коротят и не отваливаются).
Также на фото временно выпаяны кнопка и гнездо питания.

1.jpg

Вот тут прям отчетливо видно поплавленный регулятор:
3.jpg
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
2,899
862
@voly-alex, у вас ленты на какое напряжение? - похоже 5в. А откуда берете 5в на ленты?
 

bort707

★★★★★★✩
21 Сен 2020
2,899
862
Если у вас ленты на 12в, откуда же взялись 9в на ардуине?
А если ардуино питается отдельным БП - почему бы не взять БП на 5в и не питать ардуину напрямую?
 

voly-alex

✩✩✩✩✩✩✩
23 Май 2021
8
1
Если у вас ленты на 12в, откуда же взялись 9в на ардуине?
А если ардуино питается отдельным БП - почему бы не взять БП на 5в и не питать ардуину напрямую?
Сначала подключил питание на 12 В - регулятор сгорел. Попробовал подключить 9 В - регулятор тоже сгорел. По докам ардуино можно запитывать в Vin без последствий 7-12 В, поэтому отдельный БП под нее не нужен. Вариант с дополнительным БП на 5 В не подходит - слишком жирно для одной схемы получается.
 

bort707

★★★★★★✩
21 Сен 2020
2,899
862
@voly-alex, ардуину можно запитывать от 7-12в, только если к ее пину 5в ничего не подключено. Да и то 12в - это предел.
Смотрите свою схему, не запитали ли вы что-то через ардуину.
Если хотите питать ардуино от того же Бп, что и ленту - лучше поставить внешний регулятор напряжения 12в -> 5в и запитать ардуину от него, встроенный рег на плате слабенький.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,192
1,281
Москва
У меня на стенде сейчас крутятся 7 нан запитанных через вин 12 ю вольтами. Крутятся уже почти сутки. Не горят.
Какое напряжение на пинах вин и gnd если не подключать саму арудину, а тлько питание ?
 

voly-alex

✩✩✩✩✩✩✩
23 Май 2021
8
1
Избыточное цитирование
@voly-alex, ардуину можно запитывать от 7-12в, только если к ее пину 5в ничего не подключено. Да и то 12в - это предел.
Смотрите свою схему, не запитали ли вы что-то через ардуину.
Если хотите питать ардуино от того же Бп, что и ленту - лучше поставить внешний регулятор напряжения 12в -> 5в и запитать ардуину от него, встроенный рег на плате слабенький.
Да, по схеме через ардуину запитывается дисплей и IR датчик, однако это слабенькая нагрузка, должно тянуть.

У меня на стенде сейчас крутятся 7 нан запитанных через вин 12 ю вольтами. Крутятся уже почти сутки. Не горят.
Какое напряжение на пинах вин и gnd если не подключать саму арудину, а тлько питание ?
При подключении на вход БП на 9 В (9,4 точно), получаю те же 9В (9,4).
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,192
1,281
Москва
7-12 это рекомендованное напяжение на вин. предельное до 20, но не надо так делать.

@voly-alex, Нормально. Тогда остается прозвонить остальные пины. Один щуп на землю, другой на по очереди на остальные. А потом один щуп на ВИН и так же остальные. Может получиться узнать что палит регулятор. Но что то в схеме не то собрано, кмк.
 

voly-alex

✩✩✩✩✩✩✩
23 Май 2021
8
1
Избыточное цитирование
7-12 это рекомендованное напяжение на вин. предельное до 20, но не надо так делать.

@voly-alex, Нормально. Тогда остается прозвонить остальные пины. Один щуп на землю, другой на по очереди на остальные. А потом один щуп на ВИН и так же остальные. Может получиться узнать что палит регулятор. Но что то в схеме не то собрано, кмк.
А ларчик просто открывался, как говорится...
По итогу обнаружилось, что оба БП имеют минус в центре штекера (формат 5,5х2,5), а плюс с краю. Разъем же на плату припаивается таким образом, что плюс в центре, а с краю минус... Вот и ушло питание на землю, поплавив регулятор на ардуине, и, как в последствии выяснилось, также спалив дисплей. 🤦‍♂️
 

Android888

✩✩✩✩✩✩✩
25 Май 2021
1
0
Помогите советом, контроллер сломался, до этого работал отлично.
При включении дисплей не включается и моргает светодиод на задней стороне рядом с надписью с15.
Что это может быть и как починить?
 

Вложения

Артур С

✩✩✩✩✩✩✩
30 Июн 2021
4
0
Добрый день!

Помогите пожалуйста решить проблему: собрал схему на основе блютуз HC-06 и БП 12В 2A, при включении может мигнуть и больше ничего, а иногда при включении загорается непрерывно лента и больше ничего, к блютуз подключается, но при смене настроек в приложении ничего не происходит, так же при нажатии кнопки - ноль реакции. Пайку проверил, все прочно и ничего не замыкает, но если постучать пальцем по процессору ардуинки - лента начинает мигать и менять цвета. Собирал на мосфетах IRLR8726TRPBF 30В 85А. Я не отрицаю, что рукожоп, просто подскажите в чем может быть проблема. Может быть ошибка в прошивке? При компиляции выдает такой текст:

C:\ard\GyverRGB_v1.7\GyverRGB_v1.7.ino: In function 'void setup()':
C:\ard\GyverRGB_v1.7\GyverRGB_v1.7.ino:354:57: warning: invalid conversion from 'byte {aka unsigned char}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
for (byte i = 0; i < 10; i++) eeprom_write_byte(i, 0);
^
In file included from C:\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,
from C:\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:234,
from sketch\GyverRGB_v1.7.ino.cpp:1:
c:\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:166:6: note: initializing argument 1 of 'void eeprom_write_byte(uint8_t*, uint8_t)'
void eeprom_write_byte (uint8_t *__p, uint8_t __value);
^~~~~~~~~~~~~~~~~
C:\ard\GyverRGB_v1.7\GyverRGB_v1.7.ino:356:29: warning: invalid conversion from 'byte {aka unsigned char}' to 'uint16_t* {aka unsigned int*}' [-fpermissive]
eeprom_write_word(i, 0);
^
In file included from C:\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,
from C:\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:234,
from sketch\GyverRGB_v1.7.ino.cpp:1:
c:\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:171:6: note: initializing argument 1 of 'void eeprom_write_word(uint16_t*, uint16_t)'
void eeprom_write_word (uint16_t *__p, uint16_t __value);
^~~~~~~~~~~~~~~~~
C:\ard\GyverRGB_v1.7\GyverRGB_v1.7.ino:357:48: warning: invalid conversion from 'byte {aka unsigned char}' to 'uint16_t* {aka unsigned int*}' [-fpermissive]
if (i % 10 == 0) eeprom_write_word(i, 255);
^
In file included from C:\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,
from C:\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:234,
from sketch\GyverRGB_v1.7.ino.cpp:1:
c:\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:171:6: note: initializing argument 1 of 'void eeprom_write_word(uint16_t*, uint16_t)'
void eeprom_write_word (uint16_t *__p, uint16_t __value);
^~~~~~~~~~~~~~~~~
C:\ard\GyverRGB_v1.7\GyverRGB_v1.7.ino:359:37: warning: invalid conversion from 'int' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
eeprom_write_byte(PRESET_ADDR, 0);
^
In file included from C:\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,
from C:\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:234,
from sketch\GyverRGB_v1.7.ino.cpp:1:
c:\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:166:6: note: initializing argument 1 of 'void eeprom_write_byte(uint8_t*, uint8_t)'
void eeprom_write_byte (uint8_t *__p, uint8_t __value);
^~~~~~~~~~~~~~~~~
C:\ard\GyverRGB_v1.7\GyverRGB_v1.7.ino:360:29: warning: invalid conversion from 'int' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
eeprom_write_byte(201, 0);
^
In file included from C:\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,
from C:\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:234,
from sketch\GyverRGB_v1.7.ino.cpp:1:
c:\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:166:6: note: initializing argument 1 of 'void eeprom_write_byte(uint8_t*, uint8_t)'
void eeprom_write_byte (uint8_t *__p, uint8_t __value);
^~~~~~~~~~~~~~~~~
C:\ard\GyverRGB_v1.7\GyverRGB_v1.7.ino:361:31: warning: invalid conversion from 'int' to 'uint16_t* {aka unsigned int*}' [-fpermissive]
eeprom_write_word(202, 100);
^
In file included from C:\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,
from C:\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:234,
from sketch\GyverRGB_v1.7.ino.cpp:1:
c:\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:171:6: note: initializing argument 1 of 'void eeprom_write_word(uint16_t*, uint16_t)'
void eeprom_write_word (uint16_t *__p, uint16_t __value);
^~~~~~~~~~~~~~~~~
C:\Arduino\libraries\GyverRGB\utility\BTimerDefs.cpp:26:0: warning: "UINT16_MAX" redefined
#define UINT16_MAX 65535

In file included from c:\arduino\hardware\tools\avr\lib\gcc\avr\7.3.0\include\stdint.h:9:0,
from c:\arduino\hardware\tools\avr\avr\include\inttypes.h:37,
from c:\arduino\hardware\tools\avr\avr\include\avr\sfr_defs.h:126,
from c:\arduino\hardware\tools\avr\avr\include\avr\io.h:99,
from C:\Arduino\hardware\arduino\avr\cores\arduino/wiring_private.h:26,
from C:\Arduino\libraries\GyverRGB\utility\BTimerDefs.cpp:23:
c:\arduino\hardware\tools\avr\avr\include\stdint.h:346:0: note: this is the location of the previous definition
#define UINT16_MAX (__CONCAT(INT16_MAX, U) * 2U + 1U)

C:\Arduino\libraries\GyverRGB\utility\BTimerDefs.cpp:27:0: warning: "UINT8_MAX" redefined
#define UINT8_MAX 255

In file included from c:\arduino\hardware\tools\avr\lib\gcc\avr\7.3.0\include\stdint.h:9:0,
from c:\arduino\hardware\tools\avr\avr\include\inttypes.h:37,
from c:\arduino\hardware\tools\avr\avr\include\avr\sfr_defs.h:126,
from c:\arduino\hardware\tools\avr\avr\include\avr\io.h:99,
from C:\Arduino\hardware\arduino\avr\cores\arduino/wiring_private.h:26,
from C:\Arduino\libraries\GyverRGB\utility\BTimerDefs.cpp:23:
c:\arduino\hardware\tools\avr\avr\include\stdint.h:331:0: note: this is the location of the previous definition
#define UINT8_MAX (INT8_MAX * 2 + 1)
 
Изменено:

voly-alex

✩✩✩✩✩✩✩
23 Май 2021
8
1
@Артур С, какой мощности у вас светодиодная лента? Вт/м, имеется ввиду.
А сам скетч нормально загружается (т.е. вы видите в конце надпись "Загрузка завершена")?
 

voly-alex

✩✩✩✩✩✩✩
23 Май 2021
8
1
@Android888, возможно много вариантов. Диод с15 моргает на модуле Bluetooth в том случае, когда не установлено его соединение со внешними устройствами. Попробуйте подключить смартфон - диод должен перестать мигать и начать гореть ровным светом. По поводу дисплея и того, что он отказывается включаться - возможно, перегорел сам дисплей - у меня такое было. Проверьте при подключенном питании напряжения между пинами Vcc и GND дисплея - оно должно быть около 3,3-3,6 В. Также проверьте напряжение между пинами 5V и GND на самой ардуинке (должно быть 5 В).
Если все в норме, попробуйте сначала проверить дисплей при помощи I2C сканера. После загрузки прошивки в мониторе COM-порта должен быть адрес вашего дисплея (0х3С по умолчанию, но может быть другой).

I2C Scanner:
#include <Wire.h>

void setup() {
  Wire.begin();

  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}

void loop() {
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for (address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.print(address, HEX);
      Serial.println("  !");

      nDevices++;
    }
    else if (error == 4)
    {
      Serial.print("Unknown error at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.println(address, HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(5000);           // wait 5 seconds for next scan
}
Если сканер нашел дисплей, но тот все равно не включается, попробуйте загрузить тестовую прошивку для дисплея. Если не заведется - можно смело выпаивать и выбрасывать.
Код тестовой прошивки:

SSD1306 Test:
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4 // Пин сброса

/* Создаем объект дисплея SSD1306, подключенного к I2C (выводы SDA, SCL)*/
Adafruit_SSD1306 display(OLED_RESET);

void setup() {
  Serial.begin(9600);

  // SSD1306_SWITCHCAPVCC = генерировать внутреннее напряжение на дисплее от 3,3 В
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Инициализирует дисплей. Адрес 0x3C для 128x32
    Serial.println(F("SSD1306 ошибка инициализации"));
    for(;;); // вечный цикл — дальше ничего не делать
  }

 example_draw_text();    //выводим текст
}

void loop() {
}

void example_draw_text(void) {

     display.clearDisplay(); //очищаем дисплей

     display.setTextSize(1); //размер букв       
     display.setTextColor(WHITE); //цвет букв
     display.setCursor(0,0); //координаты текста         
     display.println("Privet"); //текст
     display.display(); //выводим на дисплей все, что было задано
}
 
  • Лойс +1
Реакции: AJIATbIPb

Артур С

✩✩✩✩✩✩✩
30 Июн 2021
4
0
@voly-alex,
Мощность ленты 28,8 вт/м. Лента 5050 120 светодиодов на метр, длина 2 м.
Загрузка скетча проходит без ошибок, в конце надпись "загрузка завершена".
 

bort707

★★★★★★✩
21 Сен 2020
2,899
862
@Артур С, судя по сообщениям компилятора, куча несовместимых типов в библиотеке ЕЕПРОМ. Скачайте библиотеку из комплекта проекта.
 

voly-alex

✩✩✩✩✩✩✩
23 Май 2021
8
1
@Артур С, тогда вам точно не хватает мощности БП. У вас 12 В на 2 А - это 24 Вт, а при мощности 28,8 Вт/м и длине 2 м только лента потребляет 57,6 Вт, а еще же электронику питать надо. Вам нужен БП примерно на 70-75 Вт (чтобы еще в запасе около 20% было), то есть БП на примерно 12 В и 6-6,25 А.

Если пишет "загрузка завершена", значит со скетчем все в порядке. Думаю, что дело в БП.
 

Артур С

✩✩✩✩✩✩✩
30 Июн 2021
4
0
@bort707,
Библиотеки взяты из проекта, других не скачивал

@voly-alex,
обрезал ленту - не помогло.

Теперь при загрузке скетча начал выдавать ошибку:

Произошла ошибка при загрузке скетча
avrdude: verification error, first mismatch at byte 0x0000
0x62 != 0x0c
avrdude: verification error; content mismatch

Ардуино выбрана верно, порт выбран верно. Это значит ардуино умерла?
 

Skrin23

✩✩✩✩✩✩✩
9 Июл 2021
1
0
Здравствуйте, помогите понять, что не так. Собрал проект на Nano с управлением через BT и пульт ик, и самодельный усилитель на Irf3205. По загрузке скетча все норм. Проблема такая, через приложение или пульт включаю систему, работает несколько секунд и гаснет, при повторном выкл - вкл тоже самое. Пробывал разные платы Nano и Uno везде одна и та же проблема. Скетч ставил 1.7.
 

Артур С

✩✩✩✩✩✩✩
30 Июн 2021
4
0
@Skrin23,
Такая же проблема, писал выше. Решение данное комьюнити не подсказали. Есть свои мысли, жду поступления товара из алика. Но возможно у тебя БП слабый.
 

difichento

✩✩✩✩✩✩✩
23 Авг 2021
1
0
Приветствую! Не могу понять в чем проблема хоть убейся. Собрал RGBW панель из этого видео. Включаю - ничего. Проверил адрес дисплея - все правильно (+ тестовый скетч, картинка есть, все работает хорошо). После этого обратно прошил - теперь постоянно горит зеленым, на энкодер не реагирует, на дисплее пусто. Провернул эту операцию еще раза 2, во второй раз загорелась белым и даже что-то на дисплее появилось, но на энкодер все еще не реагировало. На кнопку тоже не реагирует, в любом случае горит/не горит (кнопку проверил, с ней все ок). На данный момент ситуация как на последней картинке (плохо видно, но горит красным) (еще магическим образом после перезагрузки цвет может менятся с красного на зеленый и обратно) . Все контакты вроде бы в порядке.
Подскажите, пожалуйста, что следует еще раз проверить и на что обратить внимание.
Фотки прилагаются
UPD: Еще пробовал минус питания перекинуть на место где припаяна лента, чтобы ее проверить: все работало и при этом даже разок дисплей включился🤷‍♂️
 

Вложения

Изменено:

SosokUlitki

✩✩✩✩✩✩✩
15 Май 2021
11
2
@Skrin23,
Такая же проблема, писал выше. Решение данное комьюнити не подсказали. Есть свои мысли, жду поступления товара из алика. Но возможно у тебя БП слабый.
Дело не в БП. У меня такая же проблема, хотя БП точно тянет(брал с большим запасом)
 

SosokUlitki

✩✩✩✩✩✩✩
15 Май 2021
11
2
Здравствуйте. Собрал схему только с блютузом на макетке. Все, вроде, хорошо. Но вот такая проблема: лента загарается, потом через 1-2 секунды тухнет. Причем что за это время можно успеть поменять цвет и тд, поэтому сделал вывод, что блютуз модуль и ардунка все обрабатывает. Написал небольшой код, чтобы транзисторы проверить, с ними все окей, открыты столько времени, сколько надо. Кто-то может знает как решить эту роблему? Сил моих больше нет, никак решить не могу. Питание от блока, у которого 100% мощности хватает
 
  • Лойс +1
Реакции: Soldergut

Soldergut

✩✩✩✩✩✩✩
19 Сен 2021
2
0
При питании 12В дисплей показывает 4,5 и лента не светит, включается и тухнет. В чём может быть ошибка? Может какой то элемент не исправен? Напряжение какого участка отображается на дисплее?