Tugas Pendahuluan 2 uP uC Modul 3
TUGAS PENDAHULUAN 1 (MODUL I GMODUL II PWM, ADC, DAN INTERRUPT)
1. Prosedur [Kembali]
- Siapkan alat dan bahan yaitu dengan komponen utama Arduino Uno, Switch, LCD
- Rangkai sesuai gambar percobaan
- Rancang kerja rangkaian sesuai flowchat
- Tekan tombol “Play” untuk menjalankan simulasi
2. Hardware dan Diagram Blok [Kembali]
Prinsip kerja dari Rangkaian ini ialah, bekerja dengan menggunakan komunikasi I2C (Inter Integrated Circuit) yang menggunakan pin SCL (Serial Clock) dan SDA (Serial Data) untuk melakukan komunikasi. Master berfungsi mengontrol slave dengan mengirimkan inputan berupa kondisi keypad kepada Slave, sedangkan Slave akan menerima inputan yang mana akan ditampilkan pada LCD. Komunikasi terjadi pada pin SDA yang bekerja secara half-Duplex. Angka ganjil akan ditampilkan pada kolom 1, sedangkan angka genap akan ditampilkan pada kolom 2.
4. Flowchart dan Listing Program [Kembali]
Flowchart
Listing Program
Master
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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. Video Demo [Kembali]
Saat Praktikum
6. Kondisi [Kembali]
key 1 - 9 menampilkan karakter nomor 1 - 9 secara berurut, angka ganjil di kolom pertama dan angka genap di kolom kedua
7. Video Simulasi [Kembali]
8. Link Download [Kembali]
Download HTML [Klik di sini]
Download file rangkaian [Klik di sini]
Download video rangkaian [Klik di sini]
Download program Arduino [Klik di sini]
Download datasheet Arduino [Klik di sini]
Download datasheet LCD [Klik di sini]
Komentar
Posting Komentar