Безумное выделение тепла с ESP8266
У меня есть ESP8266 на мини-плате Wemos D1. Простая анимация "Радуга с FastLED". Ничего особенного, но плата нагревается так, что я не могу до нее дотронуться, а батарея емкостью 2500 мАч разряжается менее чем за час.
Есть идеи, что я делаю неправильно? Тем более, что сопоставимая реализация микропитона просто не так сильно нагревается, а та же батарея держит около 5 часов...
Вот код
#define FASTLED_ALLOW_INTERRUPTS 0
#include "FastLED.h"
#include <EEPROM.h>
// Сколько светодиодов в вашей полосе?
#define NUM_LEDS 60
#define DATA_PIN 13
#define CLOCK_PIN 14
#define COLOR_ORDER RGB
int starthue = 0;
int incrementer = 255/NUM_LEDS;
CRGB leds[NUM_LEDS*2];
int address = 0;
int max_modes = 4;
int colormode;
void setup() {
Serial.begin(9600);
// поместите сюда код установки для однократного запуска:
FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS*2);
EEPROM.begin(512);
colormode = EEPROM.read(address);
Serial.println(colormode);
int new_mode = (colormode == max_modes) ? 1 : ++colormode;
Serial.println(new_mode);
new_mode = (colormode == 0) ? 1: new_mode;
Serial.println(new_mode);
EEPROM.write(address, new_mode);
EEPROM.commit();
EEPROM.end();
}
void rainbow_mid(int howfast) {
while (true) {
fill_rainbow(leds, NUM_LEDS, starthue, incrementer);
for (int i =0; i< NUM_LEDS; i++) {
leds[NUM_LEDS-i-1] = leds[i];
leds[NUM_LEDS*2-i-1] = leds[i];
}
FastLED.show();
delay(howfast);
starthue++;
}
}
void rainbow(int howfast) {
while (true) {
fill_rainbow(leds, NUM_LEDS, starthue, incrementer);
// добавить блестки (80);
for (int i =0; i< NUM_LEDS; i++) {
//светодиоды[NUM_LEDS-i-1] = светодиоды[i];
leds[NUM_LEDS*2-i-1] = leds[i];
}
FastLED.show();
delay(howfast);
starthue++;
}
}
void loop() {
switch(colormode) {
case 1: rainbow_mid(10); break;
case 2: rainbow_mid(50); break;
case 3: rainbow(10); break;
case 4: rainbow(50); break;
}
}
@Julian Finn, 👍0
Обсуждение1 ответ
тепло поступает от линий питания платы.
Дело не в самом чипе, а если так нагреется, то чип надо уничтожать. кажется, вы подключили 60 светодиодов к плате и обеспечиваете ее питание от линии питания платы. поэтому линии нагреваются, и плата тоже нагревается. так что тепло не от чипа. это от дорожек питания на печатной плате.
используйте другой источник питания для светодиодной ленты.
- Как читать и записывать EEPROM в ESP8266
- WS2812 — сначала белые, а затем ближе к концу становятся красными/желтыми/оранжевыми.
- Spiffs против Eeprom на esp8266
- В ESP8266 EEPROM сохраненные данные отличаются, когда я пытаюсь их прочитать
- Скетч мигания ESP8266 не мигает светодиодом
- Значение неинициализированной EEPROM в ESP8266
- Wemos D1 EEProm put/get не получает правильное значение
- Разбор HTML-запроса GET с параметрами с помощью WiFiEsp
Одна и та же плата, одинаковые соединения в обоих случаях?, @JRobert
Проблема не в вашем коде, а в соединениях. 60 светодиодов RGB потребляют около 20 мА*3*60 = 3,6 А (все светодиоды полностью белые). Отображение радуги будет потреблять меньше тока, но, как написал Тирдад в своем ответе, это все равно будет слишком много для встроенного регулятора. Как ты все подключил? Как ты подключил аккумулятор?, @chrisl