Showing posts sorted by relevance for query arduino-9600. Sort by date Show all posts
Showing posts sorted by relevance for query arduino-9600. Sort by date Show all posts

Monday 18 May 2015

Menghidupkan 3 Buah Lampu Arduino dengan Compiler C#


Hai sobat jurikablog sebenarnya pengiriman data melalui serial port sangat sederhana, cukup menggunakan method Write dengan parameter berupa string yang ingin dikirim. disini jufrikablog mencontohkan jika sobat ingin membuat program compile untuk mematikan dan menghidupkan lampu pada arduino dengan simple


1. Alat dan bahan
    3 Buah software : arduino simulator / memakai proteus isis , virtual port setting , dan sharpdevelop atau visual studio c#
2. buat program compiler nya dengan design yang akan jadi seperti ini (komponen : button , serialport, timer, label, textbox)


3. lalu masukan program ini ke tombol send
    serialPort1.Write(textBox1.text);
4.dan pada button on  setting seperti ini (contoh pada button on untuk lampu led 1 memakai karakter 'a')
   Button2.Enabled = false;
   Button5.Enabled = true;
   serialPort.Write('a'); // lihat karakter a di arduino untuk menghidupkan lampu led a
dan pada button off kebalikannya (false dan truenya) dan sesuaikan pembacaan karaternya
  
5. pada void main formnya kita setting serial port open terlebih dahulu
    serialPort1.Open();
6. atur timer menjadi 500 ms dan ubah dari false jadi true
 
dan juga pada serialport atur com yang akan digunakan (misal com1)

7. pada program arduino buat seperti ini
int LEDA=13;
int LEDB=12;
int LEDC=8;


void setup()
{
 Serial.begin(9600);
 pinMode(LEDA,OUTPUT);
 pinMode(LEDB,OUTPUT);
 pinMode(LEDC,OUTPUT);

}

void loop()
{
 if (Serial.available())
{
  char inChar = (char)Serial.read();
  if(inChar=='a')digitalWrite(LEDA,1);
  else if (inChar=='b')digitalWrite(LEDB,1);
  else if (inChar=='c')digitalWrite(LEDC,1);
  else if (inChar=='d')digitalWrite(LEDA,0);
  else if (inChar=='e')digitalWrite(LEDB,0);
  else if (inChar=='f')digitalWrite(LEDC,0);
  else {
    digitalWrite(LEDA,0);
    digitalWrite(LEDB,0);
    digitalWrite(LEDC,0);
  }
}

}

8. Masukan program tersebut ke dalam rangkaian arduino tadi dengan cara seperti digambar
9. Setelah sukses setting com nya di db 9 nya (contoh com 3) dan baud rate 9600
10. lalu jalankan program di c# dan simulasi arduino nya cek video berikut sob :D
note : untuk menghubungkan virtual port bisa di setting dengan software virtual port bisa download disini

Monday 4 November 2013

KOMUNIKASI SERIAL

Pada post-an kali ini, saya akan membahas mengenai cara membuat "Komunikasi Serial". Tujuan mempelajari komunikasi ini adalah Memahami cara mengirimkan dan menerima data melalui periperal UART Arduino, mampu membuat program untuk mengirimkan data berbasis teks dan berbasis byte, dan mampu membuat program untuk menerima data secara pooling dan secara interupsi serial.

Kita disini menggunakan alat -alat seperti Proteus (ISIS 7), arduino IDE, serta laptop. Pada percobaan ini saya akan mengirimkan teks ke komputer berupa tulisan "Hello World" Pengiriman data ini menggunakan kecepatan transfer data / Baudrate sebesar 9600.

Langkah-langkah untuk membuat percobaan ini adalah :
  1. Pertama, tuliskan sintaks program di bawah ini, setelah itu lakukan kompilasi dan upload program ke sistem minimum Arduino,
  2. Bukalah Serial Monitor pada Arduino IDE (Ctrl + Shift + M).
  3. Lihat baik-baik, bahwa konfigurasi baudrate adalah 9600 seperti Gambar 5.2.
  4. Dan pastikan bahwa data teks yang dikirim adalah teks "Hello Word" yang dikirimkan Arduino diterima oleh Serial Monitor.

