//////////----------> Base motor information
char Elevation_Motor_Direction_pin = 4;
char Elevation_Motor_Pulse_pin = 5;
float Elevation_distance ;
float Pre_Elevation_distance = 0;
void Elevation_Motor_Control(float Elevation_distance)
{
if (Elevation_distance != Pre_Elevation_distance){
int x = (Elevation_distance - Pre_Elevation_distance)*250;
if ( x > 0 ){
digitalWrite(Elevation_Motor_Direction_pin,LOW);
for(int i =0 ; i < abs(x) ; i++ ){
digitalWrite(Elevation_Motor_Pulse_pin, HIGH);
delayMicroseconds(500);
digitalWrite(Elevation_Motor_Pulse_pin, LOW);
delayMicroseconds(500);
}
}
if(x < 0){
digitalWrite(Elevation_Motor_Direction_pin,HIGH);
for(int i =0 ; i < abs(x) ; i++ ){
digitalWrite(Elevation_Motor_Pulse_pin, HIGH);
delayMicroseconds(500);
digitalWrite(Elevation_Motor_Pulse_pin, LOW);
delayMicroseconds(500);
}
}
Pre_Elevation_distance = Elevation_distance ;
}}
void setup() {
pinMode(Elevation_Motor_Direction_pin,OUTPUT);
pinMode(Elevation_Motor_Pulse_pin,OUTPUT);
}
void loop() {
Elevation_Motor_Control(10);
delay(1000);
Elevation_Motor_Control(20);
delay(1000);
Elevation_Motor_Control(50);
delay(1000);
Elevation_Motor_Control(10);
}