Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| www-fuer-alle:co2-ampel [2020/11/21 21:25] – [Programmcode] biebl | www-fuer-alle:co2-ampel [2021/12/04 16:16] (aktuell) – [CO2-Ampel] biebl | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| * [[www-fuer-alle: | * [[www-fuer-alle: | ||
| * Fragen und Anregungen: [[ARDUINO@GymSAS.de]] | * Fragen und Anregungen: [[ARDUINO@GymSAS.de]] | ||
| + | * [[https:// | ||
| + | * [[info: | ||
| ===== Varianten ===== | ===== Varianten ===== | ||
| Zeile 12: | Zeile 14: | ||
| * LEDs, BUZZER, OLED-Anzeige und SD-Speicher (und UHR) | * LEDs, BUZZER, OLED-Anzeige und SD-Speicher (und UHR) | ||
| * LEDs, BUZZER, OLED-Anzeige und WLAN-Anbindung an einen Raspi mit Datenbank und Apache | * LEDs, BUZZER, OLED-Anzeige und WLAN-Anbindung an einen Raspi mit Datenbank und Apache | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| ===== fertige Ampel - LED mit Buzzer und OLED-Anzeige (ohne UHR und SD-Karte)===== | ===== fertige Ampel - LED mit Buzzer und OLED-Anzeige (ohne UHR und SD-Karte)===== | ||
| - | {{: | + | {{: |
| * Nano 5 € | * Nano 5 € | ||
| Zeile 33: | Zeile 38: | ||
| * HD über einen Taster oder ein Steckkabel an Masse zur Kalibrierung | * HD über einen Taster oder ein Steckkabel an Masse zur Kalibrierung | ||
| + | |||
| + | ===== Messbeispiel ===== | ||
| + | |||
| + | |||
| + | {{: | ||
| ===== Breadboardvariante ===== | ===== Breadboardvariante ===== | ||
| Zeile 62: | Zeile 72: | ||
| File Messdaten; | File Messdaten; | ||
| - | int z = 0; | + | int z = 0; // globale Zaehlvariable für die SD-Kartennutzung in der loop |
| / | / | ||
| | | ||
| Zeile 113: | Zeile 124: | ||
| oled.println(" | oled.println(" | ||
| oled.println(" | oled.println(" | ||
| + | tone(summer, | ||
| + | // delay(20); | ||
| + | noTone; | ||
| + | |||
| / | / | ||
| Zeile 122: | Zeile 137: | ||
| | | ||
| | | ||
| - | tone(summer, | + | noTone; |
| - | | + | |
| | | ||
| | | ||
| Zeile 171: | Zeile 185: | ||
| | | ||
| Serial.write(Messdaten.read()); | Serial.write(Messdaten.read()); | ||
| + | digitalWrite(blau, | ||
| + | digitalWrite(blau, | ||
| + | | ||
| } | } | ||
| | | ||
| Zeile 178: | Zeile 195: | ||
| Serial.println(" | Serial.println(" | ||
| } | } | ||
| + | digitalWrite(blau, | ||
| / | / | ||
| Zeile 186: | Zeile 204: | ||
| } // ENDE Setup | } // ENDE Setup | ||
| + | |||
| + | / | ||
| + | * | ||
| + | * LOOP | ||
| + | * | ||
| + | ***********************************************************************************************************************/ | ||
| void loop() { | void loop() { | ||
| z = z+1; | z = z+1; | ||
| ppm_pwm = readCO2PWM(); | ppm_pwm = readCO2PWM(); | ||
| - | if (z > 4) { // erst die 5. Messung wird gesichert | + | if (z > 4) { // erst die 5. Messung wird gesichert, dann ca. pro Minute eine |
| messWertSchreibenSD(); | messWertSchreibenSD(); | ||
| z = 0; // Zaehler zurueck setzen | z = 0; // Zaehler zurueck setzen | ||
| } | } | ||
| oledAnzeige(); | oledAnzeige(); | ||
| - | delay(schreibPause); | + | delay(schreibPause); |
| } | } | ||
| + | |||
| + | / | ||
| + | * | ||
| + | * LOOP ENDE | ||
| + | * | ||
| + | ************************************************************************************************************************/ | ||
| + | |||
| + | / | ||
| + | * * | ||
| + | * Funktionen und Prozeduren | ||
| + | * * | ||
| + | *********************************/ | ||
| / | / | ||
| Zeile 276: | Zeile 312: | ||
| oled.println(now.minute(), | oled.println(now.minute(), | ||
| ledRot(); | ledRot(); | ||
| - | | + | ledGruen(); |
| if (ppm_pwm > mittlereQualitaet) { ledGelb(); } | if (ppm_pwm > mittlereQualitaet) { ledGelb(); } | ||
| if (ppm_pwm > schlechteLuft) | if (ppm_pwm > schlechteLuft) | ||
| Zeile 295: | Zeile 331: | ||
| | | ||
| | | ||
| + | | ||
| + | | ||
| | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| | | ||
| } | } | ||