Friday 13 May 2016

BAHASA PEMROGRAMAN ARDUINO

A.Struktur
Dalam penulisan Program/ Sketch Menggunakan Arduino, ada dua fungsi yang harus ada hal ini dikarenakan arduino memiliki struktur dasar/ standart penulisan yaitu void setup, dan void loop, namun Arduino juga memiliki beberapa fungsi tambahan seperti komentar satu bari ( // ), Blok komentar (/*…*/), kurung kurawal ( { } ), Titik Koma ( ; ).

1.void setup( ) {   }
Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya/ di-Reset

Contoh ;
int LED = 3;
void setup(){
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop(){
}

2.void loop( ) {   }
Fungsi ini akan dijalankan setelah void setup  selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan dengan kata lain program yang ada di dalam kurung kurawal void loop akan mengunlang secara terus menerus.

3.Fungsi()
Digunakan untuk membuat sekumpulan program dengan memberikan label/ nama tertentu yang dapat dipanggil sewaktu- waktu dan fungsi ini biasanya digunakan untuk sekumpulan program yang akan sering dipanggil / dijalankan, sehingga program akan jauh lebih sederhana.

4.//(komentar satu baris)
Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

5./*  */(Blok Komentar)
Jika anda punya banyak catatan, maka hal itu dapat dituliskanpada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.

6.{   }(kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

7.;(titk koma)
Hamper baris kode pada Arduino harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan/ eror.

B.Struktur Pengaturan

Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan Arduino.

1.If dan Else
Berfungi untuk melakukan pengetesan atau pengujian kondisi sehingga apabila sebuah kondisi telah terpenuhi maka program/ sketch akan menjalankan Pernyataan yang berada di dalam kurung kurawal, namun jika tidak maka program akan melewati pernyataan tersebut, if sendiri memiliki beberapa bentuk dalam penulisannya 
-Bentuk pertama;
ini adalah bentuk if tunggal yang digunakan hanya untuk 1 kondisi, sehingga bila sudah tercapai kondisi tersebut jalankan pernyataan jika tidak lewati pernyataan.

Format penulisan :
If(kodisi){
pernyataan}

Contoh :
If (SensorPin > 100){
digitalWrite(13, HIGH);}

Program diatas menyatakan jika nilai Sensor Pin besar dari 100 maka nyalakan LED pada pin 13.

-Bentuk kedua;
Ini adalah bentuk kedua yang digunakan untuk kondisi if dengan satu pengecualian, jadi apabila if dalam kondisi tersebut program akan menjalankan  pernyataan1 jika tidak program akan menjalankan pernyataan2.

Format Penulisan :
if (kodisi){
Peryataan1}
else{
peryataan2}

Contoh :
If (SensorPin > 100){
digitalWrite (13, HIGH);}
else{
digitalWrite (13,LOW);}

-Bentuk Ketiga;
Pada bentuk ketiga ini if memiliki beberapa pengecualian, sehingga apabila dalam kondisi1 program akan menjalankan pernyataa1, jika tidak cek kondisi2 jika dalam kondisi2 jalankan pernyataan2 jika tidak cek kondisi 3 jika dalam kondisi 3 maka jalankan pernyataan3, jika tidak ada sama dengan kondisi1, kondisi2, kondisi3 maka jalankan pernyataan4.

Format Penulisan:
If(kondisi1){
Pernyataan1}
else if(kondisi2){
Pernyataan2}
else if(kondisi3){
Pernyataan3}
else {Pernyataan4}

Contoh :
If (SensorPin > 20){
digitalWrite (13, HIGH);}
else if(SensorPin > 40){
digitalWrite (12, HIGH);}
else if(SensorPin > 60){
digitalWrite (11 HIGH);}
else{ digitalWrite (11 HIGH);}

2.For
Digunakan bila anda ingin melakukan pengulangan kode didalam kurung kurawal beberapa kali, namun untuk melakukanya dibutuhkan sebuah counter, baik itu counter up ( i++ ), ataupun counter down ( i-- ), sebagai mana yang telah dilihat pada format penulisan i=0 menyatakan posisi awal,sedangkan# untuk jumlah pengulangan dan i++ adalah counter.

Format Penulisan :
for (int i = 0; i < #pengulangan; i++) {
pernyataan}
Contoh
for (int i =0; i <9; i++){    
pinMode(ledPins[i],OUTPUT);
}

3.Switch 
Digunakan untuk menguji suatu nilai pada variable dengan konstanta- konstanta tertentu, konstanta tersebut diawali dengan case dan diakhiri dengan break, jika variable sama dengan konstanta 1 maka jalankan pernyataan 1, jika variable sama dengan konstanta 2 maka jalankan pernyataan 2 dan begitu seterusnya  namun jika variable tidak sama dengan konstanta manapun maka jalankan default.

Format Penulisan :
switch (var) {
case 1:
//pernyataan 1
break;
case 2:
//pernyataan 2
break;
default: 
}

4.while 
Akan menjalankan intruksi yang ada di dalam kurung ()secara terus menerus dan tak terhingga, sampai ekspresi dalam kurung() menjadi salah(false) oleh sebab itu harus ada yang mengubah variable agar dapat keluar dari intruksi ini. 

Format Penulisan:
While(kondisi)
{peryataan(s)
}

5.Do-While
Bekerja dengan cara yang sama seperti while, dengan pengecualian bahwa kondisi ini di uji pada akhir program, sehingga program akan berjalan setidaknya sekali.

Format Penulisan:
do
{pernyataan
}
While(kondisi);


6.Break
Digunakan untuk  keluar dari do while dan while, untuk melewati kondisi normal. Hal ini juga digunakan untuk keluar dari pernyataan switch.

Contoh; 
for(x =0; x <255; x ++){
analogWrite(PWMpin, x);
sens =analogRead(sensor);  
if(sens > threshold){ 
x =0;
break;
}  delay(50);
}

7.Continue
Pernyataan melompati sisa literasi saat (do, for, atau if). Ini akan terus  memeriksa ekspresi kondisional dari loop, dan melanjutkan dengan literasi berikutnya.

Contoh;
for(x =0; x <255; x ++){
 if(x >40&& x <120){      // create jump in values
 continue; }
    analogWrite(PWMpin, x);
    delay(50);
}

8.Return
Return berguna untuk mengembalikan nilai dari fungsi ke  fungsi panggilan, jika diinginkan.
contoh:
int checkSensor(){       
if (analogRead(0) > 400) {
return 1;
else{return 0;}
}

9.go to
adalah intruksi lompat tak bersyarat, instruksi ini mengakibatkan eksekusi dilanjutkan ke alamat yang dituju oleh label .
Contoh;
for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto Label1;}
Label2}}
}
Label1:

