Percobaan 2
Gantilah LED dengan buzzer
Pada percobaan ini kita menggunakan beberapa komponen yaitu ada 2 buah arduino (master dan slave), ada 4 buah resistor, 2 buah led, 2buah button, 2 buah power dan 2 buah ground. Pada rangkaian ini, pin 13, 12, 11, dan 10 arduino master masing masing dihubungkan dengan pin yang sama pada arduino slave. Dimana pin 13 ini adalah clk, pin 12 adalah MISO (master input slave output), pin 11 adalah MOSI (master output slave input) dan pin 10 adalah SS (slave select) digunakan untuk memilih slave mana yang akan dikirimkan data oleh master. Lalu pin 7 master dihubungkan dengan resistor 1 dan LED 1, selanjutnya pin 2 dihubungkan dengan button dan resistor 2, dimana pin 2 ini digunakan sebagai input yang nantinya data yang masuk ke pin 2 yang berasal dari button akan dikirimkan ke arduino slave dan arduino slave akan mendeteksi dan mengerjakan perintah sesuai dengan program yang diinput pada slave. Begitu juga dengan pin 7 slave dihubungkan dengan resistor 3 dan LED 2, selanjutnya pin 2 dihubungkan dengan button dan resistor 4, dimana pin 2 ini digunakan sebagai input yang nantinya data yang masuk ke pin 2 ini akan dikirimkan ke arduino master dan arduino master akan mendeteksi dan mengerjakan perintah sesuai dengan program yang diinput pada master
Untuk prinsip kerja dari master yaitu pertama tama include library untuk SPI, lalu deklarasikan pin 7 dan pin 2 masing masing untuk LED dan button, selanjutnya ada variable buttonvalue dan x dengan tipe data integer. Lalu ada fungsi void setup dimana pada fungsi ini semua kode akan dieksekusi sekali, lalu ada Serial.begin (115200) digunakan untuk mengatur kecepatan pengiriman data menggunakan port serial. Dalam fungsi void setup ini kita akan menetapkan atau mendeklarasikan pin 2(button) sebagai input dan pin 7(LED) sebagai output. Lalu untuk memulai komunikasi SPI kita perlu menuliskan syntaks SPI.begin dan selanjutnya kita mengatur clockdivider untuk komunikasi SPI, disini kita menggunakan pembagi 8. Lalu kita mengatur SS (slave select) dalam logika HIGH sehingga master tidak akan terhubung dengan slave.
Selanjutnya ada fungsi void loop dimana pada fungsi ini
semua kode akan dijalankan secara berulang, lalu dalam fungsi ini terdapat
butonvalue yang mana button akan membaca nilai yang terdapat pada pin 2. Lalu jika
button mendeteksi nilai logika high maka x=1 sedangkan jika terdeteksi nilai
selain high maka nilai x=0, selanjutnya untuk memulai komunikasi antara slave
dan master kita perlu menuliskan syntaks digitalWrite (SS, LOW), Lalu ada syntaks Mastereceive =SPI.transfer(Mastersend) yang mana syntaks ini berguna untuk
mengirimkan nilai push button yang disimpan dalam variable Mastersend ke slave
arduino dan juga menerima nilai dari slave dan disimpan dalam variable
Mastereceive. Selanjutnya kita akan mengatur LED dalam kondisi hidup atau mati. pada program ini jika mastereceice nilai nya 1 maka led akan menyala
sedangkan jika mastereceive mendeteksi nilai selain 1 maka led tidak akan
menyala.
Untuk prinsip kerja dari master yaitu pertama tama include library untuk SPI, lalu deklarasikan pin 7 dan pin 2 masing masing untuk LED dan button, selanjutnya ada variable buttonvalue dan x dengan tipe data integer. Lalu ada fungsi void setup dimana pada fungsi ini semua kode akan dieksekusi sekali, lalu ada Serial.begin (115200) digunakan untuk mengatur kecepatan pengiriman data menggunakan port serial. Dalam fungsi void setup ini kita akan menetapkan atau mendeklarasikan pin 2(button) sebagai input dan pin 7(LED) sebagai output dan syntaks yang paling penting yaitu mengatur MISO sebagai output karena disini kita akan mengirim data dari slave ke master. Selanjutnya nyalakan SPI dalam mode slave menggunakan SPI control register. Kemudian aktifkan interupsi untuk komunikasi SPI, jika data diterima dari master maka interrupt routine akan dipanggil dan data akan diambil dari SPDR dan disimpan dalam variable slavereceive
Selanjutnya ada fungsi void loop dimana pada fungsi ini semua kode akan dijalankan secara berulang, lalu dalam fungsi ini kita akan mengatur led dalam kondisi hidup atau mati tergantung nilai yang diterima pada slave. Jika nilai yang diterima pada slave =1 maka led akan menyala sedangkan jika nilai yang diterima selain 1 maka led akan mati. Selanjutnya button akan membaca nilai yang terdapat pada pin 2. Lalu jika button mendeteksi nilai logika high maka x=1 sedangkan jika terdeteksi nilai selain high maka nilai x=0. Nilai x ini akan dikirimkan oleh slave ke master melalui spdr.
Tidak ada komentar:
Posting Komentar