Совмещение RTC и WS2812b
- Войдите на сайт для отправки комментариев
Пт, 05/07/2019 - 12:05
Ситуация такова. Подключаю часы RTC DS3231 Загружаю дату. Всё работает. Подключаю RGB WS2812b. Всё работает. Совмещаю. Перестаёт. Дошло до того, совметсил в одном поекте. Коментирую всё что относится к часам - диоды работают... Вместе нехотят. Куда рыть подскажите.
//#include <iarduino_RTC.h>
#include <FastLED.h>
//iarduino_RTC time(RTC_DS3231);
#define NUM_LEDS 60
#define PIN 1
#define colorOrder GRB
CRGB leds[NUM_LEDS];
long previousMillis = 0;
long interval = 1000;
int i = 0;
void setup() {
delay(100);
// Serial.begin(9600);
// time.begin();
// time.settime(0, 54, 9, 27, 06, 19, 4);
FastLED.addLeds<WS2812B, PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Serial.println(time.gettime("d-m-Y, H:i:s, D"));}
//int r=time.seconds;
for (int k = 0; k <= NUM_LEDS; k++)
{
leds[k] = CRGB(0, 0, 0);
}
leds[i] = CRGB(0, 0, 50);
i++;
delay(1000);
// Serial.println(r);
FastLED.show();
}
}
этот скетч даже без часов будет работать ровно минуту, потом зависнет
b707, почему? Я вижу странные подходы в нем, но отчего именно минуту и именно зависнет?
b707, почему? Я вижу странные подходы в нем, но отчего именно минуту и именно зависнет?
строчки 39-40
ну не обязательно прям черех минуту зависнет, но штатно он будет работать 60 сек, потом как повезет
Про минуту понял, но повисание негарантированно. Я тут на днях массив, начинающийся с nullptr инициализировал nullptr-ами - ничего не повисло. Только другие переменные странно себя вели ))
сорри, поправка :) - не минуту, а две :) Не учел делей в строке 41
Прикольно. Только вопрос не в этом. То что он зависнет не проблема... И в принципе меня сейчас это не особо волнует. Serial Begin(9600); не дружит с RGB лентой... в принципе не критично.. Но почему?..
Про минуту понял, но повисание негарантированно.
не, тут точно зависнет. i описано как int - значит его хватит перепахать всю память :)
Serial Begin(9600); не дружит с RGB лентой... в принципе не критично.. Но почему?..
ардуина какая?
UNO
Во-первых - не надо ленту садить на пины Uart. Во-вторых - delay не нужен.
Serial Begin(9600); не дружит с RGB лентой... в принципе не критично.. Но почему?..
Вы же ленту на пин последовательного порта повесили (1). Вот и не дружат - делят!
UNO
ну так что ж вы хотите - в Уно пины 0 и 1 заняты по Сериал, а вы на них ленту посадили. Переставте ленту на любой другой пин - и влиять не будет
Ясно. Спасибо.
А нефиг было RGB ленту сажать на пин, который Serial испольует. Уберите её с 1-го пина, глядишь, и задружит.