[KEMBALI KE MENU SEBELUMNYA]
DAFTAR ISI
1. Prosedur
2. Hardware dan Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja
4. Flowchart dan Listing Program
5. Video Demo
6. Kondisi
7. Download File
1. Prosedur [kembali]
- Buatlah rangkaian sesuai dengan kondisi yang telah dipilih
- Buat Program pada software Arduino IDE
- Masukkan program yang telah dibuat pada software Arduino IDE sebagai library Arduino
- Jalankan rangkaian, sesuai dengan kondisi yang diinginkan
- Lihat output pada 7 segmen dengan mengatur dip switch
2. Hardware dan Diagram Blok [kembali]
a. Hardware
b. Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
a. Rangkaian Simulasi
digunakan satu saklar DIP sebagai masukan dan dua segmen tujuh segmen sebagai keluaran.
Selain itu juga menggunakan 2 modul, pertama Arduino master sebagai pemberi perintah dan Arduino Slave sebagai penerima/pelaksana perintah.
Master Arduino terhubung ke input saklar DIP dan Arduino Slave terhubung ke output tujuh segmen ganda.
Pada pengujian ini komunikasi SPI yang digunakan ditandai dengan pin MOSI, MISO, SCLK, SS/CS pada kedua modul yang dihubungkan bersama.
Sesuai dengan program yang dimasukkan pada Arduino Idea, tampilan tujuh segmen ganda akan menampilkan nomor sesuai dengan kondisi yang dimasukkan pada unit tertanam.
Jadi jika kita mengaktifkan pin 1 pada dip switch maka akan muncul angka 1 pada tujuh segmen.
4. Flowchart dan Listing Program [kembali]
a. Flowchart
Arduino Slave
b. Listing Program
Arduino Master
//Master Arduino
#include //Library for SPI
int dip[] = {2,3,4,5,6,7,8,9};
int dipvalue[] = {};
void setup (){
Serial.begin(9600); //Starts Serial Communication at Baud Rate 115200
for(int i = 0; i < 8; i++){
pinMode(dip[i], INPUT_PULLUP);
}
SPI.begin(); //Begins the SPI commnuication
SPI.setClockDivider(SPI_CLOCK_DIV8); //Sets clock for SPI communication at 8 (16/8=2Mhz)
digitalWrite(SS,HIGH); // Setting SlaveSelect as HIGH (So master doesnt connnect with
slave)
}
void loop(void){
byte Mastersend;
int x = 1;
for(int i = 0; i < 8; i++){
dipvalue[i] = digitalRead(dip[i]);
if(dipvalue[i] == LOW){
x = dip[i];
}
}
digitalWrite(SS, LOW); //Starts communication with Slave connected to master
Mastersend = x;
Serial.println(Mastersend);
SPI.transfer(Mastersend); //Send the mastersend value to slave also receives value from slave
delay(1000);
}
Arduino Slave
//Slave Arduino:
#include<SPI.h>
const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2};
volatile boolean received = false;
volatile byte Slavereceived;
int index;
void setup(){
Serial.begin(9600);
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
SPCR |= _BV(SPE); //Turn on SPI in Slave Mode
SPI.attachInterrupt(); //Interuupt ON is set for SPI commnucation
}
ISR (SPI_STC_vect){ //Inerrrput routine function
Slavereceived = SPDR; // Value received from master if store in variable slavereceived
received = true; //Sets received as True
}
void loop(){
Serial.println(Slavereceived);
if(received){//Logic to SET LED ON OR OFF depending upon the value recerived from master
displayCharacter(Slavereceived);
delay(1000);
}
}
void displayCharacter(int ch) {
byte patterns[10][7] = {
{0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0} // 9
};
if ((ch >= 0 && ch <= 9)) {
// Get the digit index (0-9) from the character
int index = ch;
// Write the pattern to the segment pins
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], patterns[index][i]);
}
}
}
5. Video Demo [kembali]
6. Kondisi [kembali]
Jika 1 switch aktif maka akan menampilkan angka 1 pada digit 2, Jika 2 switch aktif maka akan menampilkan angka 2 pada digit 2, begitu seterusnya hingga 8 switch aktif
7. Download File [kembali]
Download HTML klik disini
Download Program Arduino Master klik disini
Download Program Arduino Slave klik disini
Download Video Demo klik disini
Download Gambar Hardware klik disini
Download Gambar Simulasi klik disini
Download Datasheet Arduino klik disini
Download Datasheet Dipswitch klik disini
Download Datasheet 7 segmen klik disini
Tidak ada komentar:
Posting Komentar