MODUL 1 PENGANTAR PROTEUS DAN PEMROGRAMAN ARDUINO Tugas 1 Modifikasi program sehingga waktu nyala lebih lama dibandingkan saat mati, lakukan untuk untuk kondisi sebaliknya. Pseudocode : Nyala lebih lama Mati lebih lama int lampuLED = 13; int lampuLED = 13; void setup() { void setup() { pinMode (13,OUTPUT); pinMode (13,OUTPUT); } } void loop() { void loop() { digitalWrite (13, HIGH); digitalWrite (13, HIGH); delay (1000); delay (100); digitalWrite (13, LOW); digitalWrite (13, LOW); delay (100); delay (1000); } } Tugas 2 Modifikasi program dengan menambahkan 2 buah led dan menyambungkan pada output pin yang lain. Buat program agar led akan nyala dan mati secara bersama-sama. Pseudocode : int lampuLED1 = 13 ; int lampuLED2 = 12 ; int lampuLED3 = 11 ; void setup (){ pinMode (13, OUTPUT); pinMode (12, OUTPUT); pinMode (11, OUTPUT); } void loop(){ digitalWrite (13, HIGH); digitalWrite (12, HIGH); digitalWrite (11, HIGH); delay (1000); digitalWrite (13,LOW); digitalWrite (12,LOW); digitalWrite (11,LOW); delay (1000); } Tugas 3 Pseudocode : int LED1 = 13 ; pinMode (8, OUTPUT); pinMode (7, OUTPUT); } int LED2 = 12 ; int LED3 = 11 ; int LED4 = 10 ; int LED5 = 9 ; int LED6 = 8 ; int LED7 = 7 ; void loop() { digitalWrite (13, HIGH); delay (100); digitalWrite (12,HIGH); delay (100); digitalWrite (11, HIGH); void setup() { pinMode (13, OUTPUT); pinMode (12, OUTPUT); pinMode (11, OUTPUT); pinMode (10, OUTPUT); pinMode (9, OUTPUT); delay (100); digitalWrite (10, HIGH); delay (100); digitalWrite (9, HIGH); delay (100); digitalWrite (8, HIGH); digitalWrite (7,HIGH); digitalWrite (13,LOW); delay (100); digitalWrite (12,LOW); delay (100); digitalWrite (11,LOW); delay (100); digitalWrite (10,LOW); delay (100); digitalWrite (9,LOW); delay (100); digitalWrite (8,LOW); delay (100); digitalWrite (7,LOW); } MODUL 2 DIGITAL INPUT DAN KONTROL PROGRAM Tugas 1 Jalankan program pada proteus dan pelajari karakteristik input port pada arduino dan perintah if... else Pseudocode : const int buttonPin = 2; const int ledPin = 13; void loop() { buttonState = digitalRead(2); // variables will change: int buttonState = 0; if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); void setup() { } pinMode(ledPin, OUTPUT); else { pinMode(buttonPin, INPUT); digitalWrite(ledPin, LOW); } } Tugas 2 Modifikasi program dari tugas 1, tambahkan dua input lagi (pin 3 dan pin 4) dan dua buah lampu led. LED 1 ON Jika pin 2 HIGH dan OFF jika pin 2 LOW LED 2 ON Jika pin 3 HIGH dan OFF jika pin 3 LOW LED 3 ON Jika pin 4 HIGH dan OFF jika pin 4 LOW Pseudocode : const int buttonPin1 = 2; pinMode(ledPin2, OUTPUT); const int ledPin1 = 13; pinMode(buttonPin3, INPUT); const int buttonPin2 = 3; pinMode(ledPin3, OUTPUT); const int ledPin2 = 12; } const int buttonPin3 = 4; void loop() { const int ledPin3 = 11; buttonState1 = digitalRead(2); buttonState2 = digitalRead(3); int buttonState = 0; buttonState3 = digitalRead(4); int buttonState1 = 0; if (buttonState1 == HIGH) { int buttonState2 = 0; int buttonState3 = 0; digitalWrite(ledPin1, HIGH); } else if (buttonState1 == LOW){ digitalWrite(ledPin1, LOW); void setup() { } pinMode(buttonPin1, INPUT); if (buttonState2 == HIGH){ pinMode(ledPin1, OUTPUT); digitalWrite (ledPin2, HIGH); pinMode(buttonPin2, INPUT); } else if (buttonState2 == LOW){ digitalWrite (ledPin2, LOW); else if (buttonState3 == LOW){ } digitalWrite (ledPin3,LOW); if (buttonState3 == HIGH){ } digitalWrite (ledPin3, HIGH); } } Tugas 3 Buat program sehingga : Jika pin 2 HIGH pin 3 dan 4 LOW akan menyalakan 1 lampu Jika pin 3 HIGH pin 2 dan 4 LOW akan menyalakan 2 lampu Jika pin 4 HIGH pin 2 dan 3 LOW akan menyalakan 3 lampu Diluar kondisi diatas semua lampu mati Pseudocode : const int buttonPin1 = 2; const int buttonPin3 = 4; const int ledPin1 = 13; const int ledPin3 = 11; const int buttonPin2 = 3; int buttonState = 0; const int ledPin2 = 12; int buttonState1 = 0; int buttonState2 = 0; } int buttonState3 = 0; if (buttonState3 == HIGH){ void setup() { digitalWrite (ledPin1, HIGH); pinMode(buttonPin1, INPUT); digitalWrite (ledPin2, HIGH); pinMode(ledPin1, OUTPUT); digitalWrite (ledPin3, HIGH); pinMode(buttonPin2, INPUT); delay (1000); pinMode(ledPin2, OUTPUT); } pinMode(buttonPin3, INPUT); else { pinMode(ledPin3, OUTPUT); digitalWrite (ledPin1 , LOW); } digitalWrite (ledPin2 , LOW); void loop() { digitalWrite (ledPin3 , LOW); buttonState1 = digitalRead(2); } buttonState2 = digitalRead(3); } buttonState3 = digitalRead(4); if (buttonState1 == HIGH) { digitalWrite(ledPin1, HIGH); delay (1000); } if (buttonState2 == HIGH){ digitalWrite (ledPin1, HIGH); digitalWrite (ledPin2, HIGH); delay (1000); MODUL 3 PULL-DOWN/PULL-UP DAN KONTROL PROGRAM FOR LOOP/WHILE LOOP MODUL 4 SERIAL MONITOR DAN LCD (LIQUID CRYSTAL DISPLAY) Tugas 1 Buat program serial monitor menggunakan kode program dan rangkaian pada proteus sesuai dengan yang ada pada petunjuk praktikum. Jalankan program pelajari alur program diatas. Rubah perintah serial.print() menjadi serial.println() Pseudocode : void setup(){ Serial.begin(9600); } void loop() { Serial.println("HelloWorld"); delay(1000); } Tugas 2 Buat program LCD menggunakan kode program dan rangkaian pada proteus diatas. Jalankan program pelajari alur program diatas. Pseudocode : #include <LiquidCrystal.h> void loop() { LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // set kursor kolom 0, baris 1 // (note: menghitung baris dimulai void setup() { dari 0): // Setting LCD kolom dan baris: lcd.setCursor(0, 1); lcd.begin(16, 2); // menampilkan angka setiap 1000 // Tulisan yang akan di tampilkan. milisecond: lcd.print("hello, world!"); } lcd.print(millis()/1000); } Tugas 3 Gabungkan aplikasi serial monitor dan LCD menjadi satu aplikasi Pseudocode : #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup(){ Serial.begin(9600); lcd.begin(16, 2); lcd.print("hello, world!"); } void loop() { lcd.setCursor(0, 1); Serial.println("HelloWorld"); delay(1000); lcd.print(millis()/1000); } Tugas 4 Salin program berikut dengan menambahkan 2 buah switch pada rangkaian tugas 3, pelajari program berikut : (seperti pada modul petunjuk praktikum) Pseudocode : #include <LiquidCrystal.h> const int buttonPin0 = 8; // the number of the pushbutton pin const int buttonPin1 = 9; // the number of the pushbutton pin // variables will change: int buttonState0 = 0;// variable for reading the pushbutton status int buttonState1 = 0; // variable for reading the pushbutton status // inisialisasi PORT yang akan digunakan LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // initialize the pushbutton pin as an input: pinMode(buttonPin0, INPUT); pinMode(buttonPin1, INPUT); Serial.begin(9600); // Setting LCD kolom dan baris: lcd.begin(16, 2); // Tulisan yang akan di tampilkan. lcd.print("Read Input"); delay(1000); // set kursor kolom 0, baris 0 lcd.setCursor(0, 0); lcd.print("PIN 1 :"); // set kursor kolom 0, baris 1 lcd.setCursor(0, 1); lcd.print("PIN 2 :"); // read the state of the pushbutton value: } void loop() { buttonState0 = digitalRead(buttonPin0); buttonState1 = digitalRead(buttonPin1); // (note: menghitung baris dimulai dari 0): if (buttonState0 == HIGH) { lcd.setCursor(9, 0); // menampilkan angka setiap 1000 milisecond: lcd.print("ON"); Serial.println("PIN 1 : ON "); } else { lcd.setCursor(9, 0); // menampilkan angka setiap 1000 milisecond: lcd.print("OFF"); } Serial.println("PIN 1 : OFF "); if (buttonState1 == HIGH) { lcd.setCursor(9, 1); // menampilkan angka setiap 1000 milisecond: lcd.print("ON"); Serial.println("PIN 2 : ON "); } else { lcd.setCursor(9, 1); // menampilkan angka setiap 1000 milisecond: lcd.print("OFF"); Serial.println("PIN 2 : OFF "); } } MODUL 5 MEMBACA INPUT ANALOG (ADC/ANALOG TO DIGITAL CONVERTER) Tugas 1 Buat program membaca data ADC dan hasil pembacaannya ditampilkan pada serial monitor, menggunakan contoh program 1 diatas perhatikan keluaran pada serial monitor Rubah perintah serial.print() menjadi serial.println() Pseudocode : const int analogInPin = A0; // Analog input pin that the potentiometer is attached to int sensorValue = 0; // value read from the pot void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); } void loop() { // read the analog in value: sensorValue = analogRead(analogInPin); // print the results to the serial monitor: Serial.print("sensor = "); Serial.println(sensorValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2); } Tugas 2 Buat program membaca data analog dan tampilkan hasilnya pada LCD Pseudocode : #include <LiquidCrystal.h> LiquidCrystal lcd (12, 11, 5, 4, 3, 2); const int analogInPin = A0; int sensorValue = 0; void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); lcd.begin (16,2); lcd.print (" Sensor :"); } void loop() { // read the analog in value: sensorValue = analogRead(analogInPin); // print the results to the serial monitor: Serial.println("sensor = "); Serial.println(sensorValue); lcd.setCursor (1,0); lcd.print ("Sensor : "); lcd.setCursor (1,1); lcd.print (sensorValue); delay(2); } Tugas 3 Rubah hasil pembacaan data ADC kedalam besaran tegangan menggunakan contoh program ke 2 tampilkan hasil di serial monitor dan LCD Pseudocode : #include <LiquidCrystal.h> LiquidCrystal lcd (12, 11, 5, 4, 3, 2); const int analogInPin = A0; int sensorValue = 0; float analogValue; void setup() { Serial.begin(9600); lcd.begin (16,2); lcd.print (" Sensor :"); } void loop() { sensorValue = analogRead(analogInPin); analogValue = 5.0 * (sensorValue /1023.0); Serial.print("sensor = "); Serial.println(analogValue); lcd.setCursor (0,0); lcd.print ("Sensor : "); lcd.setCursor (9,0); lcd.print (sensorValue); delay(2); } Tugas 4 Salin program berikut dengan menambahkan 2 buah LED pada rangkaian tugas 3, pelajari program berikut : (seperti pada modul petunjuk praktikum) Pseudocode : #include <LiquidCrystal.h> LiquidCrystal lcd (12, 11, 5, 4, 3, 2); const int ledPin0 = 8; const int ledPin1 = 9; const int analogInPin = A0; int sensorValue = 0; float analogValue; void setup() { pinMode(ledPin0, OUTPUT); pinMode(ledPin1, OUTPUT); Serial.begin(9600); lcd.begin (16,2); } void loop() { sensorValue = analogRead(analogInPin); analogValue = 5.0* (sensorValue /1023.0); Serial.print("sensor = "); Serial.println(analogValue); lcd.setCursor (0,0); lcd.print ("Sensor : "); lcd.setCursor (9,0); lcd.print (sensorValue); if (analogValue <1.50) { digitalWrite(ledPin0, LOW); digitalWrite(ledPin1, LOW); } if (analogValue >1.50) { digitalWrite(ledPin0, HIGH); digitalWrite(ledPin1, LOW); } if (analogValue >3.0) { digitalWrite(ledPin0, LOW); digitalWrite(ledPin1, HIGH); } if (analogValue >4.5) { digitalWrite(ledPin0, HIGH); digitalWrite(ledPin1, HIGH); } delay(100); }