5 Project Arduino (Arduino Book Versi Ketiga)
5 Project Arduino (Arduino Book Versi Ketiga)
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 2);
lcd.clear(); // start with a blank screen
lcd.setCursor(0,0); // set cursor to column 0, row 0 (the first row)
lcd.print("BLUES LAND"); // change this text to whatever you like. keep it clean.
lcd.setCursor(0,1); // set cursor to column 0, row 1
lcd.print("Arifal Akmal");
}
void loop()
{
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 2);
lcd.clear(); // start with a blank screen
lcd.setCursor(0,0); // set cursor to column 0, row 0 (the first row)
lcd.print("BLUES LAND"); // change this text to whatever you like. keep it clean.
lcd.setCursor(0,1); // set cursor to column 0, row 1
lcd.print("Arifal Akmal");
}
void loop() {
// Turn off the blinking cursor:
lcd.noDisplay();
delay(500);
// Turn on the display:
lcd.display();
delay(500);
}
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16,2);
}
void loop() {
// set the cursor to (0,0):
lcd.setCursor(0, 0);
// print from 0 to 9:
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
}
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("ROBOT KREATIF"); // 12 huruf
delay(1000);
}
void loop() {
// scroll 12 positions (string length) to the left
// to move it offscreen left:
for (int positionCounter = 0; positionCounter < 12; positionCounter++) {
// scroll one position left:
lcd.scrollDisplayLeft();
// wait a bit:
delay(300);
}
}
Project 9. SENSOR CAHAYA PHOTOCELL / LDR
Dengan sensor cahaya LDR (Light Dependent Resistor), Lampu akan otomatis menyala (On) jika
sensor tidak terkena cahaya (gelap). Sebaliknya, lampu akan mati (Off ) apabila sensor terkena
cahaya terang.
Sketch:
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // untuk membaca data pada serial port di layar monitor
}
void loop()
{
sensorValue = analogRead(sensorPin); // membaca nilai dari sensor:
Catatan: Pin signal modul LDR (juga keluarga resistor yg lain, misalnya Potensiometer,
Thermistor) dihubungkan dengan port Analog Arduino, bukan port digital
Project 10. TERMOMETER DIGITAL
Untuk mengukur suhu, caranya cukup mudah. IC jenis LM 35 ini cukup praktis, bentuknya kecil
dan akurasinya tinggi. Cukup dengan menghubungkan kakinya ke kutub + , A0 dan – seperti
pada gambar, nilai tegangan listrik yang didapat akan dikonversi menjadi nilai suhu dalam
satuan derajat Celsius/Rheamur/Fahrenheit.
Sketch:
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available()) // if monitor screen opened
{
val = analogRead(potPin); // read the value from the sensor
temperature = (5.0 * val * 100.0)/1024.0; // convertion formula to Celcius
Serial.println(temperature); // write temperature to notebook
monitor
// Serial.println((long)temperature); // jika nilainya ingin dibulatkan
}
delay(1000);
}
void setup()
{
lcd.begin(16, 2); // set up the LCD's number of rows and columns
}
void loop()
{
val = analogRead(potPin); // read the value from the sensor
temperature = (5.0 * val * 100.0)/1024.0; // convert to Celcius
delay(1000);
}
c. Thermometer digital dengan fitur lampu indikator
Tambahkan pengukur suhu ini dengan fitur lampu indikator (rangkaian traffict light) yang
menyala bergantian pada suhu tertentu. Gunakan logika IF-ELSE atau SWITCH-CASE.
void setup()
{
Serial.begin(9600);
pinMode(redLight, OUTPUT);
pinMode(yellowLight, OUTPUT);
pinMode(greenLight, OUTPUT);
}
void loop()
{
if (Serial.available()) // if monitor screen opened
{
val = analogRead(potPin); // read the value from the sensor
temperature = (5.0 * val * 100.0)/1024.0;
suhu = temperature;
Serial.println("Suhu sekarang adalah : ");
Serial.println((long)temperature);
if (suhu >=27 || suhu <= 30) { // Jika suhunya antara 27-30 derajat
digitalWrite(yellowLight,HIGH);
digitalWrite(greenLight,LOW);
digitalWrite(redLight,LOW);
}
if (suhu < 27) { // Jika suhunya kurang dari 27 derajat
digitalWrite(greenLight,HIGH);
digitalWrite(redLight,LOW);
digitalWrite(yellowLight,LOW);
}
}
delay(5000);
}
Catatan:
switch (suhu)
{
case 24 : // Jika suhunya 24 derajat
……….
break;
Untuk mengukur jarak digunakan Sensor Ultrasonic yang cara kerjanya adalah memancarkan
gelombang ultrasonic dan menangkap pantulannya jika mengenai benda di depannya. Waktu
pantul itulah yang akan di konversi kedalam satuan jarak.
Sketch:
void setup() {
Serial.begin(9600);
}
void loop() {
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
cm = microsecondsToCentimeters(duration);
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
}
void setup()
{
lcd.begin(16, 2); // set up the LCD's number of rows and columns
}
void loop() {
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
cm = microsecondsToCentimeters(duration);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(cm);
lcd.print("cm");
delay(1000);
}
Catatan:
Sensor jarak ini banyak diimplementasikan untuk berbagai macam proyek robotik, misalnya:
- Penaksir jarak
- Robot obstacle avoider (Penghindar halangan)
- Radar pendeteksi benda asing
- Pengukur tinggi badan
- Pengukur ketinggian air
Project 12. PENDETEKSI GERAK
Untuk mendeteksi gerakan, diperlukan sensor gerak yang biasa disebut Passive Infra Red (PIR),
yang cara kerjanya adalah mendeteksi adanya perbedaan/perubahan suhu sekarang dan
sebelumnya.
/*
Motion detector
*/
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(motionPin, INPUT);
}
void loop()
{
senseMotion = digitalRead(motionPin); // membaca nilai sensor gerak
if (senseMotion == HIGH) { // jika terdeteksi ada gerakan
digitalWrite(ledPin, HIGH);
delay(2000);
} else { // jika tidak ada gerakan
digitalWrite(ledPin, LOW);
}
}
Project 13. PENGENDALI PERALATAN LISTRIK DENGAN REMOTE CONTROL TV
Sensor yang dapat menangkap signal dari remote control TV disebut Infra Red Decoder (IR
Decoder). Setiap tombol remote control memiliki nilai yang berbeda. Kita bisa menangkap nilai
tombol yang diinginkan dengan menampilkannya pada layar monitor dan memberikan perintah
tertentu untuk tombol tersebut.
Catatan:
- Gunakan rangkaian lampu traffict light sebagai
output
- Sinyal remote control yg ditangkap IR
Decoder dan nilainya ditampilkan dilayar
monitor.
- Selanjutnya, tombol yang diinginkan (misal:
1,2,3) dapat diberi perintah untuk
menyalakan LED 1, 2 atau 3
#include <IRremote.h>
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
unsigned long last = millis();
void loop() {
if (irrecv.decode(&results)) {
// If it's been at least 1/4 second since the last
if (millis() - last > 250) {
key = results.value, HEX;
Serial.println(key); // Mengetahui nilai tombol remote
if(key == 16) {
Serial.println("tombol 1"); // jika ditekan tombol 1
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
if(key == 2064) {
Serial.println("tombol 2"); // jika ditekan tombol 2
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
if(key == 1040) {
Serial.println("tombol 3"); // jika ditekan tombol 3
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
}
}
last = millis();
irrecv.resume(); // Receive the next value
}
}