Uploaded by Ismi Maulani Fauziah

laprak arduino

advertisement
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); }
Download