Dette er ganske vist et krydsindlæg fra LED-fade-funktionsfejl (tilfældig flash), men jeg kan ikke få svar på Arduino-forummet.
Jeg skød med nogle meget grundlæggende kode, og jeg bemærkede, at når man gentagne gange holder en LED ved 0 lysstyrke i 1 sekund og derefter falmede ind til fuld lysstyrke, ville en lille flash lejlighedsvis ske i begyndelsen af hver fade (tilsyneladende tilfældig).
int led = 11; int brightness = 0; void setup () {pinMode (led, OUTPUT);} ugyldig loop () {if (lysstyrke > = 256) // kontrollerer om lysstyrke har bestået 255, nulstilles til 0 {analogWrite (led, 255); lysstyrke = 0; } analogWrite (led, lysstyrke); hvis (lysstyrke == 0) {forsinkelse (1000); // LED slukket i 1 sekund} lysstyrke + = 1; // stigning af lysstyrkeforsinkelse (20);}
Så det, der har mig helt forvirret, er at jeg kan bruge et andet stykke kode (nedenfor), og blitzen forsvinder!
int i = 0; int led = 11; ugyldig opsætning () {pinMode (led, OUTPUT);} ugyldig loop () {analogWrite (led, i); forsinkelse (6); hvis (i% 256 == 0) {i = 0; forsinkelse (1000);} i ++;}
Har nogen nogen anelse om, hvorfor dette ville ske? Begge programmer har stort set den samme kode, bortset fra at jeg nulstilles til 0 i det første program, mens jeg i det andet fortsætter med at øge forbi 255, så analogWrite 'overløber'. Jeg tror, det må være et firmware-problem (eller måske et software?).
Der er en video på youtube om, at det sker her, Arduino - falmende LED-problem.