PERCOBAAN 1 UART
1. Komponen
[Kembali]
1. Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum
ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram
Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan
dengan komputer ataupun perangkat lain
2. Buzzer
Buzzer adalah sebuah komponen elektronika yang dapat menghasilkan getaran suara berupa gelombang bunyi. Buzzer akan menghasilkan getaran suara ketika diberikan sejumlah tegangan listrik dengan taraf tertentu sesuai dengan spesifikasi bentuk dan ukuran buzzer elektronika itu sendiri. Pada umumnya, buzzer sering digunakan sebagai alarm karena penggunaannya yang cukup mudah yaitu dengan memberikan tegangan input maka buzzer elektronika akan menghasilkan getaran suara berupa gelombang bunyi yang dapat didengar manusia. Pada dasarnya, setiap buzzer memerlukan input berupa tegangan listrik yang kemudian diubah menjadi getaran suara atau gelombang bunyi yang memiliki frekuensi berkisar antara 1 - 5 KHz
3. Push Button
Saklar tekan yang berfungsi sebagai pemutus atau penyambung arus listrik dari sumber arus ke beban listrik. Suatu sistem saklar tekan push button terdiri dari saklar tekan start, stop reset dan saklar tekan untuk emergency. Push button memiliki kontak NC (normally close) dan NO (normally open). Prinsip kerja Push Button adalah apabila dalam keadaan normal tidak ditekan maka kontak tidak berubah, apabila ditekan maka kontak NC akan berfungsi sebagai stop (memberhentikan) dan kontak NO akan berfungsi sebagai start (menjalankan) biasanya digunakan pada sistem pengontrolan motor – motor induksi untuk menjalankan mematikan motor pada industri – industri.
2. Rangkaian Simulasi
[Kembali]
3. Flowchart [Kembali]
4. Listing Program [Kembali]
//MASTER
#define button 2 //Deklarasi pin 2 untuk button
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(button,INPUT_PULLUP); Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
int nilai = digitalRead(button);
//ditekan
if(nilai == 0)
{
Serial.print("1");
}else
{
Serial.print("2");
}
delay(200);
}
//SLAVE
#define buzzer 12 //Deklarasi pin 12 untuk BUZZER
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(buzzer,OUTPUT); //Deklarasi LED sebagai output
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua program dalam fungsi ini dieksekusi berulang
{
if(Serial.available()>0)
{
int data = Serial.read();
if(data=='1') //Jika data yang dikirimkan berlogika
{
digitalWrite(buzzer,HIGH); //BUZZER menyala
}
else
{
digitalWrite(buzzer,LOW); //BUZZER mati
}
}
}
Prinsip kerja:
Pada rangkaian terdapat 2 arduino yang berfungsi sebagai master dan slave. kedua arduino tersebut berkomunikasi secara UART yang dihubungkan dengan masing-masing pin Tx dihubungkan ke pin Rx yang satunya. Saat button ditekan maka pin 2 yang terhubung dengan button akan menerima input 0. saat input 0 diolah oleh arduino master maka hasilnya dikirim ke arduino slave. Data tersebut kemudian diolah oleh arduino slave sehingga memberikan tegangan pada pin 12 yang menuju buzzer sehingga buzzer menyala.
Ganti LED menjadi buzzer, pada SLAVE Serial begin (34500);
Analisa:
1. Apa pengaruh set baud rate (bandingkan)
Jawab:
Baud rate mengindikasikan seberapa cepat data dikirim melalui komunikasi serial. Baud rate biasanya diberi satuan bit-per-second (bps). Bit per detik ini mengartikan bahwa berapa bit data dapat ditransfer setiap detiknya. Pada percobaan, baud rate pada master dan slave di set sebesar 9600. Pada keadaan tersebut buzzer dapat berbunyi, namun setelah baud rate di set menjadi 34500, buzzer tidak berbunyi. Hal ini dikarenakan semakin besar nilai baud rate, maka semakin tinggi kecepatan transfer. Namun, karena percobaan ini melibatkan proses sinkronisasi data maka terjadi error saat transfer data. Untuk menghindari error baud rate standar yang digunakan pada Arduino adalah 9600.
2. Bagaimana jika hanya 1 Rx dan Tx yang dihubungkan (analisa dr program)
Jawab:
Pada percobaan praktikum, saat diputus kabel Rx ke Tx (dari master ke slave) maka tidak terjadi masalah dan buzzer tetap aktif. Kesimpulannya adalah apabila kita mengirim data dari master ke slave maka yang terpenting adalah kabel Tx master terhubung ke Rx slave, sedangkan jika kabel Rx master tidak dihubungkan ke Tx slave, maka tidak apa-apa. Sebaliknya, jika kita ingin mengirim data dari slave ke master, maka pin Rx master lah yang harus kita hubungkan ke pin Tx slave.
3. Jelaskan button pull up dan pull down (buat rangkaian)
Jawab:
Pull-up dan Pull-down adalah penambahan resistor pada I/O mikrokontroler, yang membedakan antara Pull-up dan Pull-down adalah penempatan resistor pada kutub arus listrik, dan pada input.
- Pada Pull-up resistor, salah satu kaki resistor dihubungkan ke kutub Vcc (5v/3.3v pada RasPi), sedangkan kaki resistor yang lain dicabangkan, satu ke pin input arduino, dan yang lain ke switch on/off untuk disambungkan ke ground (0V). Pada gambar diatas kita bisa lihat, Vcc tersambung ke pin, sehingga pin akan mendapatkan signal HIGH, dan ketika push button ditekan, arus Vcc akan mengalir ke ground (0v), sehingga pin akan mendapat signal LOW.
- Pada Pull-down resistor, salah satu kaki resistor dihubungkan ke kutub ground (0v), sedangkan kaki resistor yang lain dicabangkan, satu ke pin input arduino, dan yang lain ke switch on/off untuk disambungkan ke Vcc (5v/3.3v). Pada rangkaian pull-down, Vcc tidak terhubung dengan pin, tetapi pin terhubung dengan ground (0v), pin dalam keadaan LOW, dan ketika push button ditekan, Vcc akan terhubung dengan pin, kondisi pin sekarang menjadi HIGH.
Kegunaan Pull up dan Pull down adalah untuk menstabilkan signal antara HIGH atau LOW yang akan diterima pin sehingga lebih akurat. Bila tidak menggunakan rangkaian pull-up atau pull-down, signal yang akan terbaca pada pin akan berubah-ubah. Kondisi inilah yang disebut sebagai floating. Kondisi floating terjadi karena pin input tidak terhubung ke salah satu kondisi (Vcc atau 0 V) yang menjadi dasar pin input mengetahui statusnya HIGH atau LOW. Status HIGH diperoleh bila pin input terhubung dengan Vcc, dan status LOW diperoleh bila pin terhubung dengan ground (0 V). Karena pin tidak terhubung dengan salah satu kondisi tersebut, kondisi pin menjadi floating, karena pada pin tersebut memiliki listrik juga, sehingga pin dapat terbaca HIGH karena listriknya sendiri, dan LOW karena pin tersebut juga terhubung ke ground secara internal menggunakan resistor (1MOhm).
7. Link Download
[Kembali]
Datasheet arduino uno download
Datasheet buzzer download
Datasheet push button download
File rangkaian download
Listing program download
File video download
File html download
Tidak ada komentar:
Posting Komentar