ROBY ARDIANSYAH
TEKNIK MEKATRONIKA OTOMASI INDUSTRI
2021
Link 1 : https://youtu.be/ToebhUhxxF4
Link 2 : https://youtu.be/4nPkt8M_Yf0
1. Blok Diagram Robot Line Follower
Motor
Motor ESP 32
Driver
Buck conventer
Driver motor l298N adalah module driver motor DC yang paling banyak
digunakan atau dipakai di dunia elektronika yang difungsikan untuk mengontrol
kecepatan serta arah perputaran motor DC.
ESP 32 adalah mikrokontroller berharga rendah dan hemat energi dengan wifi dan
dual-mode bluetooth terintegrasi.
Buck converter adalah dc-dc converter jenis penurun tegangan atau step down.
lipo 1100 mah 2 sell adalah sumber energi yang dapat merubah energi kimia yang
disimpannya menjadi energi listrik yang dapat digunakan seperti perangkat
elektronik.
1. Program dan penjelasan per fungsi
void setup() {
// semua skecth program pada void setup hanya dibaca sekali saja saat menjalankan
program:
Serial.begin(115200); // untuk komunikasi arduino dengan komputer dengan baudrate
115200:
//atur resolusi ke 12 bit (0-4096)
analogReadResolution(10);
// konfigurasikan fungsionalitas LED PWM
ledcSetup(motkaChannel1, freq, resolution);
ledcSetup(motkaChannel2, freq, resolution);
ledcSetup(motkiChannel1, freq, resolution);
ledcSetup(motkiChannel2, freq, resolution);
// lampirkan saluran ke GPIO untuk dikontrol
ledcAttachPin(motka1, motkaChannel1);
ledcAttachPin(motka2, motkaChannel2);
ledcAttachPin(motki1, motkiChannel1);
ledcAttachPin(motki2, motkiChannel2);
}
{
//baca nilai analog / milivolt untuk pin 2:
int i,error;
int analogValue[8];
int thres [8] ={717,568,450,370,434,536,451,544};
unsigned char DataSensor;
analogValue[0]= analogRead(34);
analogValue[1]= analogRead(35);
analogValue[2]= analogRead(32); Untuk membaca nilai sensor
analogValue[3]= analogRead(33);
analogValue[4]= analogRead(25);
analogValue[5]= analogRead(26);
analogValue[6]= analogRead(27);
analogValue[7]= analogRead(14);
switch (DataSensor){
case 0b00011000: error=0; break;
case 0b00010000: error=1; break;
switch adalah kata kunci pengontrol untuk
case 0b00110000: error=2; break; membuat keputusan pada data sensor yang
case 0b00100000: error=3; break; sudah di deklerasikan
case 0b01100000: error=4; break;
case 0b01000000: error=5; break;
case 0b11000000: error=6; break;
case 0b10000000: error=7; break;
case 0b00001000: error=-1; break;
case 0b00001100: error=-2; break;
case 0b00000100: error=-3; break;
case 0b00000110: error=-4; break;
case 0b00000010: error=-5; break;
case 0b00000011: error=-6; break;
case 0b00000001: error=-7; break;
if (error==0){gerak(200,200);}
else if (error==7){gerak(-200,255);}
else if (error==-7){gerak(255,-200);}
else if (error>0){gerak((200-(20*error)),255);}
else if (error<0){gerak(255,(200-(20*error)));}
delay(100);
}