BASIC4MCU | 질문게시판 | 컨베이어 벨트와 센서 연동 코딩
페이지 정보
작성자 dpwl 작성일2022-11-23 15:03 조회816회 댓글0건본문
조건에 따라 두개의 코딩을 합치고 싶어요!
배우는 과정 중에 코딩을 합치는 게 쉽지가 않네요.
도와주시면 감사하겠습니다.
1.컨베이어 벨트 구동
2.레이저센서에 물체 감지되어 조도값이 600이하가 되면 컨베이어벨트 멈춤
3.서보모터 90도로 회전 후 5초유지
4.서브모터 0도로 회전 후 컨베이어 벨트 다시 구동
if(레이저 센서 구동 조건)
{
컨베이어 벨트 멈춤 코드
서보모터 작동 코드
}
else
{
컨베이어벨트 동작 코드
서보모터 작동 코드
}
가변저항을 이용한 DC모터 컨베이어 벨트 코딩
#define MOTOR_A1 9
#define MOTOR_A2 10
void setup()
{
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode (MOTOR_A1,OUTPUT);
pinMode(MOTOR_A2,OUTPUT);
}
void loop()
{
unsigned int vr = map(analogRead(A0) , 0, 1023, 0, 511);
if(vr < 256)
{
analogWrite (MOTOR_A1, 255-vr);
analogWrite (MOTOR_A2, 0);
Serial.print("front - ");
Serial.print(255-vr);
}
else
{
analogWrite (MOTOR_A1, 0);
analogWrite (MOTOR_A2, vr-256);
Serial.print("back - ");
Serial.println(vr-256);
}
delay(10);
}
레이저 센서, 조도센서 및 서브모터 작동확인용 코딩
#include<Servo.h> //Servo 라이브러리를 추가
const int LaserPin = 3;// 레이저센서 3핀으로 설정
int cds = A1;// 조도센서를 A1번 핀으로 설정
Servo servo; //Servo 클래스로 servo객체 생성
int value = 0; // 각도를 조절할 변수 value
void setup() {
Serial.begin(115200);
pinMode(LaserPin, OUTPUT); // 레이저가 연결된 핀을 OUTPUT(출력)으로 설정
servo.attach(2); //servo 서보모터 2번 핀에 연결
}
void loop() {
digitalWrite(LaserPin, HIGH);
cds = analogRead(A1);
Serial.print("조도값 = "); //시리얼 모터에 "조도값 = " 출력
Serial.println(cds); // 조도값 시리얼모터에 출력
// 조도센서 값을 측정
int light = analogRead(cds);
if (light < 600){ // 만약 조도센서 값이 600 이하이면
value = 90; // 서보모터 90도로 회전
servo.write(value);
delay(500); // 서보모터 90도로 회전 시간
}
else { // 조도센서값이 600 이상이면
value = 180;
servo.write(value); //서보모터 0도로 회전
delay(500);
}
}
댓글 0
조회수 816등록된 댓글이 없습니다.