Anda di halaman 1dari 7

Project 14.

SENSOR GARIS / DETEKTOR WARNA

Sepasang sensor garis biasanya digunakan pada Robot Line tracer untuk mendeteksi warna
dasar putih dan garis hitam pada papan lintasan. Sensor ini menggunakan pancaran sinar
infrared yang akan dipantulkan dan ditangkap oleh fotodioda. Nilai yang terbaca selanjutnya
akan diolah oleh mikrokontroler untuk menjalankan aksi tertentu.

Sketch:

/*
* Infrared and Arduino
* Reads an input from IR, sends it to serial monitor
and turns a LED off or on.
*/

// variables
int LDR_pin = 0; // analog pin 0 (connect IR here)
int LDR_val = 0; // variable use to read input
data int LEDpin = 13; //This is the LED

// a threshold to decide when the LED turns on


// batas bawah = 50 (hitam) , atas = 400 (kertas putih)

int threshold = 50;

void setup(){
pinMode(LDR_pin, INPUT);
pinMode(LEDpin, OUTPUT);
Serial.begin(9600);
}

void loop(){

LDR_val = analogRead(LDR_pin);

if (LDR_val > threshold)


digitalWrite(LEDpin, HIGH);
else
digitalWrite(LEDpin, LOW);
// output 'LDR_val' value into the console
Serial.print("LDR = ");
Serial.print(LDR_val);
Serial.println();
delay (1000);
}

Catatan:

Cobalah dengan mendeteksi berbagai macam warna kertas yang permukaannya tidak
mengkilat.
Tangkap nilainya, dan berikan statement IF untuk menterjemahkannya menjadi nama
WARNA tertentu.
Project 15. SWITCH ON/OFF PERALATAN LISTRIK DENGAN RELAY

Output dari pembacaan sensor (misalnya sensor garis, suhu, cahaya, warna, remote control,
gerak, jarak), dapat dihubungkan dengan relay yang berfungsi sebagai switch / tombol ON/OFF
berbagai peralatan listrik. Skemanya adalah sebagai berikut:

Sketch:

int relay1 = 3; // pin 3 Arduino dihubungkan dengan pin SIGNAL modul

Relay void setup()


{
pinMode(relay1, OUTPUT); // pin 13 sebagai output
}

void loop()
{
digitalWrite(relay1, HIGH); // led On
delay(1000); // tunggu 1 detik
digitalWrite(relay1, LOW); // led Off
delay(1000); // tunggu 1 detik
}
Project 16. MENGGERAKKAN LENGAN ROBOT DENGAN SERVO

Servo adalah motor yang sudut putarnya antara 0 – 180 derajat. Berputarnya Servo didasarkan
atas perintah mikrokontroler untuk berputar dengan sudut tertentu dan kecepatan tertentu.

Catatan:
- Gunakan sumber tegangan sesuai spesifikasi Servo
- Biasanya digunakan untuk menggerakkan lengan /
kaki Robot
- Program berikut ini adalah untuk memutar Servo
dengan sudut putar 10 – 170 derajat ke kanan
dan kekiri.

int servoPin = 2; // servo connected to digital pin


2 int myAngle; // angle of the servo roughly 0-180
int pulseWidth; // servoPulse function variable

void setup()
{
pinMode(servoPin, OUTPUT); // sets pin 2 as output
}
void servoPulse(int servoPin, int myAngle)
{
pulseWidth = (myAngle * 10) + 600; // determines delay
digitalWrite(servoPin, HIGH); // set servo high
delayMicroseconds(pulseWidth); // microsecond pause
digitalWrite(servoPin, LOW); // set servo low
}
void loop()
{
// servo starts at 10 deg and rotates to 170
deg for (myAngle=10; myAngle<=170;
myAngle++)
{
servoPulse(servoPin, myAngle); // send pin and angle
delay(20); // refresh cycle
}
// servo starts at 170 deg and rotates to 10
deg for (myAngle=170; myAngle>=10;
myAngle--)
{
servoPulse(servoPin, myAngle); // send pin and angle
delay(20); // refresh cycle
}
}
/*
PROGRAM UNTUK MEMUTAR SERVO DENGAN POTENTIOMETER
*/

#include <Servo.h>
Servo myservo; // create servo object to control a servo
int sliderpin = 0; // analog pin potentiometer (CENTER
PIN)
int sensorValue; // variable to read the value from the analog
pin void setup()
{
myservo.attach(0); // attaches the servo on pin 0 to the servo object
}

void loop()
{
sensorValue = analogRead(sliderpin); // reads the value of the slider (value between 0 -1023)
sensorValue = sensorValue/5.68; // scale it to use it with the servo (value between 0 -180)
myservo.write(sensorValue); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}
Project 17. H-BRIDGE MOTOR DRIVER

Motor DC, misalnya motor Tamiya, tidak dapat langsung dihubungkan dengan output
Mikrokontroler, karena arusnya terlalu kecil. Untuk itu diperlukan rangkaian H-bridge sebagai
penguat arus sekaligus pengendali kecepatan motor dan arah putaran motor DC.

Catatan:
- Rangkai modul H-Bridge, bodi Robot mobil (dengan 2 DC motor Tamiya) dan sumber
tenaganya.
- Dengan bantuan sensor, misalnya sensor jarak, kita dapat membuat Robot Line
tracer, Obstacle Avoider, light sensing, dll.
- Program berikut ini adalah untuk menggerakkan Robot maju full speed dan mundur
half speed.
Sketch:

int transistorPin = 9; // dari digital pin 9 ke pin signal PWM kiri (menggerkkan motor)
int transistorPin2 = 11; // dari digital pin 11 ke pin signal PWM kanan (menggerkkan motor)
int relayPin = 7; // dari digital pin 7 ke pin signal relay kiri (membalik putaran motor)
int relayPin2 = 5; // dari digital pin 5 ke pin signal relay kanan (membalik putaran motor)

void setup() {
// set the transistor pin as an output
pinMode(transistorPin, OUTPUT);
pinMode(transistorPin2, OUTPUT);
// set the relay pin as an output
pinMode(relayPin, OUTPUT);
pinMode(relayPin2, OUTPUT);
}

void loop()
{
digitalWrite(7, LOW); // relay1 off - MAJU
digitalWrite(5, LOW); // relay2 off - MAJU
analogWrite(9, 255); // motor 1 on, full speed - (nilai 0-255)
analogWrite(11, 255); // motor 2 on, full speed - (nilai 0-255)

delay(3000);

analogWrite(9, 0); // motor 1 off


analogWrite(11, 0); // motor 2 off

delay(3000);

digitalWrite(7, HIGH); // relay1 on - MUNDUR


digitalWrite(5, HIGH); // relay2 on - MUNDUR
analogWrite(9, 125); // motor 1 on, half speed - (nilai 0-255)
analogWrite(11, 125); // motor 2 on, half speed - (nilai 0-255)
delay(3000);

analogWrite(9, 0); // motor 1 off


analogWrite(11, 0); // motor 2 off
delay(3000);
}

Anda mungkin juga menyukai