BASIC4MCU | 질문게시판 | 스텝모터와 조도센서 통합 코딩 질문있습니다
페이지 정보
작성자 시로이나즈 작성일2019-05-10 22:44 조회3,799회 댓글1건본문
스텝모터와 2개의 조도센서 모듈을 이용하여 솔라트래커를만들고있습니다
상하로 연결된 조도센서 사이에 일정 길이의 차양막을 설치하여 조도센서간 출력차이가 생기게되고,
if ,else 명령어를 사용했습니다.
상부 조도센서 출력이 더 클땐 모터가 정회전,
하부 조도센서 출력이 더 클땐 모터가 역회전 하는것으로 광원을 추적하려 합니다.
스텝모터의 회전각이 1500도 , 약 833스텝으로 이는 연결되는 프레임의 구조때문에 제한을 준것입니다.
컴파일은 정상적으로 됩니다.
모터 또한 충분한 전압,전류를 인가 해주었기 때문에 정상적으로 작동 하는것처럼 보입니다.
하지만 제가 원하는대로 광원추적이 되지는 않는 상황이며,
이는 if, else 부분이 정확하지 않아서 그런것 같습니다.
저 혼자 수많은 사이트를 찾아다니며 공부하며 어떻게 코딩은 했지만 작동이 안되었고 결국 주인장님 사이트까지 오게되었습니다.
제 코딩에 소중한 고견 남겨주시면 감사하겠습니다.
또한 실시간으로 계속 광원추적을 하기위해선 단순히 딜레이를 줄여주면 되는것인지도 궁금 합니다!
#include <Stepper.h>
const int STEPS = 833;
int val;
int previous;
int in1Pin = 8;
int in2Pin = 9;
int in3Pin = 10;
int in4Pin = 11;
int upper cds1 = A0;
int lower cds2 = A1;
Stepper stepper(STEPS, 8, 9, 10, 11);
void setup() {
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
stepper.setSpeed(30);
Serial.begin(9600);
}void loop() {
val = analogRead(A0);
val = map(val, 0, 1023, 0, 255);
Serial.println(val);
previous = analogRead(A1);
previous = map(previous, 0, 1023, 0, 255);
Serial.println(previous);
if(val>previous){
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
stepper.step(STEPS);
}
else{
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
stepper.step(-STEPS);
}
delay(500);
}
댓글 1
조회수 3,799master님의 댓글
master 작성일
int upper cds1 = A0;
int lower cds2 = A1;
컴파일 오류가 발생하지 않던가요?