Devices & Components
Arduino Uno Rev3
DC Motor, 12 V
Dual H-Bridge motor drivers L298
Battery Holder, 18650 x 2
Hardware & Tools
Soldering iron (generic)
Plier, Cutting
Mastech MS8217 Autorange Digital Multimeter
Multitool, Screwdriver
Drill / Driver, Cordless
Project description
Code
Arduino Sketch
arduino
1int mr1=8; //motor right 1 2int mr2=9; //motor right 2 3int ml1=10; //motor left 1 4int ml2=11; //motor left 2 5int sr=6; //sensor right 6int sl=7; //sensor left 7int svr=0; 8int svl=0; 9int led=13; 10int enr=3; 11int enl=5; 12 13int vspeed=100; 14int tspeed=255; 15int tdelay=20; 16 17void setup() 18{ 19 pinMode(mr1,OUTPUT); 20 pinMode(mr2,OUTPUT); 21 pinMode(ml1,OUTPUT); 22 pinMode(ml2,OUTPUT); 23 pinMode(led,OUTPUT); 24 pinMode(sr,INPUT); 25 pinMode(sl,INPUT); 26 27 delay(5000); 28} 29 30void loop() 31{ 32 svr=digitalRead(sr); 33 svl=digitalRead(sl); 34 35 if(svl==LOW && svr==LOW) 36 { 37 forward(); //maju 38 } 39 40 if(svl==HIGH && svr==LOW) 41 { 42 left(); //belok kiri 43 } 44 45 if(svl==LOW && svr==HIGH) 46 { 47 right(); //belok kanan 48 } 49 50 if(svl==HIGH && svr==HIGH) 51 { 52 stop(); //berhenti 53 } 54} 55 56void forward() 57 { 58 digitalWrite(mr1,HIGH); 59 digitalWrite(mr2,LOW); 60 digitalWrite(ml1,HIGH); 61 digitalWrite(ml2,LOW); 62 analogWrite (enr,vspeed); 63 analogWrite (enl,vspeed); 64 } 65 66void backward() 67 { 68 digitalWrite(mr1,LOW); 69 digitalWrite(mr2,HIGH); 70 digitalWrite(ml1,LOW); 71 digitalWrite(ml2,HIGH); 72 analogWrite (enr,vspeed); 73 analogWrite (enl,vspeed); 74 } 75 76void right() 77 { 78 digitalWrite(mr1,LOW); 79 digitalWrite(mr2,HIGH); 80 digitalWrite(ml1,HIGH); 81 digitalWrite(ml2,LOW); 82 analogWrite (enr,tspeed); 83 analogWrite (enl,tspeed); 84 delay(tdelay); 85 } 86 87void left() 88 { 89 digitalWrite(mr1,HIGH); 90 digitalWrite(mr2,LOW); 91 digitalWrite(ml1,LOW); 92 digitalWrite(ml2,HIGH); 93 analogWrite (enr,tspeed); 94 analogWrite (enl,tspeed); 95 delay(tdelay); 96} 97 98void stop() 99 { 100 analogWrite (enr,0); 101 analogWrite (enl,0); 102 }
Arduino Sketch
arduino
1int mr1=8; //motor right 1 2int mr2=9; //motor right 2 3int ml1=10; //motor left 1 4int ml2=11; //motor left 2 5int sr=6; //sensor right 6int sl=7; //sensor left 7int svr=0; 8int svl=0; 9int led=13; 10int enr=3; 11int enl=5; 12 13int vspeed=100; 14int tspeed=255; 15int tdelay=20; 16 17void setup() 18{ 19 pinMode(mr1,OUTPUT); 20 pinMode(mr2,OUTPUT); 21 pinMode(ml1,OUTPUT); 22 pinMode(ml2,OUTPUT); 23 pinMode(led,OUTPUT); 24 pinMode(sr,INPUT); 25 pinMode(sl,INPUT); 26 27 delay(5000); 28} 29 30void loop() 31{ 32 svr=digitalRead(sr); 33 svl=digitalRead(sl); 34 35 if(svl==LOW && svr==LOW) 36 { 37 forward(); //maju 38 } 39 40 if(svl==HIGH && svr==LOW) 41 { 42 left(); //belok kiri 43 } 44 45 if(svl==LOW && svr==HIGH) 46 { 47 right(); //belok kanan 48 } 49 50 if(svl==HIGH && svr==HIGH) 51 { 52 stop(); //berhenti 53 } 54} 55 56void forward() 57 { 58 digitalWrite(mr1,HIGH); 59 digitalWrite(mr2,LOW); 60 digitalWrite(ml1,HIGH); 61 digitalWrite(ml2,LOW); 62 analogWrite (enr,vspeed); 63 analogWrite (enl,vspeed); 64 } 65 66void backward() 67 { 68 digitalWrite(mr1,LOW); 69 digitalWrite(mr2,HIGH); 70 digitalWrite(ml1,LOW); 71 digitalWrite(ml2,HIGH); 72 analogWrite (enr,vspeed); 73 analogWrite (enl,vspeed); 74 } 75 76void right() 77 { 78 digitalWrite(mr1,LOW); 79 digitalWrite(mr2,HIGH); 80 digitalWrite(ml1,HIGH); 81 digitalWrite(ml2,LOW); 82 analogWrite (enr,tspeed); 83 analogWrite (enl,tspeed); 84 delay(tdelay); 85 } 86 87void left() 88 { 89 digitalWrite(mr1,HIGH); 90 digitalWrite(mr2,LOW); 91 digitalWrite(ml1,LOW); 92 digitalWrite(ml2,HIGH); 93 analogWrite (enr,tspeed); 94 analogWrite (enl,tspeed); 95 delay(tdelay); 96} 97 98void stop() 99 { 100 analogWrite (enr,0); 101 analogWrite (enl,0); 102 }
Downloadable files
Schematic
Schematic

Comments
Only logged in users can leave comments