gabbyshimoni icon

control DC motor speed via 2 PB

gabbyshimoni | PRO | 02/14/19 07:09:08 PM UTC | 0 ⭐ | 618 👁️ | Never ⏰ | []
C++ |

900 B

|

None

|

0 👍

/

0 👎

#define motorPin1 7
#define motorPin2 8
#define motorEnaPin 9
#define pbPin1 3
#define pbPin2 4
int pbVal1 = 0, pbVal2 = 0;
int Speed = 0;
 
void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorEnaPin, OUTPUT);
 
  pinMode(pbPin1, INPUT);
  pinMode(pbPin2, INPUT);
 
  digitalWrite(motorEnaPin, LOW);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
}
 
void loop() {
 
  pbVal1 = digitalRead(pbPin1);
  pbVal2 = digitalRead(pbPin2);
 
  if (pbVal1 == HIGH && pbVal2 == LOW) {
    Speed += 10;
  }
 
  if (pbVal2 == HIGH && pbVal1 == LOW) {
    Speed -= 10;
    if (Speed < 0) Speed = 0;
  }
 
  if (pbVal2 == HIGH && pbVal1 == HIGH) {
    Speed = 0;
  }
 
  analogWrite(motorEnaPin, Speed);
  if (Speed > 0) {
    digitalWrite(motorPin1, HIGH);
  }
  else {
    digitalWrite(motorPin1, LOW);
  }
  digitalWrite(motorPin2, LOW);
}

Comments