BASIC4MCU | 질문게시판 | 답변 2: 결선 문의
페이지 정보
작성자 master 작성일2018-06-10 09:43 조회8,297회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=1657
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-06-10 오전 9:32:53// by Ok-Hyun Park//int dust_sensor=A0; // 미세먼지int sensor_led=12; // 미세먼지 센서 안에 있는 적외선 ledint Rled=9,Gled=10,Bled=11; // 3색 LED//void setup(){Serial.begin(9600);pinMode(sensor_led,OUTPUT); // 미세먼지 적외선 ledpinMode(4,OUTPUT);pinMode(Rled,OUTPUT); pinMode(Gled,OUTPUT); pinMode(Bled,OUTPUT); // 3색 LED}//void loop(){digitalWrite(sensor_led,LOW); delayMicroseconds( 280); // LED 켜기 // 샘플링해주는 시간.float dust_value=analogRead(dust_sensor); delayMicroseconds( 40); // 센서 값 읽어오기digitalWrite(sensor_led,HIGH); delayMicroseconds(9680); // LED 끄고 대기float dustDensityug=(0.17*(dust_value*(5.0/1024))-0.1)*1000; // 미세먼지 값 계산 ug/m^3Serial.print("Dust Density[ug/m3]: "); Serial.print(dustDensityug); // 시리얼 모니터에 미세먼지 값 출력//if (dustDensityug<= 30.0){ analogWrite(Rled, 0); analogWrite(Gled, 0); analogWrite(Bled,255); Serial.println("blue "); } // 좋음, 파란색else if(dustDensityug<= 80.0){ analogWrite(Rled, 0); analogWrite(Gled,255); analogWrite(Bled, 0); Serial.println("green "); } // 보통, 녹색else if(dustDensityug<=150.0){ analogWrite(Rled,255); analogWrite(Gled,155); analogWrite(Bled, 0); Serial.println("yellow"); } // 나쁨, 노란색else { analogWrite(Rled,255); analogWrite(Gled, 0); analogWrite(Bled, 0); Serial.println("red "); } // 매우 나쁨, 빨간색//delay(2000);}http://m.eduino.kr/product/detail.html?product_no=433&cate_no=34&display_group=1
이 사이트의 예제를 제 코드스타일로 다시 정리 했습니다.
![]()
여기서 판매하는 제품은 아두이노 우노 호환보드인 것 같고
7번핀에 ~ PWM 표시가 없는데도 analogWrite() 함수를 사용하고 있습니다.
직접 구동해보지 않고 머리로만 만든 예제소스라는 것이죠
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-06-10 오전 9:46:14// by Ok-Hyun Park//int dust_sensor1=A0,dust_sensor2=A1; // 미세먼지 아나로그 출력int sensor_led1=12 ,sensor_led2=13; // 미세먼지 적외선 ledint R=9,G=10,B=11; // 3색 LED//void setup(){Serial.begin(9600);pinMode(sensor_led1,OUTPUT); // 미세먼지 적외선 ledpinMode(4,OUTPUT);pinMode(R,OUTPUT); pinMode(G,OUTPUT); pinMode(B,OUTPUT); // 3색 LED}//void loop(){float adc;digitalWrite(sensor_led1,LOW); delayMicroseconds( 280); // LED 켜기 // 샘플링해주는 시간.adc=analogRead(dust_sensor1); delayMicroseconds( 40); // 센서 값 읽어오기digitalWrite(sensor_led1,HIGH); delayMicroseconds(9680); // LED 끄고 대기float dustug1=(0.17*(adc*(5.0/1023.0))-0.1)*1000.0; // 미세먼지 값 계산 ug/m^3Serial.print("Dust1 Density[ug/m3]: "); Serial.print(dustug1); // 시리얼 모니터에 미세먼지 값 출력//digitalWrite(sensor_led2,LOW); delayMicroseconds( 280); // LED 켜기 // 샘플링해주는 시간.adc=analogRead(dust_sensor2); delayMicroseconds( 40); // 센서 값 읽어오기digitalWrite(sensor_led2,HIGH); delayMicroseconds(9680); // LED 끄고 대기float dustug2=(0.17*(adc*(5.0/1023.0))-0.1)*1000.0; // 미세먼지 값 계산 ug/m^3Serial.print("Dust2 Density[ug/m3]: "); Serial.print(dustug2); // 시리얼 모니터에 미세먼지 값 출력//if (dustug1<= 30.0){ analogWrite(R, 0); analogWrite(G, 0); analogWrite(B,255); Serial.println("blue "); } // 좋음, 파란색else if(dustug1<= 80.0){ analogWrite(R, 0); analogWrite(G,255); analogWrite(B, 0); Serial.println("green "); } // 보통, 녹색else if(dustug1<=150.0){ analogWrite(R,255); analogWrite(G,155); analogWrite(B, 0); Serial.println("yellow"); } // 나쁨, 노란색else { analogWrite(R,255); analogWrite(G, 0); analogWrite(B, 0); Serial.println("red "); } // 매우 나쁨, 빨간색//delay(2000);}
아래 연결 잘 확인하세요
int dust_sensor1=A0,dust_sensor2=A1; // 미세먼지 아나로그 출력int sensor_led1=12 ,sensor_led2=13; // 미세먼지 적외선 ledint R=9,G=10,B=11; // 3색 LED
댓글 0
조회수 8,297등록된 댓글이 없습니다.