.#include <Stepper.h>
const int stepsPerRevolution = 200; //200; // 모터의 1회전당 스텝 수에 맞게 조정
// initialize the stepper library on pins 8 through 11:
// IN1, IN2, IN3, IN4 가 아두이노 D8, D9, D10, D11에 순서대로 연결되어 있다면
//Stepper myStepper(stepsPerRevolution, 11,9,10,8); // Note 8 & 11 swapped
Stepper myStepper(stepsPerRevolution, 23,24,25,26); // Note 8 & 11 swapped
//--- 가변저항 --
//float analog_value = 0.0; // val = analogRead(A3);
void setup() {
// set the speed at 60 rpm:
//myStepper.setSpeed(30); //120); //360); //120);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
//--- 가변저항 --
int sensorReading = analogRead(A3);
Serial.print("sensorReading:");
Serial.println(sensorReading);
int motorSpeed = map(sensorReading, 0, 1023, 0, 400);
myStepper.setSpeed(motorSpeed);
Serial.print("motorSpeed:");
Serial.println(motorSpeed);
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
//**************************
/*
for (int x=1;x<2;x++)
{
myStepper.step(stepsPerRevolution);
Serial.println(x);
}*/
//**************************
// delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
/*
//**************************
for (int x =1;x<2;x++)
{
myStepper.step(-stepsPerRevolution);
Serial.println(x);
}
//**************************
delay(500);
*/
/*
//--- 가변저항 --
// 가변저항 회전에 따라, 1~63까지로 정수 표현
int val;
val = analogRead(A3); //가변저항 아날로그 정수 값 => 0~1023
float temp_value = 60.0/1023*(float)val; //가변값을 0~255까지 정수 대응값 => 48초까지 설정하기 위해.. 1은 예비로 추가함...
if ((int)analog_value != (int)temp_value){ //이전 값과 같지 않다면...
analog_value = temp_value;
Serial.println((int)analog_value);
*/
}
/*
* 위 예제는 가변저항을 이용해 스텝모터의 회전속도를 바꿔보는 예제를 조금 변형한 소스코드 입니다.
int sensorReading = analogRead(A0);
A0핀에 가변저항을 연결해서 변화하는 저항값을 읽어옵니다.
int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
map함수를 이용해서 0~1023까지 들어오는 아날로그 값을 0 ~ 100으로 매칭 시켜줍니다.
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
myStepper.step(stepsPerRevolution / 100);
}
motorSpeed 값이 0 ~ 100사이의 값일 경우에 스텝모터의 스피드를 motorSpeed와 동일하게 지정해주고 지정된 스피드로 스템모터를 한스텝 동작시킵니다.
*/