hallo,
ich programmiere zur zeit einen Ausgabeautomaten der ab einer bestimmten Geldmenge Süßigkeiten ausgeben soll. das Geld wird mit Lichtschranken (LED und Fotowiderstand) registriert. ich möchte meine Fotowiderstände nur 5 mal pro Sekunde auslesen. ich habe leider keine Idee wie das klappen soll.
Vielen Dank schon mal für eure Hilfe!
LG und einen schönen Tag
MaditaSvenja:
hallo,
ich programmiere zur zeit einen Ausgabeautomaten der ab einer bestimmten Geldmenge Süßigkeiten ausgeben soll. das Geld wird mit Lichtschranken (LED und Fotowiderstand) registriert. ich möchte meine Fotowiderstände nur 5 mal pro Sekunde auslesen. ich habe leider keine Idee wie das klappen soll.
Du willst nur dann einen Geldeingang registrieren, wenn mindestens [edit]5 Sekunden 200ms[/edit] seit dem letzten Geldeingang vergangen sind um dann nach xxx Geldeingang Futter auszugeben?
Lege Sperrzeit fest
Merke Dir millis() bei Geldeingang
Wenn millis() - millis()beiGeldeingang > Sperrzeit gebe Geldeingang wieder frei
[edit]
Serenifly war schneller....
Hallo,
na ja wenn du Ihn nur 5 mal pro s auslesen willst musst Du jeweis für 200ms den Eingang nicht einlesen. dan kann man mit millis() gut machen. Schau Dir millis() an und suche nach dem Nchtwächter.
Heinz
unsigned long altzeit // vor dem Setup
..
.
if(millis()-altzeit >=200){ // im loop
altzeit = millis(); // Zeit merken
wert= analogRead(pin);
}
Nachtrag Fehler beseitigt ( mein Gott es wird Zeit )
Hi
static bool ausgelesen=false;
if (millis()%200<100){
if (!ausgelesen){
//Sensor auslesen
ausgelesen=true;
}
}else{
ausgelesen=false;
}
MfG
@rentner
Erste Zeile:
long unsigned altzeit;

postmaster-ino:
Erste Zeile:
long unsigned altzeit;

Erste Zeile:
unsigned long altzeit;

postmaster-ino:
if (millis()%200<100){
if (!ausgelesen){
//Sensor auslesen
ausgelesen=true;
}
Ich hätte auf eine Zeile gekürzt.
if ((millis()%200<100) && (!ausgelesen))
spricht was dagegen?
spricht was dagegen?
Ja!
4,294,967,295 ist kein Vielfaches von 200.
Damit gibts einen "Jitter" beim Überlauf.
INTERVAL(1_sec/5)
{
// hier auslesen.
}
combie:
Ja!
4,294,967,295 ist kein Vielfaches von 200.
Damit gibts einen "Jitter" beim Überlauf.
combie hat da vollkommen Recht.
Der TO kann aber selbst entscheiden ob eine falsche (zu kurze) Zeit alle ca 49,5 Tage ein Problem ist oder nicht.
Grüße Uwe