C. Arithmetic
1.Aritmatika 
     Arduino IDE selain mendukung untuk  kompailer juga mendukung operator Aritmatika seperti yang ada dibawah ini.

-Sama dengan ( = )
Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).

-Penjumlahan( + )
 Penjumlahan
-Pengurangan( - )
 Pengurangan
-Perkalian( * )
 Perkalian
-pembagian( /)
 Pembagian
-Sisa pembagian ( % )
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).

2.Operasor Bitwisee
Operasi bitwise banyak digunakan dalam aplikasi mikrokontroler, misalnya untuk menguji kondisi bit pada Port 1 atau pergeseran bit dll. Ada enam buah operator bitwise diantaranya;

-Operator Geser kiri ( << )
Operator geser kiri akan mengeser ke kiri perbit sehingga bit 0 akan menggeser ke bit 1 dan bit 2 akan menggeser ke bit 3 dan seterunya, Untuk melakukan operasi bitwise geser kiri dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operator Geser kanan ( >> )
Operator geser kanan akan mengeser ke kanan perbit” misalnya bit 8 akan menggeser ke bit7 dan bit 7 akan menggeser ke bit 6 dan seterunya, Untuk melakukan operasi bitwise geser kanan dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operasi Bitwise AND (&)
Operator bitwise and (&) berfungsi untuk melakukan operasi logika AND bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh:
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a & b; // Hasil dalam biner : 1000

-Operasi Bitwise OR(|)
Operator bitwise OR (|) berfungsi untuk melakukan operasi logika OR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh :
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a | b;   // Hasil dalam biner : 1110

-Operasi Bitwise XOR (^)
Operator bitwise XOR (^) berfungsi untuk melakukan operasi logika XOR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.
Contoh :
int a = 12; // Dalam Biner : 1100
int b = 10;   // Dalam Biner : 1010
int c = a ^ b; //HarsilDalam Biner : 0110 

- Operasi Bitwise NOT (~)
Operatr bitwise NOT (~) berfungsi untuk melakukan operasi logika NOT pada bit, misalnya bit yang berlogika 0 berubah menjadi 1 dan logika 1 berubah menjadi0.

Contoh :
int a = 12; // Dalam Biner : 1100
int c = ~a //Hasil Dalam Biner : 0011

3.Operator Relasi/ Pembanding
Operator Relasi digunakan untuk membandingkan dua buah nilai atau kondisi. Operator relasi.

-Sama dengan ( == )
Sama dengan (misalnya: 14 == 10 adalah FALSE (salah) atau 10 == 10 adalah TRUE (benar))

-Tidak sama dengan ( != )
Tidak sama dengan (misalnya: 14 != 10 adalah TRUE (benar) atau 10 != 10 adalah FALSE (salah))

-Kecil dari ( < )
Lebih kecil dari (misalnya: 14< 10 adalah FALSE (salah) atau 14 < 14 adalah FALSE (salah) atau 10< 14 adalah TRUE (benar))

-Besar dari ( > )
Lebih besar dari (misalnya: 14> 10 adalah TRUE (benar) atau 14 > 14 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))

-Kecil/ sama dengan ( <= )
Kecil/ sama dengan (misalnya: 14 <= 10 adalah FALSE (salah) atau 14 <= 14 adalah TRUE (benar) atau 10 <= 14 adalah TRUE (benar))

-Besar / sama dengan ( >= )
Lebih besar dari (misalnya: 14 >= 10 adalah TRUE (benar) atau 14 >= 14 adalah TRUE (benar)) atau 12 >= 14 adalah FALSE (salah))

PERHATIAN
dalam penulisan operator relasi tanda tidak boleh salah hal ini dikarenakan kesalahan sedikit dalam penulisan tanda dapat menyebankan program/ sketch tidak berkerja sesuai dengan yang diharapkan misalnya : kita ingin membandingkan sebuah Variable dengan operasi relasi sama dengan (==)  tanda yang harus dituliskan adalah == jika kita hanya menuliskan = sekali saja maka instruksi yang dijalankan bukanya membandingkan malah memberi nilai pada Variable, selain dari itu jika kita ingin menusilkan operasi relasi besar sama dengan ( >= ) kita tidak boleh menulikanya terbalik ( => ), meskipun maknanya sama namun Arduino IDE tidak mengenal hal itu sehingga mengakibatkan eror pada saat Verify ( Kompailer ).

Thursday 16 April 2015

VB6.0 DAN DELPHI :: Koneksi Arduino Dengan Visual Basic 6.0 dan Delphi

Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. lebih lengkapnya baca disini
dengan VB berikut ini contoh potongan programnya.
  1. Program sensor suhu untuk input dari VB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// deklarasi variabel
float tempC;
int tempPin = 0;
void setup()
{
 // buka serial port, set baud rate 9600 bps
 Serial.begin(9600);
}
void loop()
{
 // baca data dari sensor
 tempC = analogRead(tempPin);
 // konversi analog ke suhu
 tempC = (5.0 * tempC * 100.0)/1024.0;
 // kirim data via serial berupa nilai biner
 Serial.print((int)tempC,BYTE);
 // tarik nafas sejenak
 delay(1000);
}
  1. Buat sebuah form pada VB6 dan salin program sebagai berikut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">
<pre class="brush:vb"><pre class="brush:vb"><pre class="brush:vb">Private Sub Form_Load()
  With MSComm1
    'non aktifkan dulu serial port
    If .PortOpen Then .PortOpen = False
    'set serial port yang ingin digunakan
    .CommPort = 3
    'set baud rate,parity,databits,stopbits
    .Settings = "9600,N,8,1"
    'set DTR and RTS
    .DTREnable = True
    .RTSEnable = True
    'aktifkan event oncomm event
    .RThreshold = 1
    'non aktifkan event oncomm
    .SThreshold = 0
    'aktifkan serial port
    .PortOpen = True
  End With 'MSComm1
  'tampilkan tanda derajat
  Label2.Caption = Chr(176) + "C"
End Sub
Private Sub MSComm1_OnComm()
  Dim strInput As String
  With MSComm1
    'test event data masuk
    Select Case .CommEvent
      Case comEvReceive
        'tampilkan data dari Arduino
        strInput = .Input
        Label1.Caption = Asc(Mid(strInput, 1, 1))
    End Select
  End With 'MSComm1
End Sub</pre>
</pre>
</pre>
<p> </p>
<p></p></span>



Saturday 16 May 2015

Serial received di c#


Hai sobat jufrikablog nah kali ini saya akan kembali lagi memberikan tutorial habis habisan tentang serial hahahahahahaha . yaitu serial received . langsung saja berikut prakteknya

1. Buat solution baru dan buat seperti ini di visula studio anda
2. Klik 2 kali pada form load misalnya, dan masukkan program ini
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace seri1
{
public partial class Form1 : Form
{
string rxString;
int[] lokasiY = new int[100];

public Form1()
{
InitializeComponent();
}
private Graphics objGraphic;

private void Form1_Load(object sender, EventArgs e)
{
objGraphic = CreateGraphics();
if (objGraphic == null)
return;
}

private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == “Connect”)
{
button1.Text = “Disconnect”;
serialPort1.Open();
//richTextBox1.text = “”;
//a = 0;
}
else
{
button1.Text = “Connect”;
serialPort1.Close();
}
}

void SerialPort1DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
rxString = serialPort1.ReadLine();
this.Invoke(new EventHandler(DisplayText));
}

private void DisplayText(object sender, EventArgs e)
{
richTextBox1.Text += rxString;
float tinggi = float.Parse(rxString);
tinggi = 179 – (tinggi / 1023 * 179);
// geser arraynya
for (int i = 0; i < 99; i++)
{
lokasiY[i] = lokasiY[i + 1];
}
lokasiY[99] = (int)tinggi;
}

private void timer1_Tick(object sender, EventArgs e)
{
Pen pena = new Pen(Color.Black);
int awalX = 0;
int titikMulaiX, titikMulaiY, titikAkhirX, titikAkhirY;
// hapus dulu semuanya
objGraphic.Clear(Color.White);
for (int i = 0; i < 99; i++)
{
titikMulaiX = awalX + i * 5;
titikMulaiY = lokasiY[i];
titikAkhirX = awalX + (i + 1) * 5;
titikAkhirY = lokasiY[i + 1];
objGraphic.DrawLine(pena, titikMulaiX, titikMulaiY, titikAkhirX, titikAkhirY);
}
}
}
}


3. Setelah program selesai, runningkan/jalankan programnya jika bisa dijalankan dan tidak ada eror maka lanjut ke arduino
4. buat program arduino ini dan upload ke arduino yang siertai potensio untuk mengatur tegangan input dan akan di baca di aplikasi
void setup() 
{ Serial.begin(9600); }
void loop()

 { int sensorValue = analogRead(A1); delay(500); Serial.println(sensorValue, DEC); }
5. setelah itu running programnya sob ;)

ini tampilannya jika tidak menggunakan potensio
sekian semoga bermanfaat :)

 

Sunday 1 December 2013

MENERIMA DATA DARI UART DENGAN SISTEM INTERUPSI

SEMANGAT PAGI sobat Blogger, pada kesempatan ini saya akan berbagi lagi nih, cara MENERIMA DATA DARI UART DENGAN SISTEM INTERUPSI. Cara kerja nya sama seperti SISTEM POOLING yaitu menerima data yang di berikan Arduino IDE kepada LCD penerima, TETAPI pada percobaan ini kita akan menggunakan SISTEM INTERUPSI bukan POOLING. Penerima data akan menggunakan BAUDRATE 9600. AYO SIMAK langkah-langkah di bawah ini :
  1. Seperti biasa, sebelum melakukan percobaannya kita harus membuat rangkaiannya. Rangkaian yang harus di buat seperti di bawah ini.
  2. Mari lakukan coding program dengan menggunakan sintaks program di bawah ini.


  3. Setelah selesai, Ayo buka Serial Monitor pada IDE dengan cara Ctrl + M. Pastikan konfigurasi Serial Monitornya Seperti tampilan di bawah ini.
  4. Contoh data yang dikirim IDE dan yang di terima di LCD penerima
  • Teks Yang DikirimkanArduino
    Teks Yang Di TerimaLCD
    Halo
    Halo
    SayaMakanNasi
    SayaMakanNasi
    Hasmar
    Hasmar

    Husein
    Husein
    Harahap
    Harahap
Adapun penjelasan sintaks pemograman di atas adalah sebagai berikut :
  • #include <LiquidCrystal.h>    //memanggil library untuklcd
    #define FOSC 16000000         //menetapkannilai FOSC bernilai 16000000
    LiquidCrystallcd(2, 3, 4, 5, 6, 7); // inisialisasi pin lcd
    String dataSerial;                    //mendekelarasikandataSerialsebagai string
    voidinitSerial(intbaudrate)
    {
    intubrr = FOSC/16/baudrate-1;
    // Mengisi register UBRR0H dan UBRR0L untukmenentukanbaudrate
    UBRR0H |= ubrr>>8;
    UBRR0L |= ubrr;
    // Mengaktifkansaluran transmitter dan receiver
    UCSR0B |= (1<<RXEN0)|(1<<TXEN0);
    // Menggunakan format data 8 bit
    UCSR0C |= (0<<UCSZ02)|(1<<UCSZ01)|(1<<UCSZ00);
    // Menggunakan 1 stop bit
    UCSR0C |= (0<<USBS0);
    // No Parity
    UCSR0C |= (0<<UPM01)|(0<<UPM00);
    // Mengaktifkan RX interrupt
    UCSR0B |= (1<<RXCIE0);
    }
    // Rutin yang akandijalankanjikaterjadiinterupsi
    ISR(USART_RX_vect){
    char data = UDR0;
    if(data=='\n')
    {
    lcd.clear();                   // tampilanlcd di hapus
    lcd.setCursor(0,0);      //Menampilkan text padabarispertama LCD
    lcd.print("Incoming Data"); //Menampilkan text “Incoming Data” padabarispertama di LCD
    lcd.setCursor(0,1);      //Menampilkan text padabariskedua LCD
    lcd.print(dataSerial);   //Menampilkan data ygdikirimmelalui serial
    dataSerial = "";
    }
    Else
    {         
    if(data!='\r')                 //jika data tidakada
    {
    dataSerial += data;      //Jikatidakada data makatampilkan text “data”
    }
    }
    }
    void setup()                 //settinganawal program
    {
    initSerial(9600);
    lcd.begin(16,2);           // tampilanlcd (kolom , baris)
    lcd.clear();                   // tampilanlcd di hapus
    sei();
    }
    void loop()                  //program looping
    {
    }

    • Perbedaan antara INTERUPSI dengan POOLING adalah Suatu kondisi yang memicu atau memaksa sitem mikrokontroler untuk menghentikan program utama dan memaksa menjalankan interupsi, SEDANGKAN sitem POOLING adalah kondisi arduino menunggu pengiriman data dari komunikasi serial.