#include <Stepper.h>
const int STEPS = 1024;
int val;
int previous;
int in1Pin = 8;
int in2Pin = 9;
int in3Pin = 10;
int in4Pin = 11;
int cds1 = A0;
int 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);
}
https://kocoafab.cc/make/view/341 태양광추적장치인데요.
위 사항에서 크기를 좀 크게 만드려다보니 태양전지판이 커지면서 서보모터대신 스텝모터를 사용하게 되었고
모터방향제어도 상하좌우가 아닌 좌우만 하게끔 만들어보고싶은데 조언 좀 구하고 싶습니다.
조도센서를 좌우 2개만 이용해서 두 값을 비교해 방향제어하는 방식인데요.
여기저기서 가져다 붙이다보니 막막해지더라구요.
if부문에서도 상당히 이상하고 해서 글 올려봅니다. 도와주세요!
|