BASIC4MCU | 질문게시판 | 조도 센서로 서보모터 및 led제어하기 관련해 질문드립니다.
페이지 정보
작성자 tmxhathej 작성일2020-06-22 17:39 조회6,426회 댓글0건본문
안녕하세요
몇일 전부터 아두이노를 배우고 있는 학생입니다.
제가 계획중인 프로젝트에서 아두이노를 이용해 작품의 움직임을 조절할 계획입니다.
조도 센서를 통해 들어오는 값으로 led의 단계적 점등과 서보모터의 각도를 조절하려 합니다.
코딩 작성 중 서보모터 관련한 부분이 미숙해서 잘 모르고 제가 한 코딩대로면 조도 센서 값에 따라서
led가 들어와야하는데 하나가 들어오지 않습니다.
그래서 그것과 관련해 질문을 드립니다.
1. 조도센서 값이 450이하가 되어도 LEDb의 불이 들어오지 않습니다. 시리얼 모니터에 값은 잘 나옵니다.
2. LED가 꺼져있을땐 0도, LEDa가 들어올때 서보모터 각도가 90도로, LEDb가 들어올때 180도로 만들고 싶고
서보모터가 움직이는 정도는 각도가 1도씩 딜레이는 50정도로 움직이게하고 싶습니다.
Servo servo;
int cds = A0; //조도센서
int LEDa = 8; //LED 연결
int LEDb = 7; //LED 연결
int motor = 13;//서보모터 연결
//
int angle=0;
//
void setup() {
Serial.begin(9600);
pinMode(cds,INPUT);
pinMode(LEDa,OUTPUT);
servo.attach(motor); //모터시작
}
void loop() {
int val = analogRead(cds); // 조도센서 값 = val
Serial.print("cds_sensor: ");
Serial.println(val);
if(val<800){ //값이 800미만이면 LED 불이 켜집니다.
digitalWrite(LEDa,HIGH);
Serial.println("LEDa ON");
}
else{
digitalWrite(LEDa,LOW);
Serial.println("LEDa OFF");
}
delay(1000);
if(val<450){ //값이 450미만이면 LED 불이 켜집니다.
digitalWrite(LEDb,HIGH);
Serial.println("LEDb ON");
}
else{
digitalWrite(LEDb,LOW);
Serial.println("LEDb OFF");
}
delay(1000);
}
여기까지는 작성했고, 서보모터 관련부분은 아직 미숙해서 작성하지 못했습니다.
도움주시면 감사하겠습니다.
댓글 0
조회수 6,426등록된 댓글이 없습니다.