근접센서를 이용 하여 서보모터에 신호값을 보내고 싶습니다 신호값을 받은 서보모터는 코딩 명령어 수행을 시키고 싶은데 문의 드립니다 근접센서에 물체가 확인 되면 서보모터에 신호값이 들어가 정해준 각도를 회전 시켜주고 싶은데 어떻게 할까요 근접센서명령어
int Buzzer = 7; // 버저 핀을 7번에 연결
int Sensor = 9; // 센서핀은 9번에 연결
int val;
void setup () {
pinMode(Buzzer, OUTPUT); // 버저를 출력으로 설정
pinMode(Sensor, INPUT); // 센서값을 입력으로 설정
}
void loop () {
val = digitalRead(Sensor); // 센서값 읽어옴
if (val == HIGH) { // 장애물 감지가 안되면
noTone(7); // 버저가 울리지 않는다
delay(100);
} else { // 장애물이 감지되면
tone(7,220); // 버저가 울린다
delay(100);
}
}
이명령어를 통해 서보모터에 신호값을 주고
#include<Servo.h> //Servo 라이브러리를 추가
Servo servo; //Servo 클래스로 servo객체 생성
int value = 0; // 각도를 조절할 변수 value
void setup() {
servo.attach(7); //맴버함수인 attach : 핀 설정
Serial.begin(9600); //시리얼 모니터 사용 고고
}
void loop() {
if(Serial.available()) //시리얼 모니터에 데이터가 입력되면
{
char in_data; // 입력된 데이터를 담을 변수 in_data
in_data = Serial.read(); //시리얼모니터로 입력된 데이터 in_data로 저장
if(in_data == '1') //입력된 데이터가 1이라면
{
value += 30; //각도를 30도 증가시킨다.
if(value == 210) //각도가 210도가 되면 (180도보다 커지면)
value = 0; //각도를 0으로 초기화
}
else //그외의 데이터가 입력되면
value = 0; //각도를 0으로 초기화
servo.write(value); //value값의 각도로 회전. ex) value가 90이라면 90도 회전
}
}
이명령어로 각도 30도 증가 시키고 30도가 되면 다시 초기화 시키고 싶은데 문의드립니다
수정해야할 부분 문의 드립니다
회원에게만 댓글 작성 권한이 있습니다.