BASIC4MCU | 질문게시판 | 답변 : 질문드립니다.
페이지 정보
작성자 master 작성일2018-09-28 14:32 조회6,303회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=5351
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-28 오후 2:33:14// by Ok-Hyun Park//1.적외선 거리센서: 30cm,20cm 등 측정 거리 값 정확히 측정하는지 시리얼모니터 방법2.측정 값에 따라 LED 바 표시 상태 바꾸는 테스트3.LED바는 2칸씩 움직이게 할려고합니다.수정 도움 부탁드립니다..//#include <Servo.h>Servo SV;//int trig=8,echo=9;int Sensor=A0;int led[10]={2,3,4,5,6,7,11,12,13,A1};//int data,mV,Cm=0,level;//void setup(){pinMode(trig,OUTPUT); pinMode(echo,INPUT);for(int i=0;i<10;i++)pinMode(led[i],OUTPUT);SV.attach(10);Serial.begin(9600);}//void loop(){digitalWrite(trig,1); delayMicroseconds(10); digitalWrite(trig,0);long duration=pulseIn(echo,HIGH);long distance=(340*duration)/2/10000;Serial.print("distance:"); Serial.println(distance);//if(distance<=10){ SV.write(100); delay(1000); }else { SV.write(10); }//---------------------------------------data=analogRead(Sensor); Serial.print("Sensor:"); Serial.println(data);mV=map(data,0,1023,0,5000); Serial.print("mV:"); Serial.println(mV); // mV 단위로 변경Cm=(21.61/(mV-169.6))*1000; Serial.print("Cm:"); Serial.println(Cm); // cm 변환//if(Cm>30)Cm=30; if(Cm<10)Cm=10; // max,min 처리level=map(Cm,10,30,11,0); // level 0~11로 변경(10cm거리면 레벨11)Serial.print("level:"); Serial.println(level); // levelfor(int i=0;i<10;i++){if(level>i)digitalWrite(led[i],1);else digitalWrite(led[i],0);}//delay(100);}시리얼모니터 출력을 추가했습니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-28 오후 2:36:35// by Ok-Hyun Park//1.적외선 거리센서: 30cm,20cm 등 측정 거리 값 정확히 측정하는지 시리얼모니터 방법2.측정 값에 따라 LED 바 표시 상태 바꾸는 테스트3.LED바는 2칸씩 움직이게 할려고합니다.수정 도움 부탁드립니다..//#include <Servo.h>Servo SV;//int trig=8,echo=9;int Sensor=A0;int led[10]={2,3,4,5,6,7,11,12,13,A1};//int data,mV,Cm=0,level;//void setup(){pinMode(trig,OUTPUT); pinMode(echo,INPUT);for(int i=0;i<10;i++)pinMode(led[i],OUTPUT);SV.attach(10);Serial.begin(9600);}//void loop(){digitalWrite(trig,1); delayMicroseconds(10); digitalWrite(trig,0);long duration=pulseIn(echo,HIGH);long distance=(340*duration)/2/10000;Serial.print("distance:"); Serial.println(distance);//if(distance<=10){ SV.write(100); delay(1000); }else { SV.write(10); }//---------------------------------------data=analogRead(Sensor); Serial.print("Sensor:"); Serial.println(data);mV=map(data,0,1023,0,5000); Serial.print("mV:"); Serial.println(mV); // mV 단위로 변경Cm=(21.61/(mV-169.6))*1000; Serial.print("Cm:"); Serial.println(Cm); // cm 변환//if(Cm>30)Cm=30; if(Cm<10)Cm=10; // max,min 처리level=map(Cm,10,30,5,0); // level 0~5로 변경(10cm거리면 레벨5)level*=2; // level 0~5 -> 0~10로 변경Serial.print("level:"); Serial.println(level); // level 출력for(int i=0;i<10;i++){if(level>i)digitalWrite(led[i],1);else digitalWrite(led[i],0);}//delay(100);}
이 소스로 돌려보세요
댓글 0
조회수 6,303등록된 댓글이 없습니다.