Совмещение 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-го пина, глядишь, и задружит.