TP 2 M3

    [KEMBALI KE MENU SEBELUMNYA]  




Semua Switch pull-down, switch 1 dan 3 motor ke kanan, switch 1 dan 4 panah ke kanan


1. Prosedur  [back]

·                Rangkailah rangkaian seperti panduan pada modul

·                Buka Arduino IDE dan masukan listing program, lalu upload program ke arduino 

·                Variasikan DIPSW_6 dan amati perubahan pada Double Seven Segmen

2. Hardware dan diagram blok [back]
a. Arduino


b. Dipswitch
c. 7-Segment





Diagram blok



3. Rangkaian Simulasi dan Prinsip Kerja  [back]





 Prinsip Kerja

     ada rangkaian di atas, terdapat sepasang arduino dan sebuah double seven segment. Arduino pertama berfungsi sebagai master yang menerima input dari DIPSW_6. Sedangkan Arduino kedua adalah slave atau arduino yang dikontrol. Slave menerima instruksi dari Master dan meneruskannya ke double Seven Segment. Sesuai kondisi yang dipilih dan listing program yang mana setiap 3 switch diaktifkan maka double Seven Segment akan melakukan counting dari 9 sampai 0 secara bergantian di digit 1 dan 2.







4. Flowchart dan Listing Program  [back]
a. Master

b. Slave

Listing Program

a. 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

 }

}

 

b. 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();

    lcd.setCursor(0, number % 2);

    lcd.print(number);

  }

}

 


5. Kondisi  [back]
  
key 1 - 9 menampilkan karaktaer nomor 1 - 9 secara berurut, angka ganjil di kolom pertama dan angka genap di kolom kedua

6. Video Simulasi  [back]








7. Download File  [back]
HTML klik
Simulasi klik
Video Simulasi klik
Listing Program klik





Tidak ada komentar:

Posting Komentar