Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int IN1 = 13;
- const int IN2 = 12;
- const int Enable1 = 14;
- const int buttonOpen = 2; // Yellow
- const int buttonClose = 0; // Black
- const int limit1 = 5;
- const int limit2 = 4;
- void setup()
- {
- pinMode(IN1, OUTPUT);
- pinMode(IN2, OUTPUT);
- pinMode(Enable1, OUTPUT);
- pinMode(buttonOpen, INPUT);
- pinMode(buttonClose, INPUT);
- pinMode(limit1, INPUT);
- pinMode(limit2, INPUT);
- }
- void moveLeft()
- {
- digitalWrite(Enable1, HIGH); // wakes up driver
- digitalWrite(IN1, LOW); //
- digitalWrite(IN2, HIGH); // spins counter-clockwise
- }
- void moveRight()
- {
- digitalWrite(Enable1, HIGH); // wakes up driver
- digitalWrite(IN1, HIGH); //
- digitalWrite(IN2, LOW); // spins clockwise
- }
- void stopMotor() //brake motor for 0.1 seconds to avoid coasting then place driver to sleep
- {
- int period = 80L; // 0.08 seconds
- for( int tStart = millis(); (millis()-tStart) < period; ){
- digitalWrite(IN1, HIGH); // brake
- digitalWrite(IN2, HIGH); // brake
- }
- digitalWrite(Enable1, LOW); // Sleep driver
- }
- void loop(){
- // Move motor right
- if (digitalRead(buttonOpen) == LOW){
- while(digitalRead(limit2) == HIGH){
- moveRight();
- yield();
- }
- }
- else (stopMotor());
- // Move motor left
- if (digitalRead(buttonClose) == LOW){
- while(digitalRead(limit1) == HIGH){
- moveLeft();
- yield();
- }
- }
- else (stopMotor());
- }
Add Comment
Please, Sign In to add comment