In this improvement, we used relay and servo motor. A relay is basically an electrically controlled mechanical switch. Inside that harmless looking plastic box is an electromagnet that, when it gets a jolt of energy, causes a switch to trip.We are changing the position of servo with looking the state of relay.
Berrak Şişman& İlker Çam
#include "Servo.h"
const int relayPin = 2; // use this pin to drive the transistor
const int timeDelay = 1000; // delay in ms for on and off phases
const int onPin = 7;
const int offPin = 8;
const int servoPin = 6;
int onOff = 1;
Servo servo1;
void setup()
{
pinMode(relayPin, OUTPUT); // set pin as an output
pinMode(onPin,INPUT);
pinMode(offPin,INPUT);
servo1.attach(servoPin);
Serial.begin(9600);
}
void loop()
{
digitalWrite(relayPin,HIGH);
delay(500);
readRelayState();
digitalWrite(relayPin,LOW);
delay(500);
readRelayState();
}
void readRelayState(){
int onState, offState;
onState = digitalRead(onPin);
offState = digitalRead(offPin);
Serial.println(onState);
Serial.println(offState);
if(onState == HIGH && offState == LOW || onOff==1?true:false){
onOff=0;
for(int position = 0; position < 180; position += 2)
{
servo1.write(position); // Move to next position
delay(2); // Short pause to allow it to move
}
Serial.println("Servo is at 180 degrees");
}else if(onState == LOW && offState == HIGH || onOff==0?true:false){
onOff=1;
for(int position = 180; position >= 0; position -= 1)
{
servo1.write(position); // Move to next position
delay(2); // Short pause to allow it to move
}
Serial.println("Servo is at 0 degrees");
}
delay(100);
}
No comments:
Post a Comment