Arduino Uno R3, kokoajan palava L-ledi

Tänään pääsin vihdoin aloittelemaan tuon Arduinon kanssa mutta kun sille uppaa koodia, ohjelma sanoo että koodi on upattu ja pitäisi olla oikei.

Esim kun tein perus blinkin led harjoituksen, pelkästää L valo paloi eikä ledi vilkkunut, mikä mättää?

E: Nyt tuo lopetti ranttuilun mutta onko normaalia että tuo “L” ledi on päällä koko ajan? Vaikkei mitään koodia sisällä olekkaa, niin se on päällä koko ajan.

Onhan sulla siellä se edellinen koodi koko ajan sisällä, se ei katoa mihinkään… Vai pystyykö arduinon tyhjentämään jotenkin? Jos, miten?

riippuu tosta sun blinkistä, kuinka tiheään se välkkyy? kuinka pitkää odotusta (delay) käytät sammuttamisen ja uudelleen sytyttämsien välillä? Mikäli tuo väli on hyvin pieni, näyttää se sitlä, ettei led sammuisi lainkaan…

tuo delay arvo annetaan muuten milli sekunteina… eli arvo 1000 = 1sec.

#include <EEPROM.h>

void setup()
{
// write a 0 to all 512 bytes of the EEPROM
for (int i = 0; i < 512; i++)
EEPROM.write(i, 0);

// turn the LED on when we’re done
digitalWrite(13, HIGH);
}

void loop()
{
}

Eikös tuolla koodin pätkällä sen muistin voi nollata?

EEPROM-muisti on eri asia kuin Flash-muisti, jossa ohjelmakoodi säilytetään. Eli tuo EEPROM on tarkoitettu ohjelmien käyttöön tallennustilaksi, esimerkiksi asetuksille tms. Flash-musitin voi tyhjentää ainakin avrduden avulla chip erase komennolla.

Ja EEPROMia ei kannata missään tapauksessa ruveta nollailemaan moisilla, se on kuluvaa Flash-tyyppistä muistia, eli kuluu jokaisessa kirjoituksessa.

(nimim. tänään tajusin yhdestä ohjelmistosta, että kirjoitin sinne ilman tämän asian ajattelemista ja muistikorttihan olisi ollut hajalla alta vuorokaudessa…)

//E: Eli siis kaikki ROM-tyyppinen muisti kuluu sinne kirjoittaessa, lukeminen ei haittaa. RAM ei kulu, sitä voi käyttää “huolettomasti”.