Devices & Components
Arduino Uno Rev3
Jumper wires (generic)
TV Remote
5 mm LED: Yellow
IR Receiver
Gear motor
High Brightness LED, White
L298 motor driver
12 Volt Battery
Hardware & Tools
Soldering iron (generic)
Hot glue gun (generic)
Project description
Code
Code
arduino
1#include <IRremote.h> 2 3/* define IR sensor pin */ 4int IRsensorPin = 12; 5 6/* define the some functions used by the library */ 7IRrecv irrecv(IRsensorPin); 8decode_results results; 9 10/* define L298N motor drive control pins */ 11int RightMotorForward = 2; // IN1 12int RightMotorBackward = 3; // IN2 13int LeftMotorForward = 4; // IN3 14int LeftMotorBackward = 5; // IN4 15int LeftLED = 6; 16int RightLED = 7; 17 18void setup(){ 19 20 /* initialize motor control pins as output */ 21 pinMode(LeftMotorForward,OUTPUT); 22 pinMode(RightMotorForward,OUTPUT); 23 pinMode(LeftMotorBackward,OUTPUT); 24 pinMode(RightMotorBackward,OUTPUT); 25 pinMode(LeftLED,OUTPUT); 26 pinMode(RightLED,OUTPUT); 27 28 /* start serial communication to see hex codes */ 29 Serial.begin(9600); 30 irrecv.enableIRIn(); 31} 32 33void loop(){ 34 35 /* if the sensor is receive any signal */ 36 if (irrecv.decode(&results)){ 37 38 /* print the hex code value on the serial monitor */ 39 Serial.println(results.value); 40 delay(5); 41 42 /* resume function according to hex code */ 43 irrecv.resume(); 44 } 45 46 if(results.value == 752) MotorForward(); 47 if(results.value == 2800) MotorBackward(); 48 if(results.value == 3280) TurnRight(); 49 if(results.value == 720) TurnLeft(); 50 if(results.value == 2672) MotorStop(); 51 52} 53 54/* FORWARD */ 55void MotorForward(){ 56 digitalWrite(LeftLED,LOW); 57 digitalWrite(RightLED,LOW); 58 digitalWrite(LeftMotorForward,HIGH); 59 digitalWrite(RightMotorForward,HIGH); 60 digitalWrite(LeftMotorBackward,LOW); 61 digitalWrite(RightMotorBackward,LOW); 62} 63 64/* BACKWARD */ 65void MotorBackward(){ 66 digitalWrite(LeftLED,LOW); 67 digitalWrite(RightLED,LOW); 68 digitalWrite(LeftMotorBackward,HIGH); 69 digitalWrite(RightMotorBackward,HIGH); 70 digitalWrite(LeftMotorForward,LOW); 71 digitalWrite(RightMotorForward,LOW); 72} 73 74/* TURN RIGHT */ 75void TurnRight(){ 76 digitalWrite(LeftLED,LOW); 77 digitalWrite(LeftMotorForward,HIGH); 78 digitalWrite(RightMotorForward,LOW); 79 digitalWrite(LeftMotorBackward,LOW); 80 digitalWrite(RightMotorBackward,HIGH); 81 digitalWrite(RightLED,HIGH); 82} 83 84/* TURN LEFT */ 85void TurnLeft(){ 86 digitalWrite(RightLED,LOW); 87 digitalWrite(RightMotorForward,HIGH); 88 digitalWrite(LeftMotorForward,LOW); 89 digitalWrite(LeftMotorBackward,HIGH); 90 digitalWrite(RightMotorBackward,LOW); 91 digitalWrite(LeftLED,HIGH); 92} 93 94/* STOP */ 95void MotorStop(){ 96 digitalWrite(LeftLED,LOW); 97 digitalWrite(RightLED,LOW); 98 digitalWrite(LeftMotorBackward,LOW); 99 digitalWrite(RightMotorBackward,LOW); 100 digitalWrite(LeftMotorForward,LOW); 101 digitalWrite(RightMotorForward,LOW); 102}
Comments
Only logged in users can leave comments