PERCOBAAN 6
Kontrol Putaran Motor Stepper
1. Prosedur [Kembali]
1. Susun semua perangkat sesuai dengan kondisi yang dipilih.
2. Tulis kode di Arduino IDE.
3. Setelah selesai, input program ke papan Arduino dalam aplikasi Proteus.
4. Mulai jalankan program dalam simulasi dan uji sesuai dengan modul dan kondisinya.
5. Selesaikan proses tersebut.
2. Hardware dan diagram blok [Kembali]
A. Hardware
B. Digram Blok
Prinsip Kerja
Rangkaian ini menggunakan komunikasi antara dua Arduino melalui I2C untuk mengontrol LCD berdasarkan input dari keypad. Pada perangkat master, input dari keypad dikirimkan ke perangkat slave melalui I2C, yang kemudian menampilkan outputnya pada LCD. Perangkat slave akan menampilkan angka ganjil di kolom kedua dan angka genap di kolom pertama pada LCD. Dengan demikian, komunikasi antara kedua perangkat memungkinkan tampilan yang sesuai dengan kondisi program yang telah ditetapkan.
4. FlowChart [Kembali]
A. Listing Program
1. Master
//Master Arduino
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'},
};
char rowPins[ROWS] = {13, 12, 11, 10};
char colPins[COLS] = {9, 8, 7};
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
}
}
2. Slave
#include <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(13, 12, 6, 5, 4, 3); // Sesuaikan pin sesuai dengan koneksi LCD
int receivedData = 0;
void setup()
{
lcd.begin(16, 2);
Wire.begin(4); // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
lcd.print("Silahkan Tekan");
}
void loop()
{
delay(100);
}
void receiveEvent(int howMany)
{
receivedData = Wire.read(); // menerima byte sebagai karakter
Serial.println(receivedData); // mencetak karakter ke Serial Monitor untuk debug
if (receivedData >= '1' && receivedData <= '9') {
int number = receivedData - '0';
lcd.clear();
if (number % 2 == 0) {
lcd.setCursor(0, 0);
} else {
lcd.setCursor(1, 1);
}
lcd.print(number);
}
}
B. Flowchart
5. Kondisi [Kembali]
Kondisi Percobaan 2 Kondisi 1 : Key 1-9 menampilkan karakter nomor 1-9 secara berurut, angka ganjil di kolom kedua, dan angka genap di kolom pertama
6. Video Simulasi [Kembali]
7. Download File [Kembali]
Download HMTL klik disini
Download Simulasi Rangkaian klik disini
Download Video Simulasi klik disini
Download Program Master klik disini
Download Program Slave klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Keypad klik disini
Download Datasheet LCD klik disini
Tidak ada komentar:
Posting Komentar