INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zähler zählt nicht
18.01.2021, 21:51
Beitrag #1
Zähler zählt nicht
Hallo,
ich weiß ja nicht, ob auch jemand sich ein "einfaches" algorithmisches Problem anschauen mag, ich versuche es mal.
Ich lese mit dem Arduino eine Gasuhr aus. Die hat ein normales Zählwerk (kein Reed-Kontakt) bei dem in der letzten Stelle in der Ziffer "6" ein kleiner Spiegel ist. Ich habe einen optischen Sensor TCRT5000 darauf gerichtet, der jeweils schaltet, wenn der Spiegel "vorbei kommt".
Das Ergebnis wird auf SD-Karte geschrieben. Im Prinzip funktioniert es. Seltsamerweise wird aber manchmal OBWOHL der Sensor ausgelöst wird und die Zeit in die Datei geschrieben wird, der Zählerstand NICHT erhöht. WIESO???
Der relevante loop:
Code:
void Tasterabfrage() {
   if (!digitalRead(StopPin)) {
         error ("Programmende!");  
      };
};

void loop() {
  boolean sensorValue = digitalRead(LichtPin);
  Serial.println (sensorValue);
  lcd.setCursor(0,1); //Text soll beim ersten Zeichen in der ersten Reihe beginnen..
  lcd.print(Zaehlerstand); //In der ersten Zeile soll der Text „Test Zeile 1“ angezeigt werden  
  if (sensorValue == LOW) {
    while (sensorValue == LOW) {
      sensorValue = digitalRead(LichtPin);
      delay(100);
      }
    Zaehlerstand = Zaehlerstand + 0.01;
    DateTime jetzt = RTC.now();
    dataFile = SD.open(Dateiname, FILE_WRITE); //*.csv-Datei Öffnen oder anlegen 8.3 Dateinamen
    dataFile.print(jetzt.day(), DEC);
    dataFile.print(".");
    dataFile.print(jetzt.month(), DEC);
    dataFile.print(".");
    dataFile.print(jetzt.year(), DEC);
    dataFile.print(";");
    dataFile.print(jetzt.hour(), DEC);
    dataFile.print(":");
    dataFile.print(jetzt.minute(), DEC);
    dataFile.print(":");
    dataFile.print(jetzt.second(), DEC);
    dataFile.print(";");
    dataFile.print(Zaehlerstand);
    dataFile.print("\n");
    dataFile.close(); // Die Datei wird vorrübergehend geschlossen.
    Serial.print ("Zählerstand: ");
    Serial.println (Zaehlerstand,2);
    lcd.setCursor(0,1); //Text soll beim ersten Zeichen in der ersten Reihe beginnen..
    lcd.print(Zaehlerstand,2); //In der ersten Zeile soll der Text „Test Zeile 1“ angezeigt werden  
    delay(500);
    };
  Tasterabfrage();
  delay(500);
}
Der Zähler dreht sich in den hier interessierenden Zeit weitgehend mit konstanter Geschwindigkeit, die letzte Stelle mit etwa 2Minuten/Umdrehung.
Gruss, wonk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2021, 21:54
Beitrag #2
RE: Zähler zählt nicht
Und was genau möchtest du hiermit erreichen ?
Code:
if (sensorValue == LOW) {
    while (sensorValue == LOW) {
      sensorValue = digitalRead(LichtPin);
      delay(100);
      }

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2021, 21:59
Beitrag #3
RE: Zähler zählt nicht
Hallo,
wenn die Spiegel kommt, wird der sensorvalue low und bleibt es ein paar Sekunden, bis der Spiegel vorbei ist.
Gruß, wonk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2021, 22:07
Beitrag #4
RE: Zähler zählt nicht
Dann gib der Suchmaschine Deiner Wahl mal "Flankenerkennung" ein. In den Beispielen der IDE ist auch eins dazu dabei.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2021, 22:11
Beitrag #5
RE: Zähler zählt nicht
Und wozu liest du den Sensor darin nochmals aus ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2021, 22:13
Beitrag #6
RE: Zähler zählt nicht
(18.01.2021 22:07)Tommy56 schrieb:  Dann gib der Suchmaschine Deiner Wahl mal "Flankenerkennung" ein. In den Beispielen der IDE ist auch eins dazu dabei.

Gruß Tommy
Hallo,
es mag ja sein, dass die Flankenerkennung so einfach unsicher ist. Aber wenn Du mal in den loop schaust, kann ich nicht erkennen, wieso das den beschriebenen Fehler erklären kann.
Wenn ein erneuter Zeiteintrag in die Datei geschrieben wird, sollte doch auch der Zählerstand erhöht werden.
Gruß, wonk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2021, 22:18
Beitrag #7
RE: Zähler zählt nicht
Was hat das mit meiner Frage/meinem Hinweis zu tun?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2021, 22:23
Beitrag #8
RE: Zähler zählt nicht
(18.01.2021 22:18)Tommy56 schrieb:  Was hat das mit meiner Frage/meinem Hinweis zu tun?

Gruß Tommy
Ich habe angenommen, dass Dein Hinweis mir helfen würden, den beschriebenen Fehler zu klären!
Gruß, wonk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Nano. Sketch kann nicht hochgeladen werden 4heiner 4 246 02.04.2021 17:21
Letzter Beitrag: 4heiner
  Programm startet bei Neustart nicht Moritzzz 18 560 02.04.2021 14:06
Letzter Beitrag: Tommy56
  Arduino Ampelschaltung Taster funktioniert nicht fatihakan36 9 655 13.03.2021 22:06
Letzter Beitrag: N1d45
  Library Ethernet: Nicht zu compilieren GuaAck 5 426 22.02.2021 17:31
Letzter Beitrag: Tommy56
  von delay auf millis umgestellt, klappt nur nicht. Servo Geschwindigkeit einstellen. gutschy 8 667 21.02.2021 15:22
Letzter Beitrag: gutschy
  Zähler mit Taster und Serial Monitor LK2567 16 1.117 16.02.2021 22:37
Letzter Beitrag: Bitklopfer
  MMega2560-Clone läßt sich nicht programmieren kpc 8 586 08.02.2021 09:50
Letzter Beitrag: hotsystems
  If-Schleife wird nicht mehr durchlaufen LK2567 2 376 05.02.2021 21:20
Letzter Beitrag: LK2567
  Tasterabfrage funktioniert nicht Moehn 4 514 05.02.2021 15:23
Letzter Beitrag: Moehn
  Kompiler beschwert sich nicht, LC-Display macht aber nicht, was es soll. generic_user492 3 402 26.01.2021 14:11
Letzter Beitrag: MicroBahner

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste