int ledPin1 = 10;
int ledPin2 = 11;
int ledPin3 = 12;
int buzzer = 9;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args) write(args);
#else
#define printByte(args) print(args,BYTE);
#endif
uint8_t an[8]= {0x04,0x1F,0x15,0x08,0x1F,0x0A,0x04,0x0A};//安
uint8_t quan[8]= {0x04,0x0A,0x11,0x0E,0x04,0x0E,0x04,0x0E};//全
uint8_t wei[8]= {0x0E,0x0A,0x1F,0x10,0x17,0x15,0x14,0x17};//危
uint8_t xan[8]= {0x00,0x1C,0x15,0x16,0x11,0x10,0x10,0x13};//险
uint8_t nong[8]= {0x08,0x14,0x02,0x1D,0x0A,0x14,0x08,0x1F};//浓
uint8_t wu[8]= {0x00,0x10,0x1F,0x11,0x15,0x0B,0x15,0x09};//度
uint8_t jin[8]= {0x00,0x1F,0x0A,0x1F,0x0A,0x1A,0x02,0x00};//过
uint8_t ru[8]= {0x04,0x1F,0x08,0x12,0x1F,0x02,0x1F,0x02};//高
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
lcd.init(); // initialize the lcd
lcd.backlight(); //Open the backlight
lcd.createChar(0, an);
lcd.createChar(1, quan);
lcd.createChar(2, wei);
lcd.createChar(3, xan);
lcd.createChar(4, nong);
lcd.createChar(5, wu);
lcd.createChar(6,jin );
lcd.createChar(7, ru);
}
void loop() {
// put your main code here, to run repeatedly:
int a;float v;float ppm;
a=analogRead(A2);
v=5.0*a/1023.0;
ppm=v*50;
if (ppm<130)//安全
{
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ppm= ");
lcd.print(ppm);
lcd.setCursor(6,1);//定义光标位置
lcd.write(byte(0));
lcd.setCursor(8,1);//定义光标位置
lcd.write(byte(1));
lcd.print("! ");
delay(1000);
}
else if (ppm>=130&&ppm<=400)//昏迷,危险
{
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ppm= ");
lcd.print(ppm);
lcd.setCursor(6,1);//定义光标位置
lcd.write(byte(2));
lcd.write(byte(3));
lcd.write(byte(4));
lcd.print("! ");
delay(1000);
}
else//weixian
{
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
analogWrite(9,255);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ppm= ");
lcd.print(ppm);
lcd.setCursor(5,1);//定义光标位置
lcd.write(byte(5));
lcd.write(byte(6));
lcd.write(byte(7));
lcd.print(" ! ");
delay(1000);
}
}