TP2M3







Key 1-9 menampilkan karakter nomor 9-1 secara berurutan dikolom kedua LCD

1.Prosedur

Langkah-langkah percobaan :

  • Rangkailah semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai, masukkan program ke arduino 
  • Jalankan program pada simulasi dan lakukan sesuai kondisi




3. Rangkaian Simulasi dan Prinsip Kerja

 Pada percobaan ini terdapat sepasang arduino, keypad dan lcd. Arduino pertama berfungsi sebagai master yang menerima input dari keypad. Sedangkan Arduino kedua adalah slave atau arduino yang dikontrol. Slave menerima instruksi dari Master dan meneruskannya ke lcd. Sesuai kondisi yang dipilih dan listing program yang mana setiap Key 1-9 menampilkan karakter nomor 9-1 secara berurutan dikolom kedua LCD.

A. Flowchart



B. Listing Program

  • Master

 #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
 }
}

  • 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(); // receive byte as a character
  Serial.println(receivedData); // print the character

  if (receivedData >= '1' && receivedData <= '9') {
    int number = receivedData - '0';
    lcd.clear();
    int numbernoninverted = number % 2;
    int numberinverted = !numbernoninverted;
    lcd.setCursor(numberinverted, 0);
    lcd.print(number);
  }
}

Key 1-9 menampilkan karakter nomor 9-1 secara berurutan dikolom kedua LCD



Tidak ada komentar:

Posting Komentar