Академический Документы
Профессиональный Документы
Культура Документы
void setup(){
void loop(){
digitalWrite(LED,HIGH);//LED menyala
digitalWrite(LED,LOW);//LED mati
}
//Proyek #2: Blink Empat LED
int ledKedua = 4;
int ledKetiga = 6;
int ledKeempat = 8;
void setup()
void loop()
{
kedipkanLED(ledPertama, 100);
kedipkanLED(ledKedua, 100);
kedipkanLED(ledKetiga, 100);
kedipkanLED(ledKeempat, 100);
kedipkanLED(ledKeempat, 100);
kedipkanLED(ledKetiga, 100);
kedipkanLED(ledKedua, 100);
kedipkanLED(ledPertama, 100);
delay(durasi);
delay(durasi);
Array adalah kumpulan variable dengan tipe yang sama. Sebuah array memiliki elemen2 yg dapat diakses
melalui indeksnya dimana indeks pertama dimulai dari nol, dengan kata lain bila sebuah array memiliki 5
elemen maka indeks nya yg dapat diakses mulai indeks ke-0 sampai ke-4. Format penulisan array tipe_data
nama_array[ ]={elemen_1,elemen_2,....,elemen_n};
Loops dengan for, struktur perulangan yg digunakan bila ingin melakukan pengulangan. Format penulisan
for(inisialisasi ; kondisi ; pencacah naik/turun){ ......pernyataan ; } misalnya contoh : for(int i = 0 ; x < 100 ; i++) {
println(x); } maka akan mencetak nilai variable i dari 0 sampai 99
/*
*/
void setup() {
pinMode(PinLed[i], OUTPUT);
void loop() {
digitalWrite(PinLed[i], HIGH);
delay(timer);
digitalWrite(PinLed[i], LOW);
delay(timer);
digitalWrite(PinLed[i], LOW);
}
/*
*/
int kondisiSaklar = 0; // Variabel val untuk menyimpan pernyataan pada pin input
void setup() {
void loop(){
if (kondisiSaklar == HIGH) {
} else {
Rangkaian Switch pengendali LED dengan metode Pull-Up Resistor. Saat Switch tidak ditekan, pin 7 terhubung
ke Vcc sehingga kondisinya HIGH. Kondisi HIGH ini disimpan di variable kondisiSaklar. Saat isi variable
kondisiSaklar diuji di if(kondisiSaklar == HIGH) maka hasilnya adalah TRUE sehingga instruksi
digitalWrite(LED,HIGH).
int lmpKuningKendaraan = 6;
int lmpHijauKendaraan = 5;
int lmpHijauPjlnkaki = 3;
void setup() {
pinMode(lmpMerahKendaraan, OUTPUT);
pinMode(lmpKuningKendaraan, OUTPUT);
pinMode(lmpHijauKendaraan, OUTPUT);
pinMode(lmpMerahPjlnkaki, OUTPUT);
pinMode(lmpHijauPjlnkaki, OUTPUT);
digitalWrite(lmpHijauKendaraan, HIGH);
digitalWrite(lmpMerahPjlnkaki, HIGH);
void loop() {
/* cek jika saklar ditekan dan tidak kurang 5 detik saat penekanan terakhir */
PeralihanLmp();
void PeralihanLmp() {
digitalWrite(lmpMerahPjlnkaki,LOW);//lmpmerahpejln off
digitalWrite(lmpHijauPjlnkaki, HIGH);//lmphijaupejln on
delay(250);
digitalWrite(lmpHijauPjlnkaki, LOW);
delay(250);
digitalWrite(lmpMerahPjlnkaki, HIGH);
delay(500);
delay(1000);
digitalWrite(lmpHijauKendaraan, HIGH);
saklarTime = millis();
Pada fungsi loop yang akan dieksekusi berulang-ulang, ada sebuah fungsi tambahan yakni blok void
peralihanLmp( ) yang akan dipanggil oleh loop saat saklar ditekan. Jika saklar tidak ditekan maka Lampu Hijau
Traffic Light dan Lampu Merah pejalan kaki akan terus menyala. Saat saklar ditekan, terjadi perubahan di
mana lampu merah traffic light menyala sedangkan lampu hijau pejalan kaki menyala. Lalu lampu ini akan
berkedip sebanyak 10 kali. Perhatikan instruksi for(int i = 0; x < 10; x++) . Di sini pejalan kaki bisa menyeberang
dengan aman dan waktu preset saklar adalah 5 detik (5000 ms) dihitung dari (millis( ) - saklarTime)>5000).
Pada fungsi setup, seperti biasa ada inisiasi penggunaan pin digital, pin 2 sebagai input digital terhubung ke
button, pin 3 dan 4 ke LED untuk pejalan kaki serta 5,6,7 untuk Traffic Light. Pada fungsi setup juga diawal
dikondisikan Lampu traffic light HIJAU menyala dan LAMPU MERAH pejalan kaki menyala.
Kendali LED dengan PWM
void setup(){
void loop(){
delay(20);//tunda 20 ms
for(i=255;i>0;i--){
delay(20);//tunda 20 ms
}
}
Pada for pertama pada void loop, Intensitas cahaya LED dimulai dari i = 0 yakni LED msh mati kemudian nilai i
ditambah mulai dari 0 sampai 254, dan nyala LED berangsur-angsur menjadi terang sampai nilai i = 254. Pada
for yg kedua terjadi sebaliknya.
Misalnya ketika nila i = 1 maka pada voltmeter akan menunjukkan tegangan (1/255) * 5 V = .... V dan saat i =
254 maka nilai tegangan mendekati 5 V
Output analog pada arduino Uno menggunakan pin digital 3,5,6,9,10 dan 11. Metode nya menggunakan Pulse
Width Modulation dimana pin output PWM Arduino menyediakan 8-bit dgn fungsi analog write() dgn nilai
minimum adalah 0 untuk 0 volt dan 255 untuk 5 volt.
void setup() {
// Menset semua pin array sbg output:
pinMode(ledPin[i], OUTPUT);
void loop() {
// ON-kan pin
if (i < ledLevel) {
digitalWrite(ledPin[i], HIGH);
else {
digitalWrite(ledPin[i], LOW);
void loop(){
delay(100);//tunda 20 ms
//Proyek #10: Baterai Tester
int pinProbe = A0; //pin A0 untuk probe positif baterai, //pin ground untuk probe negatif baterai
int NilaiAnalog = 0;
float tegangan = 0;
void setup()
pinMode(LEDBiru, OUTPUT);
pinMode(LEDHijau, OUTPUT);
pinMode(LEDMerah, OUTPUT);
void loop()
NilaiAnalog = analogRead(pinProbe);
tegangan = 0.0048*NilaiAnalog;
if ( tegangan >= 1.5 )
digitalWrite(LEDBiru, HIGH);
delay(2000);
digitalWrite(LEDBiru, LOW);
digitalWrite(LEDHijau, HIGH);
delay(2000);
digitalWrite(LEDHijau, LOW);
digitalWrite(LEDMerah, HIGH);
delay(200);
digitalWrite(LEDMerah, LOW);
delay(200);
}}
}
/* Proyek #11 Sensor Cahaya,
LED menyala pada kondisi lingkungan Gelap, dan padam bila kondisi lingkungan terang
*/
void setup() {
pinMode(pinLED, OUTPUT);
void loop() {
if(nilaiOutput <=300)
delay(200);
Pada instruksi nilaiOutput = map(pembacaanSensor,0,1023,0,500); melakukan pemetaan dari nilai sensor (0-
1023) menjadi 0-500. Selanjutnya bila nilaiOutput <= 300 maka deteksi yg diterima sensor adalah gelap
sehingga LED menyala.
Sensor LDR dalam rangkaian input analog Arduino menggunakan rangkaian pembagi tegangan. Ketika LDR
mendapat intensitas cahaya tinggi/kondisi terang resistansinya menurun sehingga tegangan pada pin analog
menjadi lebih tinggi dan sebaliknya.
Komponen : Arduino UNO, Resistor 10K dan 220 ohm, LED dan LDR serta Voltmeter DC
float sensor = 0;
float tegangan = 0;
int celsius = 0;
void setup()
pinMode(LEDBiru, OUTPUT);
pinMode(LEDHijau, OUTPUT);
pinMode(LEDMerah, OUTPUT);
void loop()
Serial.begin(9600);
sensor = analogRead(pinLM35);
tegangan=(sensor*5000/1024);
Serial.print(sensor);
Serial.println();
Serial.print("Temperatur :");
Serial.print(celsius);
Serial.print(" oC");
Serial.println();
digitalWrite(LEDBiru, HIGH);
delay(2000);
digitalWrite(LEDBiru, LOW);
}
else
digitalWrite(LEDHijau, HIGH);
delay(2000);
digitalWrite(LEDHijau, LOW);
digitalWrite(LEDMerah, HIGH);
delay(200);
digitalWrite(LEDMerah, LOW);
delay(200);
}}
}
// Proyek #13: Sensor PIR
void setup() {
void loop(){
} else {
noTone(pinbuzzer);//off-kan buzzer/alarm
/Proyek #14: Sensor Jarak mengetahui jarak obyek dengan indikator LED/
void setup(){
pinMode(LEDHijau, OUTPUT);
pinMode(LEDBiru, OUTPUT);
void loop()
Serial.print(val_sensor);
Serial.println();
switch(val_sensor){
break;
break;
break;
break;
digitalWrite(LEDKuning, HIGH);
digitalWrite(LEDMerah, HIGH);
digitalWrite(LEDHijau, HIGH);
digitalWrite(LEDBiru, HIGH);
delay(200);
digitalWrite(LEDMerah, LOW);
digitalWrite(LEDBiru, LOW);
digitalWrite(LEDHijau, LOW);
digitalWrite(LEDKuning, LOW);
delay(200);
break;
default:
digitalWrite(LEDBiru, LOW);
digitalWrite(LEDHijau, LOW);
digitalWrite(LEDMerah, LOW);
digitalWrite(LEDKuning, LOW);
}
#include<LiquidCrystal.h>
#define sensor 0
int Vin;
float Temperature;
float TF;
LiquidCrystal lcd(12,11,5,4,3,2);
void setup()
lcd.begin(16,2);
lcd.print("Temperature: ");
void loop()
Vin = analogRead(sensor);
Temperature= Vin/9.31;
TF = ((9*Temperature)/5)+32;
lcd.setCursor(0, 1);
lcd.print(TF);
lcd.print(" F");
delay(1000);
#include<LiquidCrystal.h>
#define sensor 0
int Vin;
float Temperature;
float TF;
LiquidCrystal lcd(12,11,5,4,3,2);
void setup()
analogReference(INTERNAL);
lcd.begin(16,2);
lcd.print("Temperature: ");
void loop()
Vin = analogRead(sensor);
Temperature= Vin/9.31;
TF = ((9*Temperature)/5)+32;
lcd.setCursor(0, 1);
lcd.print(TF);
lcd.print(" F");
delay(1000);
In the setup method we make a call to the analogReference method. This allows us to set the reference
voltage of the Arduino (i.e. the value used as the top of the input range). The reason we are using this is
because the LM35 only produces voltages from 0 to +1V, and setting the reference voltage to INTERNAL will
set it to 1.1 volts, as a result significantly improving the precision
Inside the loop method, we begin by reading the value from the analogue input, and then divide that reading
by 9.31. The reason we divide by 9.31 is because the range of our reading is 1024 and as we have set our
reference voltage to be 1.1 volts we calculate each “step” in the analog reading as being approximately equal
to 0.001074 volts(1.1/1024), or 1.0742 millivolts . As the LM35 reports 1 degree Celsius per 10 millivolts, this
means that for every (10 / 1.0742), we detect a one degree change i.e. every 9.31; so by dividing the reading
by 9.31 we get our temperature reading in Celsius.