๋ฐ์ํ
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์ต๋๋ค.(I2C LCD)
#include<Servo.h> //Servo ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐ
LiquidCrystal_I2C lcd(0x27, 16, 2); //lcd(LCD์ I2C ์ฌ๋ ์ด๋ธ ์ฃผ์, lcd 1์ค๋น ์ถ๋ ฅํ ๊ธ์์, lcd ์ค์ ์)
Servo servo; //Servo ํด๋์ค๋ก servo๊ฐ์ฒด ์์ฑ
int value = 0; // ๊ฐ๋๋ฅผ ์กฐ์ ํ ๋ณ์ value
const int gasPin = A0;
int FAN = A1;
int laser = A2;
int sw1 = 10;
int sw2 = 11;
int r = 3;
int g = 5;
int b = 6;
void setup(){
pinMode (laser, OUTPUT); // define the digital output interface 13 feet
digitalWrite(laser, LOW);
pinMode(FAN, OUTPUT);
digitalWrite(FAN, LOW);
pinMode(9, OUTPUT);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
servo.attach(7); //๋งด๋ฒํจ์์ธ attach : ํ ์ค์
lcd.init(); // LCD_I2C ํต์ ์ ์์ํฉ๋๋ค.
lcd.backlight(); // LCD backlight๋ฅผ ON
}
void loop()
{
Serial.println(analogRead(gasPin));
delay(500);
if(digitalRead(sw1)== LOW){
setColor(255, 255, 255); // on
}
if(digitalRead(sw2)== LOW){
setColor(0, 0, 0); //off
}
lcd.clear(); //lcd ํ๋ฉด์ ์ง์๋๋ค.
lcd.home(); //lcd ์ปค์ ์์น๋ฅผ 0,1๋ก ์์น์ํต๋๋ค.
if(analogRead(gasPin) > 500){
digitalWrite(FAN, LOW);
digitalWrite (laser, LOW); // open the laser head
lcd.print("AIR : VERY BAD!!");
digitalWrite(9, LOW);
value = 45; //๊ฐ๋๋ฅผ 45๋ ์ฆ๊ฐ์ํจ๋ค.
servo.write(value); //value๊ฐ์ ๊ฐ๋๋ก ํ์
}else{
digitalWrite(FAN, HIGH);
digitalWrite (laser, HIGH); // turn off the laser head
lcd.print("AIR : NORMAL ");
digitalWrite(9, HIGH);
value = 0; //๊ฐ๋๋ฅผ 0์ผ๋ก ์ด๊ธฐํ
servo.write(value); //value๊ฐ์ ๊ฐ๋๋ก ํ์ .
delay (1000); // delay one second
}
}
void setColor(int red, int green, int blue)
{
analogWrite(r, red);
analogWrite(g, green);
analogWrite(b, blue);
}