- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 12

Thema: NodeMCU 8662: CountDown erstellen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    so in dieser Art:

    Code:
    uint32_t starttime;
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);
      delay(3000);
      Serial.println("Serial started");
    
      starttime=millis();  // start countdown
    }
    
    
    void setBGColor(uint32_t myColor){ }  // eigene Funktion verwenden!
    
    
    void setcolor(uint32_t timesec) {
      uint32_t myColor2, myColor1, myColor0; // Color-Werte definieren!
      
      if(timesec>20) {
        setBGColor(myColor2); 
        Serial.println("myColor2");
      }
      else
      if(timesec<=5 && timesec>=0 ) {
        setBGColor(myColor0);
        Serial.println("myColor0");
      }
      else
      if(timesec<=20 && timesec>0) {
        setBGColor(myColor0);
        Serial.println("myColor1");
      }
    
    }
    
    uint32_t countdowntime=20; // sec countdown;
    
    void loop() {
      static int32_t passedsec, oldpassedsec=0, dtimesec=-1;
         
      passedsec= (millis()-starttime)/1000;
      
      if(oldpassedsec!=passedsec  && passedsec<=countdowntime) {
         dtimesec=countdowntime-passedsec;
         Serial.println(dtimesec);
         setcolor(dtimesec);
         oldpassedsec=passedsec;     
         if(dtimesec==0 && countdowntime==20) {
           countdowntime=120;     
           starttime=millis();
         }
      }
      
    
      // *SNIP*
      // do anything important
      // *SNIP*
      
      delay(1);  // yield
    
    }
    Geändert von HaWe (04.12.2018 um 15:15 Uhr)

  2. #2
    HaWe
    Gast
    hast du den Code mal getestet?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2018
    Beiträge
    14
    Hallo,
    Vielen Dank für eure Hilfe.
    Ich habe es nun zum laufen gebracht.
    Vielen Dank an HaWe.

    Jetzt ist es doch etwas grösser geworden.. Jaja.. mit dem essen steigt der Appetit.

    Viele grüße
    Michael

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    In Java gibt's das Object Timer() und TimerTask()
    Sowas wie timer() in anderen Sprachen gibt es auch auf den ATmegas. Dazu muss aber der Timer programmiert werden, ist der dann abgelaufen, kann er einen Interrupt auslösen, so dass man also damit eine Funktion verbinden kann. Soweit meine laienhafte Beschreibung, ich habe das in anderen Zusammenhängen nebenbei mal gesehen, dass das möglich ist.

    MfG

  5. #5
    HaWe
    Gast
    Zitat Zitat von Moppi Beitrag anzeigen
    Sowas wie timer() in anderen Sprachen gibt es auch auf den ATmegas. Dazu muss aber der Timer programmiert werden, ist der dann abgelaufen, kann er einen Interrupt auslösen, so dass man also damit eine Funktion verbinden kann. Soweit meine laienhafte Beschreibung, ich habe das in anderen Zusammenhängen nebenbei mal gesehen, dass das möglich ist.

    MfG
    ok, ATMegas...
    aber nur aus Interesse:
    wie funktioniert das auf den hier im Projekt verwendeten nodeMCUs mit den 2 oder 3 benötigten Sekunden-Timern?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Auch dort wird es Timer geben, die sich programmieren lassen, davon geh ich aus. Weil das nodeMCU komp. zu ATmega sein soll.

    Nachgeschaut: Benutzt werden kann der Timer#1, Auflösung in Microsekunden, der einen Interrupt auslösen kann.
    Allerdings weiß ich nicht, wie es beim 8662 ist.

    Für den 8266 kann man wohl die Ticker.h verwenden: https://github.com/esp8266/Arduino/t...braries/Ticker

    MfG
    Geändert von Moppi (13.12.2018 um 10:56 Uhr)

  7. #7
    HaWe
    Gast
    Zitat Zitat von Moppi Beitrag anzeigen
    Auch dort wird es Timer geben, die sich programmieren lassen, davon geh ich aus. Weil das nodeMCU komp. zu ATmega sein soll.

    Nachgeschaut: Benutzt werden kann der Timer#1, Auflösung in Microsekunden, der einen Interrupt auslösen kann.
    Allerdings weiß ich nicht, wie es beim 8662 ist.

    Für den 8266 kann man wohl die Ticker.h verwenden: https://github.com/esp8266/Arduino/t...braries/Ticker

    MfG
    ah, danke, also extra Ticker lib, kannte ich noch nicht!
    (nodeMCU ist ja gleich ESP8266, und sie sind nicht kompatibel zu AVRs!)

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2018
    Beiträge
    14
    Vielen Dank.
    Schau ich mir dann mal an.

    Viele Grüße
    Michael

Ähnliche Themen

  1. nodeMCU zu nodeMCU: keine Kommunikations-Verbindung mehr nach wenigen Minuten
    Von HaWe im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 0
    Letzter Beitrag: 02.10.2017, 14:01
  2. Platinenlayout Platine mit Countdown
    Von Matishi im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 5
    Letzter Beitrag: 10.09.2015, 19:28
  3. Countdown für Platinenbelichter =P~
    Von Inkoknito im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 10.12.2008, 08:02
  4. Countdown
    Von Theux im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 14
    Letzter Beitrag: 06.10.2008, 12:33
  5. Countdown unter Bascom
    Von Dj_Beat im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 24.11.2007, 11:48

Berechtigungen

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

12V Akku bauen