- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 9 von 9

Thema: Arduino Uhr?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2010
    Alter
    25
    Beiträge
    114

    Arduino Uhr?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leute,
    ich habe ein Uhr-Skript für Arduino gebastelt.
    Das soll auf einem Display stehen.
    Leider hab ich noch kein Arduino und auch kein Display.
    Deswegen wollte ich die Arduino-Freaks auf diesem Board fragen, ob sie wissen ob das funktioniert. Arduino IDE hat keinen Fehler entdeckt.
    Vielleicht hat jemand von euch einen Arduino und auch ein Display.
    Den bitte ich, einmal zu schauen ob die Uhr auf dem Display steht.
    Gibt es in Arduino irgendein Makro was die aktuelle Zeit rausfindet, wie in AutoIt @hour, @min, @sec.

    Vielen Dank!
    Der Code:
    Code:
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(12,11,10,5,4,3,2);
    int stunden = 12;
    int minuten = 00;
    int sekunden = 00;
    int start = 1;
    
    void setup()
    {
      lcd.begin(16,2);
      lcd.clear();
    }
    
    void loop()
    {
      while (start==1)
      {
        if (sekunden == 00)
        {
          delay(1000);
          sekunden+01;
        }
        if (sekunden == 61)
        {
          sekunden = 00;
          minuten+01;
        }
        if (minuten == 61)
        {
          minuten = 00;
          stunden+01;
        }
        if (stunden == 24)
        {
          stunden = 00;
        }
        lcd.setCursor(0,0);
        lcd.print(stunden);
        lcd.setCursor(3,0);
        lcd.print(":");
        lcd.setCursor(4,0);
        lcd.print(minuten);
        lcd.setCursor(6,0);
        lcd.print(":");
        lcd.setCursor(7,0);
        lcd.print(sekunden);
      }
    }

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    delay seh ich da richtig nehm lieber einen timer das ist wesentlich genauer
    weil jedes if jede ausgaben auf dem display kostet zeit und damit wird die uhr immer nachgehen
    mit nem timer ist das egal der läuft im hintergrund und lässt sich davo nicht stören

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2010
    Alter
    25
    Beiträge
    114
    wie wäre dann der Befehl?
    timer(1000) oder was

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    http://www.arduino.cc/playground/Code/Time
    oder einfach gidf google ist dein freund zum arduino lässt sich da viel finden hier im forum eher etwas weniger

    zum timer an sich gibt es auch genug aber denk ich grad vlt etwas zu kompliziert für den anfang

    teste das programm sobald du einen arduino griffbereit hast

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2010
    Alter
    25
    Beiträge
    114
    Weiß Arduino denn die aktuelle Zeit, damut das LCD es anzeigen kann?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    klar musst du ihm die uhrzeit erstmal sagen woher soll er wissen wie spät es ist

    setTime(hr,min,sec,day,month,yr); // another way to set the time

    wenn der arduino aus ist ist auch die uhrzeit wieder gelöscht und ,uss beim neueinschalten wieder neu gesetzt werden

    die ganzen befehle stehen ja schon da aufgeslistet da die man braucht

    ich würd erstmal die sache mit dem display weglassen und mir das datum und uhrzeit seriell senden lassen um fehler seitens der dieplay beschaltung und ausgabe auszuschliesen

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2010
    Alter
    25
    Beiträge
    114
    Kann ich dann nicht doch meinen Skript nehmen und statt delay(); irgendein Befehl nehmen, der das ersetzt? Gibt es so einen?

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    ganz oben #include <Time.h>
    du musst die libary abeer runterladen und in den richtigen pfad speichern
    #define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by Unix time_t as ten ASCII digits
    #define TIME_HEADER 'T' // Header tag for serial time sync message
    #define TIME_REQUEST 7 // ASCII bell character requests a time sync message

    setTime(hr,min,sec,day,month,yr); setzt die uhrzeit die grad ist

    und dann im hauptprogramm
    lcd.print(hour());
    genauso minuten und sekunden und tage .....
    delay mag vlt gehen aber die uhr wird halt zielkich ungenau

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2010
    Alter
    25
    Beiträge
    114
    So?
    Code:
    #include <LiquidCrystal.h>
    #include <Time.h>
    #define TIME_MSG_LEN 11 
    #define TIME_HEADER 'T' 
    #define TIME_REQUEST 7 
    
    setTime(hr,min,sec,day,month,yr);
    
    void setup() {
       initiallcd();
       lcd.setCursor(0,0);
       setSyncProvider(RTC.get);
       if(timeStatus() != timeSet) {
          lcd.print("Fehler!"); 
       else
          lcd.print("Syncronisiert!");
       }
       lcd.setCursor(0,1);
    }
    
    void loop() {
      digitalClockDisplay();
    }
    
    void digitalClockDisplay() {
      initiallcd();
      lcd.print(hour());
      lcd.setCursor(3,1);
      lcd.print(":");
      lcd.setCursor(4,1);
      lcd.print(minute());
      lcd.setCursor(5,1);
      lcd.print(":");
      lcd.setCursor(6,1);
      lcd.print(second());
      //Und für das Datum:
      lcd.setCursor(8,1);
      lcd.print(day());
      lcd.setCursor(10,1);
      lcd.print(month());
      lcd.setCursor(12,1);
      lcd.print(year());
    }
    
    void initiallcd() {
      LiquidCrystal(12,11,10,5,4,3,2);
    }

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen