-         

Ergebnis 1 bis 2 von 2

Thema: Sketch Problem

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    35

    Sketch Problem

    Anzeige

    Hallo,

    ich sehe den Wald vor lauter Bäumen nicht fürchte ich. Ich habe mit meinem Arduino ein Temperaturmesser nachgebaut und versuche zwei CodeTeile zusammenzufügen. Ich möchte, dass meine LED (hot, normal, cold) durchgehend eingeschaltet ist, die Temperatur soll aber nur alle 30 Sekunden auf den seriellen Monitor ausgegeben werden.

    Anbei mein Sketch:

    Code:
    #define HOT 6
    #define NORMAL 4
    #define COLD 2
    
    float voltage = 0;
    float celsius = 0;
    float hotTemp = 26;
    float coldTemp = 20;
    float sensor = 0;
    
    void setup() {
    
    pinMode(HOT, OUTPUT);
    pinMode(NORMAL, OUTPUT);
    pinMode(COLD, OUTPUT);
    Serial.begin(9600);
    
    }
    
    void tempmessung()
    
    {
    sensor = analogRead(0);
    voltage = (sensor*5000)/1024;
    voltage = voltage - 500;
    celsius = voltage/10;
    
    
    if (celsius<coldTemp) { digitalWrite(COLD, HIGH); delay(1000); digitalWrite(COLD, LOW); }
    else if (celsius > coldTemp &&celsius <= hotTemp) { digitalWrite(NORMAL, HIGH); delay(1000); digitalWrite(NORMAL, LOW); }
    else { digitalWrite(HOT, HIGH); delay(1000); digitalWrite(HOT, LOW); }
    } void moni() {
    Serial.println(celsius, 2); delay(30000);
    } void loop() {
    tempmessung(); moni();
    }
    Der Sketch wurde zusammengefasst aus dem Buch Arduino Workshops. Ich erstellte eine Funktion tempmessung, diese soll durchgehend die Temperatur messen und eine der LEDs, je nach Temperatur, leuchten lassen. Die zweite Funktion moni soll eigentlich die Temperatur alle 30 Sekunden auf dem seriellen Monitor ausgeben, aber leider macht das Programm beides nur alle 30 Sekunden.

    Ich denke, es müsste mit einer While-Schleife gehen. Aber ich komme partout nicht auf die Lösung.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.444
    hallo,
    ich würde 2 Funktionen definieren, die (sofort) genau das machen, wonach sie klingen
    Code:
    void Messung();
    void Ausgabe();
    und dann loop() so strukturieren:
    Code:
    
    void loop() {
      static uint32_t mtimer=0;    // Stoppuhr-Timervariable
    
      Messung();
    
      if(millis-mtimer>=30*1000) {  // Stoppuhr ablesen: schon 30 sec?
        Ausgabe();
        mtimer=millis();     // Stoppuhr resetten
      }
      
      delay(100);  // gönn' der cpu ein wenig Ruhe...
    
    }
    Jetzt musst du nur noch die templates mit Inhalten füllen.

    HTH!
    Geändert von HaWe (19.07.2015 um 14:32 Uhr)
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 02.12.2014, 10:13
  2. Arduino Sketch serielles Terminal: erkennen von CR
    Von Ford Prefect im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 18.06.2014, 15:58
  3. Error beim übertragen eines Sketch
    Von 7353 im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 04.06.2013, 22:40
  4. frage zu sketch arduino und webserver
    Von der_tom im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 11.03.2012, 19:07
  5. Scheiß auf CAD: Google Sketch up! schaut mal mein Bot
    Von -C3P0- im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 42
    Letzter Beitrag: 26.08.2007, 18:08

Berechtigungen

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