Skip to main content

Line Follower Robot Car With Infra Red Arduino

Line Follower adalah robot mobil sederhana dan cocok pemula. Robot yang berjalan di sepanjang garis menggunakan sensor iR. Sensor memiliki dua dioda, satu dioda mengirimkan cahaya inframerah, dioda lainnya menerima cahaya yang dipantulkan dari permukaan. Ketika sinar inframerah jatuh di permukaan putih, sinar dipantulkan kembali. Ketika cahaya infra merah jatuh pada permukaan hitam, cahaya diserap oleh permukaan hitam dan tidak ada sinar yang dipantulkan kembali, sehingga fotodioda tidak menerima cahaya apapun. Sensor mengukur jumlah cahaya yang dipantulkan dan mengirimkan nilainya ke arduino.

Untuk pengaturan sensitivitas sensor dapat kita atur pada Potensiometer yang ada pada sensor. Arduino berfungsi untuk membuat keputusan berdasarkan data yang diterima dari sensor. Jika sensor tidak mendeteksi garis hitam maka robot akan maju. Jika sensor kiri mendeteksi garis hitam, robot berbelok ke kanan, dan jika sensor kanan mendeteksi garis hitam, robot berbelok ke kiri. Robot akan berhenti ketika kedua sensor mendeteksi warna hitam.

Mudah-mudahan project ini bermanfaat dan dapat dikembangkan menjadi lebih baik dan dapat dimanfaatkan untuk kehidupan sehari-hari.


Skema:




Untuk code silahkan copy dan paste dibawah ini:

 #define in1 7

#define in2 6

#define in3 9

#define in4 8

#define enA 5

#define enB 10


 int M1_Speed = 50; // speed of motor 1

 int M2_Speed = 50; // speed of motor 2

 int LeftRotationSpeed = 110;  // Left Rotation Speed

 int RightRotationSpeed = 110; // Right Rotation Speed


 void setup() {

  pinMode(in1,OUTPUT);

  pinMode(in2,OUTPUT);

  pinMode(in3,OUTPUT);

  pinMode(in4,OUTPUT);


    pinMode(enA,OUTPUT);

    pinMode(enB,OUTPUT);


      pinMode(A0, INPUT); // initialize Left sensor as an input

      pinMode(A1, INPUT); // initialize Right sensor as an input

}


void loop() {

  int LEFT_SENSOR = digitalRead(A0);

  int RIGHT_SENSOR = digitalRead(A1);


if(RIGHT_SENSOR==0 && LEFT_SENSOR==0) {

    forward(); //FORWARD

}

  else if(RIGHT_SENSOR==0 && LEFT_SENSOR==1) {

    right(); //Move Right

 }

  else if(RIGHT_SENSOR==1 && LEFT_SENSOR==0) {

    left(); //Move Left

}

  else if(RIGHT_SENSOR==1 && LEFT_SENSOR==1) {

    Stop();  //STOP

 }

}

void forward()

{

            digitalWrite(in1, HIGH);

            digitalWrite(in2, LOW);

            digitalWrite(in3, HIGH);

            digitalWrite(in4, LOW);


                analogWrite(enA, M1_Speed);

                analogWrite(enB, M2_Speed);

}


void backward()

{

            digitalWrite(in1, LOW);

            digitalWrite(in2, HIGH);

            digitalWrite(in3, LOW);

            digitalWrite(in4, HIGH);


                analogWrite(enA, M1_Speed);

                analogWrite(enB, M2_Speed);

}


void right()

{

            digitalWrite(in1, LOW);

            digitalWrite(in2, HIGH);

            digitalWrite(in3, HIGH);

            digitalWrite(in4, LOW);

                analogWrite(enA, LeftRotationSpeed);

                analogWrite(enB, RightRotationSpeed);

}


void left()

{

            digitalWrite(in1, HIGH);

            digitalWrite(in2, LOW);

            digitalWrite(in3, LOW);

            digitalWrite(in4, HIGH);


                analogWrite(enA, LeftRotationSpeed);

                analogWrite(enB, RightRotationSpeed);

}


void Stop()

{

            digitalWrite(in1, LOW);

            digitalWrite(in2, LOW);

            digitalWrite(in3, LOW);

            digitalWrite(in4, LOW);

}

Comments

Popular posts from this blog

Motor Servo dengan Sensor Ultrasonic

Coding: #include <Servo.h> #define trigPin 12 #define echoPin 11 Servo servo; int sound = 250; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); servo.attach(9); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance < 10) { Serial.println("the distance is less than 10"); servo.write(180); delay(1500); } else { servo.write(0); } if (distance > 60 || distance <= 0){ Serial.println("The distance is more than 60"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500); }

Automatic Fish Feed, Pemberi Makan Ikan Otomatis Dengan Timer

Automatic Fish feeder adalah alat untuk memberi makan ikan secara otomatis dengan menggunakan timer. Kita dapat mengatur jadwal pemberian makan ikan berdasarkan waktu, misalkan memberi makan ikan 2 kali sehari, artinya alat akan secara otomatis akan terbuka setiap 12 Jam sekali atau 4 kali sehari, 6 jam sekali. Waktu ini dapat kita atur sesuai dengan keinginan kita. Berikut coding lengkapnya, silahkan di copas dibawah ini: #include <Servo.h> Servo motor; void setup() {   motor.attach(9); } void loop() {   motor.write(200);   delay(8000); /* sama dengan setiap 6 jam atau sehari 4 kali*/   motor.write(120);   delay(200); }

Control LED dengan Push Button Arduino, Push Button Part 1

  Control LED dengan Push Button Arduino, Push Button Part 1 PUSH BUTTON PART 1. Belajar bagaimana cara membuat tombol atau push button untuk menyalakan lampu LED dengan menggunakan Arduino. Untuk Script silahkan copy paste dibawah ini: int led=2; int button=4; void setup(){   pinMode(led,OUTPUT);   pinMode(button,INPUT); } void loop(){   if(digitalRead(button)==HIGH){     digitalWrite(led,HIGH);     }   else{    digitalWrite(led,LOW);    } }