SD voorbeeldprogramma:'Datalogging'
hoi iedereen,
ik heb weer enige tijd stil gezeten en dat te merken! nu wou ik de draad weer opnemen door wat voorbeeldjes te bekijken (de voorbeeldjes hebben natuurlijk betrekking tot mijn project). maar ik begrijp er niet zoveel van..
mijn vragen bij de volgende code zijn: die 'while (1)' functie heb'k gegoogeld en zou een oneindige "delay" zijn? zouden ze dan niet beter een "return" gebruiken? of word die 'oneindige delay' onderbroken nadat de voorwaarde binnen de haakjes niet meer voldaan is?
ook heb ik een vraag bij wanneer ze 3verschillende sensors gaan inlezen en wegschrijven..
ik begrijp het zo:
dus ze zeggen dat "analogpin" een integer die op 0 begint en stijgt zolang hij onder 3 blijft. en zolang hij onder 2 blijft schrijft hij een komma ertussen?
hierna zeggen ze dat "sensor" ook een integer waarin "analogpin" wordt weggeschreven? (ik zie niet waarom ze dit zouden doen, want dan doe je toch niks met de waarde van je sensor? dan schrijf je toch gewoon "0,1,2 ..." in je file?)
en die "datastring += string(sensor)" wilt zeggen dat die string(sensor) gewoon bij datastring bij schrijft
ik heb ze al gegoogeld maar als ik 'datastring' google dan komt ik enkel 'string' of 'string...' en een hoop dingen achter die string, uit.
alle hulp dus welkom!
ik heb weer enige tijd stil gezeten en dat te merken! nu wou ik de draad weer opnemen door wat voorbeeldjes te bekijken (de voorbeeldjes hebben natuurlijk betrekking tot mijn project). maar ik begrijp er niet zoveel van..
mijn vragen bij de volgende code zijn: die 'while (1)' functie heb'k gegoogeld en zou een oneindige "delay" zijn? zouden ze dan niet beter een "return" gebruiken? of word die 'oneindige delay' onderbroken nadat de voorwaarde binnen de haakjes niet meer voldaan is?
ook heb ik een vraag bij wanneer ze 3verschillende sensors gaan inlezen en wegschrijven..
ik begrijp het zo:
dus ze zeggen dat "analogpin" een integer die op 0 begint en stijgt zolang hij onder 3 blijft. en zolang hij onder 2 blijft schrijft hij een komma ertussen?
hierna zeggen ze dat "sensor" ook een integer waarin "analogpin" wordt weggeschreven? (ik zie niet waarom ze dit zouden doen, want dan doe je toch niks met de waarde van je sensor? dan schrijf je toch gewoon "0,1,2 ..." in je file?)
en die "datastring += string(sensor)" wilt zeggen dat die string(sensor) gewoon bij datastring bij schrijft
ik heb ze al gegoogeld maar als ik 'datastring' google dan komt ik enkel 'string' of 'string...' en een hoop dingen achter die string, uit.
alle hulp dus welkom!
code: [select]
// see if card present , can initialized:
if (!sd.begin(chipselect)) {
serial.println("card failed, or not present");
// don't more:
while (1) ;
}
serial.println("card initialized.");
// open file we're going log to!
datafile = sd.open("datalog.txt", file_write);
if (! datafile) {
serial.println("error opening datalog.txt");
// wait forever since cant write data
while (1) ;
}
}
void loop()
{
// make string assembling data log:
string datastring = "";
// read 3 sensors , append string:
(int analogpin = 0; analogpin < 3; analogpin++) {
int sensor = analogread(analogpin);
datastring += string(sensor);
if (analogpin < 2) {
datastring += ",";
}
}
hoi.
while (1) een oneindige lus die nauwelijks doorbroken kan worden.
je zegt daar namelijk:
zolang de 1 een 1 is, doe het volgende:
er word dus niets gedaan na de bovenstaande dubbele punt.
omdat er niets gedaan word, kan deze lus ook niet doorbroken worden.
en het duurt heeeeel lang voordat een 1 iets anders word dan een 1.
je mist een belangrijk punt in het lezen van de rest van de code.
analogpin een integer die van nul tot 3 telt (de 3 telt dus niet mee).
het een hulpmiddel.
je gebruikt het om 3 analoge waardes uit te lezen op 3 pinnen.
deze waardes worden van elkaar gescheiden door een komma (je maakt een csv bestand).
meer dan dat word er hier niet gedaan.
ik vermoed dat verderop deze string naar de sd kaart word geschreven.
ik zie niet dat er meer dan 3 waardes in het bestandje terecht komen, maar dat krijg je als er maar een klein stukje code bekend is.
while (1) een oneindige lus die nauwelijks doorbroken kan worden.
je zegt daar namelijk:
zolang de 1 een 1 is, doe het volgende:
er word dus niets gedaan na de bovenstaande dubbele punt.
omdat er niets gedaan word, kan deze lus ook niet doorbroken worden.
en het duurt heeeeel lang voordat een 1 iets anders word dan een 1.
je mist een belangrijk punt in het lezen van de rest van de code.
analogpin een integer die van nul tot 3 telt (de 3 telt dus niet mee).
het een hulpmiddel.
je gebruikt het om 3 analoge waardes uit te lezen op 3 pinnen.
deze waardes worden van elkaar gescheiden door een komma (je maakt een csv bestand).
meer dan dat word er hier niet gedaan.
ik vermoed dat verderop deze string naar de sd kaart word geschreven.
ik zie niet dat er meer dan 3 waardes in het bestandje terecht komen, maar dat krijg je als er maar een klein stukje code bekend is.
Arduino Forum > International > Nederlands (Moderators: Jantje, JO3RI) > SD voorbeeldprogramma:'Datalogging'
arduino
Comments
Post a Comment