Arduino
Disusun Oleh :
Rausan Fikri, S.Si
Herjuno Aji Prayogo, S.Kom
1
Modul 1
Pertemuan
Materi Deskripsi Materi
ke-
1 Mengenal Mikrokontroller Mikrokontroler dan Kegunaannya
Perbedaan antara Mikrokontroler
dengan Mikroprosesor
CISC & RISC
2 Arduino Apa Itu Arduino
Jenis-jenis Board Arduino
Teori Arduino Nano ATmega328
1 Konfigurasi Pin Arduino Nano
3 Pengenalan Bahasa C Struktur Penulisan Pemograman C
4 Penjelasan kaki led Anoda dan katoda pada LED
Penggunaan breadboard agar rangkaian
5 Penjelasan Jalur Breadboard berjalan dengan baik dan tidak terjadi
korslet.
1 Input Output Blinking Led
Praktik
Variabel, Tipe Data & #define
Teori
1. Mengenal Mikrokontroller
1.1. Mikrokontroler dan Kegunaannya
Menurut Wikipedia yang namanya Mikrokontroler atau biasa disingkat MCU
(Microcontroller Unit) merupakan sebuah komputer kecil yang dikemas dalam satu
IC (Integrated Circuit) berisikan sebuah prosesor, memory dan peripherals
Input/Output yang terprogram.
Penggunaan teknologi mikrokontroler dapat kita temui pada peralatan
elektronik dirumah seperti remote televisi, telepon digital, mesin cuci dll.
Pengaplikasian teknologi mikrokontroler dapat digunakan pada bidang otomatisasi
industri, akuisi data, telekomunikasi dll.
2. Arduino
2.1. Arduino dan Jenis Board
Arduino merupakan Open Board elektronik atau bisa disebut sebagai sistem
minimum board dari sebuah mikrokontroler yang sudah memiliki bootloader
sehingga pemrogramannya tidak menggunakan chip programer lagi melainkan hanya
melalui komunikasi serial. Arduino menjadi populer karena sangat mudah digunakan
bagi mereka yang tidak memiliki pengetahuan yang kuat tentang pemrograman
karena arduino sudah memiliki library yang banyak dan bersifat open source
sehingga sangat mudah digunakan.
Ada beberapa jenis produk development board & modul yang dikembangkan
oleh Arduino. Produk yang diberi nama Arduino dijual di USA saja sedangkan untuk
diluar USA diberi nama Genuino. Jenis produk Arduino dibedakan dalam beberapa
kategori yaitu Kategori Entry level, Enhanced Features, IoT (internet of Things),
Wearable & Retired.
Kategori Entry level Product diperuntukan bagi mereka yang ingin mulai belajar
pemrograman, mudah digunakan dan sangat cocok untuk project pertama anda.
Untuk kamu yang ingin melakukan project yang lebih complex dan memerlukan
board yang memiliki advanced functionalities dan performa yang cepat bisa memilih
kategori Enhanced features Product. Sedangkan bagi kamu yang ingin yang ingin
mengebangkan teknologi berbasis IoT bisa memilih IoT product. Info lebih lanjut
tentang produk Arduino bisa diliat disitus resminya (arduino.cc).
Setiap jenis Board arduino tidak memiliki mikrokontroler yang sama. Contohnya
pada Arduino Uno menggunakan chip ATmega328 yg merupakan mikrokontroler
keluaran ATMEL sedangkan pada Aduino 101 menggunakan chip Intel Curie besutan
Intel.
Spesifikasi dari Arduino Nano 3.0 dapat dilihat pada tabel 1 dibawah ini
(sumber :arduino.cc).
Tabel 1. spesifikasi Arduino Nano 3.0
Microcontroller ATmega328
Operating Voltage (logic
5V
level)
Input Voltage
7-12 V
(recommended)
Input Voltage (limits) 6-20 V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 8
DC Current per I/O Pin 40 mA
32 KB (ATmega328) of which 2 KB used by
Flash Memory
bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
Dimensions 0.73" x 1.70"
Length 45 mm
Width 18 mm
Weigth 5g
Kita dapat juga membuat sebuah objek dan mendefinisikan variabel pada
pre-processor
Servo myservo;
int val;
myservo merupakan objek dari Servo, sedangkan val merupakan variabel yang
tipe datanya integer.
Besar kecilnya huruf harus diperhatikan, alias case-sensitive. Artinya jika ada
salah menuliskasama sekali. Berikut struktur penulisan program Arduino
LED (Light Emitting Diode) memiliki dua kaki, yaitu anoda dan katoda. Anoda adalah
kutub positif dan katoda adalah kutub negatif. Anoda biasanya yang berkaki panjang, dan
kepalanya yang kecil.
5. Penjelasan Penggunaan Breadboard
PRAKTIKUM 1
Job 1
Schematic
Cathode
Anode
Anode
Cathode
ARDUINO LED
D13 - Resistor 220 ohm - Anoda
GND - Katoda
Kode Program
void setup() {
pinMode(13, OUTPUT); // menginstruksikan mode pin 13 sebagai OUTPUT
}
void loop() {
digitalWrite(13, HIGH); // menghidupkan LED, pin 13 diberi nilai HIGH
delay(1000); // delay 1 detik atau 1000 milisekon
digitalWrite(13, LOW); // mematikan LED, pin 13 diberi nilai LOW
delay(1000);
}
Job 2
Schematic
TASK :
Rangkai 3 led
Hidup dan matikan 3 led secara bersamaan dengan delay 1 detik setiap hidup
dan mati
Hidup dan matikan 3 led secara bergantian dengan delay 500 milisekon
Gunakan #define atau tipe data integer untuk mendefinisikan pin
Modul 2
Pertemuan
Materi Deskripsi Materi
ke-
Membandingkan dua nilai untuk
1 Operator Relasi
mengambil keputusan
Untuk menggabungkan banyak kondisi
2 Operator Logika
logika.
3 Pernyataan If Penjelasan dan penggunaan If
4 Pernyataan If - else Penjelasan dan penggunaan If - else
Teori
Pernyataan Nested If (if di Penjelasan dan penggunaan If di dalam
5
dalam if) if
2 Penjelasan dan penggunaan If - else if -
6 Pernyataan If - else if - else
else
Penjelasan dan penggunaan komunikasi
7 Komunikasi Serial
serial
Menghidupkan dan mematikan lampu
1 Digital Input Pull-Up
menggunakan pushbutton
Praktik Menghidupkan dan mematikan 2 lampu
2 Kendali 2 lampu secara bergantian menggunakan 1
pushbutton
Pengambilan Keputusan
1. OPERATOR RELASI
Untuk membandingkan dua buah nilai kita bisa menggunakan operator relasi.
Adapun operator relasi dalam bahasa C dapat dilihat pada Tabel 1.
Contoh :
X adalah bernilai 2
X == 2 --> TRUE
X != 2 --> FALSE
X>1 --> TRUE
X<1 --> FALSE
X <= 2 --> TRUE
X != 5 --> TRUE
2. Operator Logika
Operator logika digunakan untuk menggabungkan banyak kondisi logika yaitu kondisi
TRUE dan kondisi FALSE. Operator logika dapat digunakan di dalam if jika
menggunakan 2 kondisi atau lebih.
Contoh :
TRUE && TRUE --> TRUE
TRUE && FALSE --> FALSE
TRUE || FALSE --> TRUE
!(TRUE && TRUE) --> FALSE
FALSE || FALSE --> FALSE
3. Pernyataan if
int val = 51;
If (val > 50){ // kondisi terpenuhi, perintah di dalam if di eksekusi
digitalWrite(12,HIGH);
}
4. Pernyataan if-else
int val = 49;
if (val > 50){ //kondisi tidak terpenuhi
digitalWrite(12,HIGH);
}
else { // perintah di dalam else di eksekusi
digitalWrite(12,LOW);
}
If - else digunakan bila ada kondisi selain dari if, misalnya pada contoh diatas, jika
nilai dalam variabel val lebih besar daripada 50 makan pin D12 menjadi HIGH, lalu
untuk elsenya adalah kondisi selain if, jika nilai dalam variabel value lebih kecil atau
sama dengan 50 makan pin D12 menjadi LOW.
}
else if (val < 50 && val > 0){
digitalWrite(13,HIGH)
}
else {
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
If - else if - else digunakan jika terdapat banyak kondisi. Pada contoh diatas jika val
bernilai 50 sampai 100 maka pin 12 bernilai HIGH, jika val bernilai 1 sampai 49 maka
pin 13 bernilai HIGH, pada kondisi selain dari itu maka pin 12 dan 13 bernilai LOW.
7. Komunikasi Serial
void setup() {
// memulai komunikasi serial dengan baud rate 9600
serial.begin(9600);
serial.print(Booting Arduino);
serial.print(...............);
delay(1000);
serial.println(booting selesai);
void loop() {
serial.println(looping);
delay(1000);
}
Penjelasan :
serial.begin(9600) : memulai komunikasi serial dengan baud rate 9600
serial.print : print / cetak tulisan yang diinginkan
serial.println : cetak tulisan sekaligus cetak enter setelah menulis tulisan
Setelah mengupload sketch diatas, buka serial monitor, icon pada pojok kanan atas
arduino IDE
Setelah terbuka, pastikan baud ratenya sesuai dengan yang ada di sketch yang diupload
Praktikum
Job 1
Digital Input Pullup
Schematic
KODE PROGRAM
void setup() {
void loop() {
int tombol= digitalRead(2);
delay(50);
//INPUT_PULLUP menjadikan kondisi awal pin menjadi HIGH
// jika tombol di tekan maka kondisi pin menjadi LOW
if (tombol== HIGH) { // jika tombol dilepas, lampu menjadi mati
digitalWrite(13, LOW);
} else { //jika tombol ditekan, lampu menjadi hidup
digitalWrite(13, HIGH);
}
}
Komunikasi serial
Serial print
void setup() {
Serial.begin(9600);
pinMode(2, INPUT_PULLUP); // setting sebagai pull up resistor
pinMode(13, OUTPUT);
void loop() {
Job 2
Kendali 2 lampu
Skema
D5 - R1 - LED1 -GND
D6 - R2 - LED2 - GND
Kode PROGRAM
int led1 = 13;
int val = 0;
void setup() {
//mulai komunikasi serial
Serial.begin(9600);
void loop() {
//baca nilai pushbutton
int sensorVal = digitalRead(2);
if (sensorVal == LOW) {
if (val == 0){
digitalWrite(led1, HIGH);
Serial.println(lampu hidup);
}else if (val == 1){
digitalWrite(led1, LOW);
Serial.println(lampu mati);
}
val = val + 1;
if (val > 1) {
val = 0;
}
}
delay(500);
}
Tugas :
Modul 3
Pertemuan
Materi Deskripsi Materi
ke-
Analog Vs Digital
Analog Vs Digital, ADC dan
1 ADC (Analog Digital Converter)
PWM
Teori PWM (Pulse Width Modulation)
Looping For
3 2 Perulangan (Looping)
Looping While
1 ADC Memonitor nilai dari potensiometer
Praktik Mengontrol nyala led menggunakan
2 PWM
PWM, bisa terang, dan redup, atau mati
Sebagai contoh kita ingin mengetahui berapa nilai input pin adc yang terbaca jika Vin
sebesar 3 v dengan tegangan referensi sebesar 5 v dan nilai resolusi ADC 1023
(10bit).
Diketahui : Vin = 3v
Vref= 5v
R=1023
Nilai input pin ADC yang terbaca (x)?
Vin
x R
Vref
3
x x1023
5
x 614
Jika kita ingin mengubah nilai 614 (yang merupakan nilai desimal) menjadi nilai biner
maka cara perhitungannya.
614
307 sisa 0
2
307
153 sisa 1
2
153
76 sisa 1
2
76
38 sisa 0
2
38
19 sisa 0
2
19
9 sisa 1
2
9
4 sisa 1
2
4
2 sisa 0
2
2
1 sisa 0
2
1
0 sisa 1
2
Sedangkan untuk mencari nilai dari Duty Cycle kita bisa menggunakan
persamaan 1.2 dibawah ini
tHIGH
D 100% (1.2)
ttotal
Keterangan:
D = Duty cycle
tHIGH = waktu pada saat keadaan HIGH (lebar pulsa)
Ttotal = total waktu dalam satu gelombang (periode)
Untuk memahami lagi tentang duty cycle bisa kita lihat pada Gambar 2 dibawah
ini :
0
1
2
3
4
5
6
7
8
9
while (kondisi){
Statement;
}
int i = 0;
while (i<10){
Serial.println(i);
i++;
}
Pertama variabel i diberi nilai 0, lalu while akan terus mengulang dengan kondisi i <
10. jika i telah = 10 maka while akan berhenti. Output dari contoh kode while adalah
0
1
2
3
4
5
6
7
8
9
Job 1_ADC
Schematic
PINOUT POTENSIOMETER
Kode Program
int analogPin = 0;
int nilai = 0;
void setup(){
Serial.begin(9600);
}
void loop()
{
nilai = analogRead(analogPin);
Serial.println(nilai);
delay(500);
}
TASK
Rangkai dengan
Job 2 PWM
Schematic
Cathode
Anode
Anode
Cathode
Kode Program
Contoh 1
void setup() {
analogWrite(9, 255);
}
void loop() {
Contoh 2
void setup() {
analogWrite(9, 50);
}
void loop() {
Contoh 3
void setup() {
analogWrite(9, 5);
}
void loop() {
Task :
- Gabungkan dengan potensiometer sehingga ketika potensiometer di putar maka akan
mengontrol nyala LED.
- kontrol PWM dengan menggunakan looping for & while
Modul 4
Pertemuan
Materi Deskripsi Materi
ke-
1 Module Driver Motor L298N Fungsi dan pinout dari L298N
Teori
2 Modul Relay Fungsi dan cara kerja Relay
Menghidupkan dan mematikan lampu
4 1 L298N
menggunakan pushbutton
Praktik Menghidupkan dan mematikan 2 lampu
2 Relay secara bergantian menggunakan 1
pushbutton
Output 1 Output 4
Output 3
Output 2
Vin
GND 5V
7. Modul Relay
Bagaimana cara kita untuk mengontrol sebuah perangkat yang menggunakan
arus listrik AC (Alternate current) dengan mikrokontroler. Seperti yang kita ketahui
Output arus dari mikrokontroler menggunakan DC dan arusnya juga tidak besar
sehingga untuk mengontrol perangkat yang menggunakan Arus AC kita mesti
menggunakan sebuah saklar yang dapat dikontrol oleh mikrokontroler. Menurut
wikipdia Relai adalah suatu peranti yang menggunakan elektromagnet untuk
mengoperasikan seperangkat kontak sakelar.
Job 1
Skema
Konfigurasi pin:
in1 hubungkan ke pin D2
In2 hubungkan ke pin D3
EnA hubungkan ke D9
Kode Program
Contoh 1
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(9, HIGH);
Contoh 2
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(9, HIGH);
}
Contoh 3
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(9, LOW);
TASK
Gunakan teknik pwm untuk mengatur kecepatan motor
Gunakan potensiometer untuk mengatur kecepatan motor dc
Job 2 Relay
Skema
D2 - IN
5v - VCC
GND - GND
Task
1. Hidupkan LAMPU 220V (set pin D2 menjadi LOW)
2. Matikan LAMPU 220v (set pin D2 menjadi HIGH)
Modul 5
Pertemuan
Materi Deskripsi Materi
ke-
Penjelasan Singkat tentang sensor
1 Sensor Ultrasonik
ultrasonik
Teori 2 LCD Penjelasan singkat LCD
Real Time Clock, modul jam untuk
3 RTC
arduino
5 Mendeteksi jarak menggunakan
1 Ultrasonik HC-SR04, ditampilkan pada serial
monitor
Praktik
2 LCD Menampilkan tulisan pada LCD
Mengambil data jam dari RTC,
3 RTC
ditampilkan pada serial monitor
1. Sensor Ultrasonik
Sensor Ultrasonik adalah alat elektronika yang kemampuannya bisa mengubah
dari energy listrik menjadi energy mekanik dalam bentuk gelombang suara ultrasonik.
Sensor ini terdiri dari rangkaian pemancar Ultrasonik yang dinamakan transmitter
dan penerima ultrasonik yang disebut receiver. Alat ini digunakan untuk mengukur
gelombang ultrasonik.
Pada sensor ultrasonik HC-sr04 dapat dilihat transmitter (bulatan kiri) dan
receiver (bulatan kanan), terdapat juga 4 pin, yaitu untuk daya dan komunikasi
dengan mikrokontroler.
2. LCD (Liquid Crystal Display)
LCD 16x2 adalah salah satu lcd yang sering digunakan dalam berbagai project
arduino, karena mudah didapat dan mudah untuk diprogram dengan arduino.
Library untuk lcd ini juga sudah ada di arduino.
Praktikum
Job 1
Ultrasonik
Kode
Masukkan dulu library NewPingMaster pada masing-masing folder library
arduino. Defaultnya di folder Documents > Arduino > library.
#include <NewPing.h>
void loop() {
delay(50); //tunggu 50 ms untuk mendeteksi jarak, minimal delay 29 ms
Serial.print("Ping: ");
// Kirim sinyal dan dapatkan jarak, bila 0 berarti diluar jarak maksimal atau eror
Serial.print(sonar.ping_cm());
Serial.println("cm");
}
Job 2
LCD (Liquid Crystal Display)
Skema
sc
Rangkaian LCD
LCD RS pin ke digital pin 12
LCD Enable pin ke digital pin 11
LCD D4 pin ke digital pin 5
LCD D5 pin ke digital pin 4
LCD D6 pin ke digital pin 3
LCD D7 pin ke digital pin 2
Kode
#include <LiquidCrystal.h>
void setup() {
lcd.clear();
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Kedai Techno");
lcd.setCursor(0, 1);
lcd.print("Arduino Nano v3");
}
void loop() {
}
Job 3
RTC (Real Time Clock)
Rangkaian
VCC ke 5v
GND ke GND
SCL ke A5
SDA ke A4
Program
Pada Arduino IDE, buka example
File > Example > RTClib > ds3231
// Date and time functions using a DS3231 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
void setup () {
#ifndef ESP8266
while (!Serial); // for Leonardo/Micro/Zero
#endif
Serial.begin(9600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
}
void loop () {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
delay(3000);
}
Task :
1. Tampilkan jarak dari sensor ultrasonik ke LCD
2. Tampilkan jam dari rtc ke LCD
3. Tampilkan jarak dan jam ke LCD
Modul 6
Pertemuan
Materi Deskripsi Materi
ke-
1 Interupsi Interupsi pada arduino
Teori 2 Komunikasi I2C I2C pada arduino
3 Array Array pada pemrograman Arduino (C)
3 Interupsi eksternal menggunakan
1 Interupsi
pushbutton
Praktik Mengkomunikasikan 2 arduino, 1
2 Komunikasi I2C
menjadi slave, 1 menjadi master
3 Array Contoh penggunaaan array
1. Interupsi (Interrupts)
Pada Arduino Uno, Nano, Mini atau yang berbasis atmega328 pin interupsi
terdapat pada pin 2 dan 3. Untuk arduino yang lain, dapat kita lihat pada tabel
berikut.
Board Pin Interupsi
Uno, Nano, Mini, dan 328-based 2, 3
Mega, Mega2560, MegaADK 2, 3, 18, 19, 20, 21
Micro, Leonardo, dan 32u4-based 0, 1, 2, 3, 7
Zero semua pin digital, kecuali 4
MKR1000 Rev.1 0, 1, 4, 5, 6, 7, 8, 9, A1, A2
Due Semua pin digital
101 Semua pin digital
Inter-Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial
dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun
menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data)
yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang
dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave.
Master adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk
sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan
membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.
Sinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge yang
disimbolkan dengan ACK Setelah transfer data oleh master berhasil diterima slave,
slave akan menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan
membuat SDA menjadi 0 selama siklus clock ke 9. Ini menunjukkan bahwa Slave
telah menerima 8 bit data dari Master.
Pada arduino, komunikasi I2C telah dibuat library nya, yaitu Wire Library.
Library ini mampu membuat arduino berkomunikasi dengan perangkat I2C. Pada
arduino Uno dan Nano, pin I2C terdapat pada A4 (SDA) dan A5 (SCL)
3. Array
Array (larik) merupakan suatu variabel yang merepresentasikan daftar (list) atau
kumpulan data yang memiliki tipe data sama. Array merupakan konsep yang penting
dalam pemrograman, karna array memungkinkan kita untuk menyimpan data dalam
jumlah banyak dan terindeks.
Misalkan ada kumpulan data bertipe int yaitu angka 1, 2, 3, 4, dan 5. Kumpulan
data ini dapat disajikan dalam bentuk Array karena memiliki tipe data yang sama
yaitu Int. Misal kumpulan data tadi kita beri nama Angka sehingga jika disajikan
dalam bentuk array akan menjadi Int Angka[]={1, 2, 3, 4, 5} atau Int Angka[5]={1, 2, 3,
4, 5}. Pada sebuah array, index array dimulai dari indeks ke-0, sehingga pada array
Angka[], angka 1 berada di indeks ke-0 (Array[0]), angka 2 berada di indeks ke-1
(Array[1]), dan seterusnya. Sedangkan pada pendeklarasian Array, Int Angka [5]
berarti Array Angka dapat menampung 5 masukan nilai Int.
Praktikum
JOB 1 - Interupsi
Skema
Kode Program
void setup() {
pinMode(ledPin, OUTPUT);
// mode input pullup, pada saat terbuka (tombol tidak ditekan), bernilai HIGH,
pinMode(interruptPin, INPUT_PULLUP);
// pasang interup pada pin 2,
// pemicunya CHANGE yaitu perubahan nilai LOW/HIGH pada pin/tombol
void loop() {
digitalWrite(ledPin, state);
}
void blink() {
state = !state;
}
Task :
1. Ubah CHANGE menjadi FALLING, dan RISING
2. Tambahkan komunikasi serial, lalu berikan keterangan state lewat serial pada
saat state berubah
JOB 2 - I2C
Skema
#include <Wire.h>
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
}
byte x = 0;
void loop() {
Wire.beginTransmission(8); // transmit to device #8
Wire.write("suti"); // sends five bytes
//Wire.write(x); // sends one byte
Wire.endTransmission(); // stop transmitting
// x++;
delay(500);
#include <Wire.h>
void setup() {
Wire.begin(8); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
JOB 3 - ARRAY
int i = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (i < 5) {
Serial.print("Variabel angka indeks ke ");
Serial.print(i);
Serial.print(" adalah ");
Serial.println(angka[i]);
i++;
}
if (i == 5) {
i = 0;
}
delay(1000);
}
Task :
1. panggil urutan array secara berurutan mulai dari yang terbesar (indeks ke 4) ke
yang paling kecil (indeks 0)