Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <IRremote.h>
- #include <IRremoteInt.h>
- int IRpin = 9; // pin for the IR sensor
- IRrecv irrecv(IRpin);
- decode_results results;
- //Tell the Arduino where the sensor is hooked up
- int enableA = 11;
- int pinA1 = 6;
- int pinA2 = 5;
- int enableB = 10;
- int pinB1 = 4;
- int pinB2 = 3;
- long inches;
- void setup() {
- pinMode(enableA, OUTPUT);
- pinMode(pinA1, OUTPUT);
- pinMode(pinA2, OUTPUT);
- pinMode(enableB, OUTPUT);
- pinMode(pinB1, OUTPUT);
- pinMode(pinB2, OUTPUT);
- Serial.begin(9600);
- irrecv.enableIRIn(); // Start the receiver
- }
- //Define high-level H-bridge commands
- void enableMotors()
- {
- motorAOn();
- motorBOn();
- }
- void disableMotors()
- {
- motorAOff();
- motorBOff();
- }
- void forward(int time)
- {
- motorAForward();
- motorBForward();
- delay(time);
- }
- void backward(int time)
- {
- motorABackward();
- motorBBackward();
- delay(time);
- }
- void turnLeft(int time)
- {
- motorABackward();
- motorBForward();
- delay(time);
- }
- void turnRight(int time)
- {
- motorAForward();
- motorBBackward();
- delay(time);
- }
- void coast(int time)
- {
- motorACoast();
- motorBCoast();
- delay(time);
- }
- void brake(int time)
- {
- motorABrake();
- motorBBrake();
- delay(time);
- }
- //Define low-level H-bridge commands
- //enable motors
- void motorAOn()
- {
- digitalWrite(enableA, HIGH);
- }
- void motorBOn()
- {
- digitalWrite(enableB, HIGH);
- }
- //disable motors
- void motorAOff()
- {
- digitalWrite(enableB, LOW);
- }
- void motorBOff()
- {
- digitalWrite(enableA, LOW);
- }
- //motor A controls
- void motorAForward()
- {
- digitalWrite(pinA1, HIGH);
- digitalWrite(pinA2, LOW);
- }
- void motorABackward()
- {
- digitalWrite(pinA1, LOW);
- digitalWrite(pinA2, HIGH);
- }
- //motor B controls
- void motorBForward()
- {
- digitalWrite(pinB1, HIGH);
- digitalWrite(pinB2, LOW);
- }
- void motorBBackward()
- {
- digitalWrite(pinB1, LOW);
- digitalWrite(pinB2, HIGH);
- }
- //coasting and braking
- void motorACoast()
- {
- digitalWrite(pinA1, LOW);
- digitalWrite(pinA2, LOW);
- }
- void motorABrake()
- {
- digitalWrite(pinA1, HIGH);
- digitalWrite(pinA2, HIGH);
- }
- void motorBCoast()
- {
- digitalWrite(pinB1, LOW);
- digitalWrite(pinB2, LOW);
- }
- void motorBBrake()
- {
- digitalWrite(pinB1, HIGH);
- digitalWrite(pinB2, HIGH);
- }
- void loop() {
- //Run the motors at slightly less than full power
- analogWrite(enableA, 200);
- analogWrite(enableB, 200);
- if (irrecv.decode(&results)){ //this checks to see if a code has been received
- if (results.value == 0xFF18E7){ //if the button press equals the hex value 0xC284
- analogWrite(enableA, 255);
- analogWrite(enableB, 255);
- forward(100);
- }
- irrecv.resume(); //receive the next value
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement