LA 1: Percobaan 2
1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Hardware dan Diagram Blok [Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Pada percobaan 2 menggunakan komunikasi SPI, menggunakan pin MOSI sebagai transmiter dari master menuju slave, dan MISO sebagai receiver dari slave menuju master, sehingga master dapat mengirim dan menerima data dengan mengikuti clock. pada rangkaian dapat dilihat bahwasanya input berupa dipswitch dan output berupa 7 segment. dimana secara bertahap sebagai penerima. MISO akan mengirim sinyal dari Dipswitch menuju slave dan diteruskan ke 7 segment.
4. Flowchart dan Listing Program [Kembali]
Flowchart :
MASTER
#include <Key.h>
#include <Keypad.h>
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'A', '2', '3'},
{'B', '5', '6'},
{'C', '8', '9'},
{'D', '0', '#'},
};
char rowPins[ROWS] = {9, 8, 7, 6};
char colPins[COLS] = {5, 4, 3};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
}
//byte x = 0;
void loop(){
char key = keypad.getKey();
if (key) {
Wire.beginTransmission(4); // transmit to device #4
Wire.write(key);
Wire.endTransmission(); // stop transmitting
}
}
SLAVE
#include <LedControl.h>
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Inisialisasi objek LCD dengan pin yang terhubung
String message = ""; // Pesan yang akan ditampilkan di LCD
void setup() {
lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2
Wire.begin(9); // Mulai komunikasi I2C sebagai slave dengan alamat 9
Wire.onReceive(receiveEvent); // Panggil fungsi receiveEvent() saat menerima data dari master
}
void loop() {
// Tidak ada yang perlu dilakukan di loop()
}
void receiveEvent(int byteCount) {
while (Wire.available()) {
char receivedChar = Wire.read(); // Baca karakter yang diterima dari master
message += receivedChar; // Tambahkan karakter ke pesan
if (message.length() > 16) { // Jika panjang pesan lebih dari 16 karakter
message = message.substring(1); // Potong karakter pertama dari pesan
}
displayMessage(); // Tampilkan pesan pada LCD
}
}
void displayMessage() {
lcd.clear(); // Bersihkan layar LCD
lcd.setCursor(0, 0); // Set posisi kursor di baris pertama
lcd.print(message); // Tampilkan pesan di LCD
}
5. Kondisi [Kembali]
Percobaan 4 : Keypad dan Motor Servo
6. Video Demo [Kembali]
7. Soal Analisa [Kembali]
1. Bagaimana caramengupload program ke arduino dengan komunikasi SPI
2. Apa order bit dan kecepatan yang digunakan clock pada percobaan dan jelaskan.
8. Download File [Kembali]
HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Motor Servo klik disini
Datasheet Keypad klik disini
Tidak ada komentar:
Posting Komentar