Staubsensor-lcd.ino: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „<pre> #include <SoftwareSerial.h> #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); SoftwareSerial mySerial1(11,12); // RX, TX, Connect dust se…“) |
(kein Unterschied)
|
Aktuelle Version vom 15. März 2018, 21:56 Uhr
#include <SoftwareSerial.h> #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); SoftwareSerial mySerial1(11,12); // RX, TX, Connect dust sensor to these pins long pmcf10=0; long pmcf25=0; long pmcf100=0; long pmat10=0; long pmat25=0; long pmat100=0; int counter=0; char buf[50]; void setup() { // put your setup code here, to run once: Serial.begin(9600); mySerial1.begin(9600); lcd.begin(16, 2); lcd.print("1.0 2.5 10.0"); } void loop() { // put your main code here, to run repeatedly: int count = 0; unsigned char c; unsigned char high; while (mySerial1.available()) { c = mySerial1.read(); if((count==0 && c!=0x42) || (count==1 && c!=0x4d)){ Serial.println("check failed"); break; } if(count > 15){ Serial.println("complete"); break; } else if(count == 4 || count == 6 || count == 8 || count == 10 || count == 12 || count == 14) high = c; else if(count == 5){ pmcf10 = 256*high + c; } else if(count == 7){ pmcf25 = 256*high + c; } else if(count == 9){ pmcf100 = 256*high + c; } else if(count == 11){ pmat10 = 256*high + c; } else if(count == 13){ pmat25 = 256*high + c; } else if(count == 15){ pmat100 = 256*high + c; } count++; } while(mySerial1.available()) mySerial1.read(); Serial.println(); lcd.setCursor(0, 1); if(pmcf10 < 1000) lcd.print("0"); if(pmcf10 < 100) lcd.print("0"); if(pmcf10 < 10) lcd.print("0"); lcd.print(pmcf10); lcd.print("-"); lcd.setCursor(5, 1); if(pmcf25 < 10000) lcd.print("0"); if(pmcf25 < 1000) lcd.print("0"); if(pmcf25 < 100) lcd.print("0"); if(pmcf25 < 10) lcd.print("0"); lcd.print(pmcf25); lcd.print("-"); lcd.setCursor(11, 1); if(pmcf100 < 10000) lcd.print("0"); if(pmcf100 < 1000) lcd.print("0"); if(pmcf100 < 100) lcd.print("0"); if(pmcf100 < 10) lcd.print("0"); lcd.print(pmcf100); if(counter==0){ lcd.setCursor(10, 0); lcd.print("-"); lcd.setCursor(4, 0); lcd.print("-"); counter=1; }else{ lcd.setCursor(10, 0); lcd.print("|"); lcd.setCursor(4, 0); lcd.print("|"); counter=0; } Serial.print("CF=1, PM1.0="); Serial.print(pmcf10); Serial.println(" ug/m3"); Serial.print("CF=1, PM2.5="); Serial.print(pmcf25); Serial.println(" ug/m3"); Serial.print("CF=1, PM10="); Serial.print(pmcf100); Serial.println(" ug/m3"); Serial.print("atmosphere, PM1.0="); Serial.print(pmat10); Serial.println(" ug/m3"); Serial.print("atmosphere, PM2.5="); Serial.print(pmat25); Serial.println(" ug/m3"); Serial.print("atmosphere, PM10="); Serial.print(pmat100); Serial.println(" ug/m3"); delay(1000); }