Penggunaan Komunikasi SPI untuk Sensor dan Aktuator di Proteus

- Tujuan
Setelah menyelesaikan praktikum ini, mahasiswa diharapkan dapat:
- Memahami prinsip kerja komunikasi SPI (Serial Peripheral Interface).
- Menghubungkan mikrokontroler dengan sensor dan aktuator menggunakan SPI.
- Mengirim dan menerima data menggunakan protokol SPI.
- Menampilkan hasil pengukuran sensor pada LCD.
- Alat dan Bahan
- Software Proteus (ISIS untuk simulasi)
- Software Arduino IDE
- Mikrokontroler (Arduino Uno/ATmega328P)
- Sensor tekanan (misalnya, BMP280 atau MCP3208 sebagai ADC untuk sensor analog)
- LCD SPI (misalnya, Nokia 5110 atau ST7735 TFT Display)
- Kabel penghubung virtual pada Proteus
- Resistor dan kapasitor sesuai kebutuhan
- Dasar Teori
SPI (Serial Peripheral Interface) adalah protokol komunikasi serial sinkron yang digunakan untuk menghubungkan mikrokontroler dengan berbagai perangkat eksternal, seperti sensor dan aktuator. SPI memiliki empat jalur utama:
- MOSI (Master Out Slave In): Data dikirim dari master ke slave.
- MISO (Master In Slave Out): Data dikirim dari slave ke master.
- SCK (Serial Clock): Sinyal clock yang dihasilkan oleh master.
- SS (Slave Select): Sinyal untuk memilih perangkat slave tertentu.
- Langkah Kerja
- Konfigurasi Proteus
- Buka Proteus dan buat proyek baru.
- Tambahkan komponen berikut ke dalam skema:
- Mikrokontroler (Arduino Uno/ATmega328P)
- Sensor tekanan (BMP280 atau MCP3208 sebagai ADC)
- LCD SPI (Nokia 5110 atau ST7735)
- Resistor dan kapasitor jika diperlukan
- Hubungkan komponen dengan jalur SPI:
- MOSI ke pin SPI perangkat
- MISO ke pin SPI perangkat
- SCK ke pin SPI perangkat
- SS ke pin masing-masing perangkat slave
- Pemrograman Mikrokontroler
- Buka Arduino IDE dan buat program untuk komunikasi SPI.
- Tambahkan library SPI jika diperlukan (#include <SPI.h>).
- Inisialisasi SPI pada mikrokontroler:
#include <SPI.h> #define SS_SENSOR 10 #define SS_LCD 9 void setup() { Â Â Â Serial.begin(9600); Â Â Â SPI.begin(); Â Â Â pinMode(SS_SENSOR, OUTPUT); Â Â Â pinMode(SS_LCD, OUTPUT); Â Â Â digitalWrite(SS_SENSOR, HIGH); Â Â Â digitalWrite(SS_LCD, HIGH); }
- Membaca data dari sensor SPI:
int readSensorSPI() { Â Â Â digitalWrite(SS_SENSOR, LOW); Â Â Â byte highByte = SPI.transfer(0x00); Â Â Â byte lowByte = SPI.transfer(0x00); Â Â Â digitalWrite(SS_SENSOR, HIGH); Â Â Â return (highByte << 8) | lowByte; }
- Menampilkan data pada LCD SPI:
void displayOnLCD(int value) { Â Â Â digitalWrite(SS_LCD, LOW); Â Â Â SPI.transfer(0xFE); // Perintah LCD Â Â Â SPI.transfer(value); Â Â Â digitalWrite(SS_LCD, HIGH); }
- Looping pembacaan data:
void loop() { Â Â Â int sensorValue = readSensorSPI(); Â Â Â Serial.println(sensorValue); Â Â Â displayOnLCD(sensorValue); Â Â Â delay(1000); }
- Simulasi Proteus
- Impor program HEX dari Arduino IDE ke Proteus.
- Jalankan simulasi dan periksa apakah nilai sensor terbaca dengan benar.
- Periksa tampilan LCD, apakah hasil pengukuran sensor ditampilkan dengan benar.
- Analisis dan Pertanyaan
- Apa fungsi masing-masing pin dalam komunikasi SPI?
- Bagaimana cara menghubungkan lebih dari satu perangkat SPI ke mikrokontroler?
- Apa keuntungan dan kelemahan komunikasi SPI dibandingkan I2C?
- Bagaimana cara memastikan data yang dikirim tidak mengalami kesalahan?
- Kesimpulan
Setelah menyelesaikan praktikum ini, mahasiswa diharapkan dapat memahami dan mengimplementasikan komunikasi SPI untuk interfacing dengan sensor dan aktuator, serta menampilkan data pada LCD SPI.
Ads Jadwal Training bisaioti Offline
No | Materi | Tanggal | Waktu | Harga | Lokasi | View | Action |
---|---|---|---|---|---|---|---|
1 | IOT PLC SCADA Siemens | 7-8 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
2 | IOT PLC SCADA Omron | 14 - 15 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
3 | IOT PLC SCADA Schneider | 21-22 Juni 2025 | 08.00 -16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
4 | IOT PLC SCADA Allen Bradley | 28-29 Juni 2025 | 08.00-16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |