
Untitled
By: a guest on
Oct 26th, 2012 | syntax:
None | size: 1.58 KB | hits: 100 | expires: Never
const int switchPin = 2; // switch input
const int motor1Pin = 3; // H-bridge leg 1 (pin 2, 1A)
const int motor2Pin = 4; // H-bridge leg 2 (pin 7, 2A)
const int enablePin = 9; // H-bridge enable pin
void setup() {
// initialize serial:
Serial.begin(9600);
// set the switch as an input:
pinMode(switchPin, INPUT);
// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
// set enablePin high so that motor can turn on:
digitalWrite(enablePin, HIGH);
}
void loop() {
while (Serial.available() >0) {
int thespeed = Serial.parseInt();
int thedirection = Serial.parseInt();
if (Serial.read() == '\n') {
thespeed = 255 - constrain(thespeed, 0, 255);
thedirection = 255 - constrain(thedirection, 0, 255);
analogWrite(enablePin,thespeed);
}
}
// if the switch is high, motor will turn on one direction:
if (digitalRead(switchPin) == HIGH) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
}
// if the switch is low, motor will turn in the other direction:
else {
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
}
}