BASIC4MCU | 질문게시판 | 적외선,금속,조도,서보모터 질문
페이지 정보
작성자 하허히 작성일2022-05-08 19:55 조회133회 댓글2건본문
안녕하세요 아두이노 이제막 입문한 사람입니다...
적외선 센서와 금속감지센서로 서보모터 하나 제어하고
적외선 센서와 조도센서로 서보모터 하나 제어하는 코딩을 짜봤습니다
분리수거 용도로 사용하려구요
핀번호는 아직 선정하지 않았습니다..잘 연결했다고 가정하고 부탁드립니다!
질문게시판에 올라와있던 코딩 응용해봤는데 정상적인지 확인 부탁드립니다ㅜㅜㅜ
왕 초보라 많이 틀려도 이해 해주시면 감사하겠습니다...
----------------------------------------------------------------------------------------------------------------------------------------------
#include <Servo.h>//서보모터 헤더파일
Servo servo0;
Servo servo1;
int angle=0; //각도 저장변수
int sen=; //적외선 센서 핀
int sen2=; //금속 센서 핀
int sen3= ;//적외선 센서핀2
int cdsPin=0;//조도센서 핀
int servo0=; //조도Servo 핀 설정
int serbo1= ;//금속servo 핀 설정
int cdsvalue=0;
void setup(){
Serial.begin(9600);
servo0.attach();
servo1.attach();
pinMode(sen,INPUT); // 적외선 감지센서
pinMode(sen2,INPUT); // 금속감지센서
pinMode(sen3,INPUT); //적외선 감지센서2
pinMode(cdsPin,INPUT); //조도감지센서
}
//
void loop(){
if(digitalRead(sen)==LOW){ // 적외선
if(digitalRead(sen2)==LOW){servo1.write( 50);} // 금속
else {servo1.write(-50); // 비금속
}
delay(2000); while(digitalRead(sen));
}
else{ servo1.write(0); }
int cdsvalue=analogRead(cdsPin);
if(digitalRead(sen3)==LOW){// 적외선2
if(cdsvalue < (가릴때 측정값)){servo0.write(50);} //종이
else {servo0.write(-50); // 플라스틱
}
delay(2000); while(digitalRead(sen3));
}
else{ servo0.write(0); }
}
댓글 2
조회수 133master님의 댓글
master 작성일
#include <Servo.h>
Servo CDS_servo;
Servo Metal_servo;
//
int cdsPin=A0;
int IR1_sen=2,IR2_sen=3,Metal_sen=4;
int CDS_servo=5,Metal_servo=6;
//
int angle=0,cdsvalue=0;
//
void setup(){
pinMode(IR1_sen,INPUT_PULLUP);
pinMode(IR2_sen,INPUT_PULLUP);
pinMode(Metal_sen,INPUT_PULLUP);
CDS_servo.attach(); CDS_servo.write(90);
Metal_servo.attach(); Metal_servo.write(90);
Serial.begin(9600);
}
//
void loop(){
if(digitalRead(IR1_sen)==LOW){
delay(200);
if(digitalRead(Metal_sen)==LOW){ Metal_servo.write(140); } // 금속
else { Metal_servo.write( 40); } // 비금속
delay(500);
while(digitalRead(IR1_sen)==LOW);
Metal_servo.write(90);
delay(500);
}
//
if(digitalRead(IR2_sen)==LOW){
delay(200);
cdsvalue=analogRead(cdsPin);
if(cdsvalue<(가릴때 측정값)){ CDS_servo.write(140); } // 종이
else { CDS_servo.write( 40); } // 플라스틱
//
delay(500);
while(digitalRead(IR2_sen)==LOW);
CDS_servo.write(90);
delay(500);
}
}
물건을 가진 사람만이 동작 시 매끄럽지 않은 부분을 확인 할 수 있습니다.
동작시키면서 디버깅을 직접 하셔야 합니다.
하허히님의 댓글
하허히 작성일감사합니다