TP M3 P3K4




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

1. Arduino Uno

2.  LCD


3. Keypad


B. Digram Blok




3. Rangkaian Simulasi dan Prinsip kerja [Kembali]




 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

1. Master


2. Slave



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