BASIC4MCU | 질문게시판 | 답변 : 급합니다..ㅠㅠ 서둘러 주시면 감사하겠습니다.
페이지 정보
작성자 master 작성일2019-05-29 22:02 조회5,056회 댓글1건본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-29 오후 10:09:42// by Ok-Hyun Park//int dust_sensor=A0; // 미세먼지int sensor_led=12; // 미세먼지 센서 안에 있는 적외선 ledint rgb_R=9,rgb_G=11,rgb_B=10;//int sampling=280,waiting=40;float dust_value=0,dustDensityug=0,stop_time=9680;//void setup(){Serial.begin(9600);pinMode(sensor_led,OUTPUT);pinMode(4,OUTPUT);pinMode(rgb_R,OUTPUT); pinMode(rgb_G,OUTPUT); pinMode(rgb_B,OUTPUT);}//void loop(){digitalWrite(sensor_led,LOW); delayMicroseconds(sampling);dust_value=analogRead(dust_sensor); delayMicroseconds(waiting);digitalWrite(sensor_led,HIGH); delayMicroseconds(stop_time);dustDensityug=(0.17*(dust_value*(5.0/1024))-0.1)*1000;Serial.print("Dust Density[ug/m3]: "); Serial.print(dustDensityug);//if(dustDensityug<=30.0){ // 좋을때analogWrite(rgb_R,0); analogWrite(rgb_G,0); analogWrite(rgb_B,255); Serial.println(" blue");}else if(dustDensityug<=80.0){ // 보통analogWrite(rgb_R,0); analogWrite(rgb_G,255); analogWrite(rgb_B,0); Serial.println(" green");}else if(dustDensityug<=150.0){ // 나쁨analogWrite(rgb_R,255); analogWrite(rgb_G,155); analogWrite(rgb_B,0); Serial.println(" yellow");}else{ // 매우 나쁨analogWrite(rgb_R,255); analogWrite(rgb_G,0); analogWrite(rgb_B,0); Serial.println(" red");}//delay(2000);}
댓글 1
조회수 5,056agada님의 댓글
agada 작성일
앗 죄송합니다...ㅜㅜ 오류가 떴나 보네요
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C의 라이브러리를 불러옵니다.(I2C LCD)
LiquidCrystal_I2C lcd(0x27, 16, 2); // lcd(LCD의 I2C 슬레이브 주소, lcd 1줄당 출력할 글자수, lcd 줄의 수)
int Vo = A0;
int V_LED = 2;
float Vo_value = 0;
float Voltage = 0;
float dustDensity = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(V_LED, OUTPUT);
pinMode(Vo, INPUT);
lcd.init(); // LCD_I2C 통신을 시작합니다.
lcd.backlight(); // LCD backlight를 ON
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(V_LED, LOW);
delayMicroseconds(280);
Vo_value = analogRead(Vo);
delayMicroseconds(40);
digitalWrite(V_LED, HIGH);
delayMicroseconds(9680);
Voltage = Vo_value / 1024 * 5.0;
dustDensity = (Voltage - 0.3) / 0.005;
Serial.println(dustDensity);
////////////////////////////////////////////////
lcd.clear(); //lcd 화면을 지웁니다.
lcd.home(); //lcd 커서 위치를 0,1로 위치시킵니다.
if( dustDensity > 150 ){ // 매우 나쁨 //
lcd.print("AIR : VERY BAD!!");
}else if( dustDensity > 80){ // 나쁨 //
lcd.print("AIR : BAD! ");
}else if( dustDensity > 30){ // 보통 //
lcd.print("AIR : NORMAL ");
}else{ // 좋음
lcd.print("AIR : GOOD ");
}
lcd.setCursor(0, 1); // lcd 커서의 위치를 4,0으로 설정합니다.
lcd.print("ug/m3:"); // 현재 lcd 커서 위치로부터 "Good Day" 내용을 출력합니다.
lcd.print(dustDensity);
delay(1000);
}
*이게 LCD입니다