JTD - POLINEMA
MODUL I
ARDUINO PROGRAMMING
1. PENGANTAR
Board minimum sistem dari Arduino Nano mempunyai konfigurasi dan fungsi pin
sebagai berikut:
#include xxxxx
void setup()
{
// coding untuk Setup
}
void loop()
{
// Main Program
}
Sedangkan operator-operator yang umum digunakan dapat dilihat pada table berikut :
Operator Perintah
Kendali if (logika) { code }
if (logika) { code1} else { code2 }
for (awal; akhir; increment/decrement)
{ code }
WIRELESS NETWORK PROJECT
JTD - POLINEMA
switch(variable) {
case konstanta1 : { code ; break ; }
case konstanta2 : { code ; break ; }
default : { code; break; }
while (logika) { code ; code_kendali }
LATIHAN I
1. Langkah latihan
a. Rangkai Arduino dan LED sebagai berikut:
void setup()
{
pinMode( D2, OUTPUT);
pinMode( D3, OUTPUT);
pinMode( D4, OUTPUT);
pinMode( D5, OUTPUT);
}
void loop()
{
digitalWrite( D2, HIGH);
digitalWrite( D3, LOW);
digitalWrite( D4, HIGH);
digitalWrite( D5, LOW);
}
2. Pengamatan Port
Tabel 3. Pengamatan Port
Data
WIRELESS NETWORK PROJECT
JTD - POLINEMA
3. Tugas Mandiri
3. KOMUNIKASI SERIAL
Untuk dapat menggunakan port serial Asinkron (UART) maka langkah yang harus
dilakukan adalah :
a. Mendefinisikan parameter komunikasi serial pada blok setup. Umumnya setting
dilakukan pada parameter kecepatan transfer data saja (Baut rate). Perintah
yang harus diketikkan adalah:
Serial. Begin( Baut_rate )
b. Melakukan aksi menulis data lewat komunikasi serial pada blok loop. Berikut ini
perintah yang umum digunakan dalam akses komunikasi serial.
LATIHAN II
1. Langkah Latihan
a. Ketik dan downloadkan program berikut
int Data;
void setup()
{
Serial.begin(9600);
Data = 123;
Serial.println(Data);
Serial.println(Data, BIN);
Serial.println(Data, HEX);
}
WIRELESS NETWORK PROJECT
JTD - POLINEMA
void loop()
{
2. Hasil Pengamatan
Tabel 5. Latihan Pengiriman Data Serial
Tipe Data Hasil Pengamatan
3. Tugas Mandiri
LATIHAN II
1. Langkah Latihan
a. Ketik dan downloadkan program berikut
char Text[20];
int n = 0;
boolean Tanda = false;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Tanda)
{ Serial.println(Text);
Tanda = false;
}
}
WIRELESS NETWORK PROJECT
JTD - POLINEMA
void serialEvent()
{
while (Serial.available())
{
char data = (char)Serial.read();
Text[n] = data; n++;
if (data == '_') { Tanda = true; n=0; }
}
}
b. Amati pada layar Serial Monitor (Menu Tool Serial Monitor)
2. Hasil Pengamatan
Tabel 6. Latihan Pengiriman Data Serial
Data Hasil Pengamatan
3. Tugas Mandiri
4. ADC
Pin input ADC dalam Arduino ditandai dengan nama A0 sampai A7. Setiap tegangan
Analog DC tertancap pada pin A0 sampai A7 tersebut akan dikonversi menjadi data
digital dengan lebar data 10 bit ( 0 1023D) . Hubungan antara level tegangan Input
Analaog (Vi) dengan Tegangan Referensi (Vref dalam Gambar 1 ditunjukkan
dengan pin Aref) dapat dinyatakan dengan table berikut ini:
Tabel 6. Konversi Vi menjadi Data Digital 10 bit
Vref Data Keterangan
5V Vi * 204.6 Vi max = 5V
3.3 V Vi * 310 Vi max = 3.3V
1.1V Vi * 930 Vi max = 1.1V
Vx (Vi / Vx) * 1023
WIRELESS NETWORK PROJECT
JTD - POLINEMA
Untuk membaca data analog melalui ADC, maka hal-hal yang perlu dilakukan adalah:
a. Menetapkan nilai Vref sebesar 5V, 3.3 V atau 1.1V secara perangkat keras (pin
Aref ) maupun coding (lihat kembali Gambar 1.)
analogReferensi(5 atau 3.3 atau 1.1 atau EXT)
b. Lakukan proses pembacaan dengan perintah:
int Data = analogRead( A0 sampai A7 );
LATIHAN IV
1. Langkah Latihan
a. Ketik dan downloadkan program berikut:
char Text[20];
int n = 0;
boolean Tanda = false;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Tanda)
{
int Data = analogRead(A0);
Serial.print(Data);
Serial.println('_');
Tanda = false;
}
}
WIRELESS NETWORK PROJECT
JTD - POLINEMA
void serialEvent()
{
while (Serial.available())
{
char data = (char)Serial.read();
Text[n] = data; n++;
if (data == '_') { Tanda = true; n=0; }
}
}
2. Hasil Pengamatan
Tabel 7. Latihan ADC dan Pengiriman Data Serial
Vin Hasil Pengamatan
3. Tugas Mandiri
LATIHAN V
1. Langkah Latihan
a. Ketik dan downloadkan program berikut
char Text[20];
int n = 0;
boolean Tanda = false;
int Data = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Tanda)
{
Baca();
Serial.print(Data);
Serial.println('_');
Tanda = false;
}
}
void Baca()
{
int Tempo=0;
Data = 0;
for (int k=0; k <= 4; k++)
{
Tempo = analogRead(A0);
delay(40);
Data = Tempo + Data;
}
Data /= 5;
}
WIRELESS NETWORK PROJECT
JTD - POLINEMA
void serialEvent()
{
while (Serial.available())
{
char data = (char)Serial.read();
Text[n] = data; n++;
if (data == '_') { Tanda = true; n=0; }
}
}
b. Amati pada layar Serial Monitor (Menu Tool Serial Monitor)
2. Hasil Pengamatan
3. Tugas Mandiri