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: | ||
| | ||
| | ||
+ | | ||
+ | | ||
| | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
| | ||
} | } |