Zeit am Arduino lcd Display wird falsch ausgegeben (Komische Zeichen)?

Hallo zusammen

Ich möchte die Zeit also millis() auf dem LCD Dsiplay ausgeben. Dazu habe ich der Variable times millis() zugewiesen. Dann rechen ich times / 100 und speichere dies in der Variable Time ab. Nun rechne ich weiter. Ich rechne die Sekunde, Minuten und Stunden aus. Für die Sekunde und Minute habe ich 10er und 1er Stellen gemacht. Bei Stunden 100er, 10er und 1er Stellen.

Anschliessend möchte ich die Zeit auf dem LCD Display ausgeben. Dazu speichere ich jede Stelle einzeln im Array timeOfEntry ab, da die Zeit ja sonst auf dem Display abgeschnitten wird. Auf dem Display erhalte ich aber komische Ausgaben. Die Doppelpunkte werden korrekt angezeigt. Die Zahlen aber leider nicht.

Der Code:

times = millis();
Time = times / 1000;
seconds = Time % 60;
sectomin = Time / 60;
minutes = sectomin % 60;
hours = sectomin / 60;
seconds1 = seconds % 10;
seconds10 = seconds / 10;
minutes1 = minutes % 10;
minutes10 = minutes / 10;
hours1 = hours % 10;
hours = hours / 10;
hours10 = hours % 10;
hours100 = hours / 10;

logEntry[logEntryCounter].timeOfEntry[0] = hours100;
logEntry[logEntryCounter].timeOfEntry[1] = hours10;
logEntry[logEntryCounter].timeOfEntry[2] = hours1;
logEntry[logEntryCounter].timeOfEntry[3] = doublepoint;
logEntry[logEntryCounter].timeOfEntry[4] = minutes10;
logEntry[logEntryCounter].timeOfEntry[5] = minutes1;
logEntry[logEntryCounter].timeOfEntry[6] = doublepoint;
logEntry[logEntryCounter].timeOfEntry[7] = seconds10;
logEntry[logEntryCounter].timeOfEntry[8] = seconds1;

Ausgabe:

Wie man auf dem Bild sieht, sind die ersten beiden Zeichen anders als die Restlichen. Da schon 10 Sekunden vorbei waren, sollte dort auch z.B 12 Sek. stehen. Es wird aber irgendwie falsch angezeigt. Die Doppelpunkte stimmen. Die anderen Zeichen denke ich sind für die leeren Stellen im Array.

Habt ihr eine Idee, was ich falsch mache?

Vielen Dank im Voraus.

Bild zum Beitrag
Computer, Technik, Technologie, C (Programmiersprache), Arduino Uno, Spiele und Gaming
Arduino: millis() als delay() in If-Klause benutzen?

Hi! Ich suche schon lange nach einer Lösung wie ich millis() als delay() benutzen kann. Ich habe einen Bodenfeuchtesensor und ein Relais, das an eine Pumpe angeschlossen wird. Ich möchte, dass das Relais für 10 Sekunden angeht, wenn der Bodenfeuchtesensor einen Wert über 600 ausspuckt. Bisher lautet die If-Klause so:

(siehe unten)

Möchte das aber gerne mit millis() machen. Habe schon viel studiert und probiert, aber keine Lösung gefunden. Nachgelesen habe ich auch. Das Prinzip von millis habe ich verstanden, nur nicht, wie das in einem If-Satz funktioniert.

Vielen Dank für Eure Hilfe!

#include "DHT.h"
#define DHTPIN 12
#define DHTTYPE DHT22

//VENT DELAY//
long schedule_freq = 3200000L;
long schedule_duration = 300000L;


long schedule_timestamp = 0L;
long schedule_timestamp_off = 0L;


bool schedule = false;
//VENT DELAY//


//PUMP//

//PUMP//


const int heatPin = 7;
const int ventPin = 4;
const int pumpPin = 12;


int moist_value = analogRead(A0);

DHT dht(DHTPIN, DHTTYPE);




void setup() {
  dht.begin();
  pinMode(heatPin, OUTPUT);
  pinMode(ventPin, OUTPUT);
}


void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();


  if (t <= 16.0) {
      digitalWrite(heatPin, HIGH);
  }


  if (t >= 25.0) {
    digitalWrite(heatPin, LOW);
  }


  if(moist_value >= 600) {
    digitalWrite(pumpPin, HIGH);
    delay(10000);)
    digialWrite(pumpPin, LOW;
    
    }
    
      if (schedule_timestamp < millis()) {
      schedule_timestamp = millis() + schedule_freq;
        schedule_timestamp_off = millis() + schedule_duration;
        schedule = true;
        //Vent On
        digitalWrite(ventPin, HIGH);
      }
    
    
      if (schedule_timestamp_off < millis() && schedule ) {
      schedule = false;
      //Vent Off
      digitalWrite(ventPin, LOW);
    
    
      }
    
    
    }
Computer, Technik, programmieren, Arduino, Technologie, C (Programmiersprache), If clauses, Arduino Uno, Arduino IDE

Meistgelesene Beiträge zum Thema Arduino Uno