Laporan Akhir 1 - M3




1. Prosedur
[Kembali]

1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.

2. Hardware dan Diagram Blok [Kembali]

Hardware :


1.Arduino Uno



2.Dipswitch


3.Seven Segment 2 Digit




4.Resistor







Diagram Blok  :





3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]





Prinsip Kerja :

        Pada rangkaian menggunakan dua buah arduino sebagai master dan slave, untuk arduino master itu digunakan sebagai input, yaitu dipswitch. Sedangkan untuk arduino slave sebagai output, output berupa seven segment double digit. Komunikasi yang digunakan antar dua arduino adalah SPI
    Pada percobaan yang dilakukan saat dipswitch dihidupkan secara berurutan maka, pada seven segment menampilkan angka yang ada pada dipswitch yang aktif misal yang aktif adalah dipswith 1 sampai 3 secara berurutan, maka pada seven segment akan menampilkan angka yang berurutan juga, seperti 1, kemudian saat dipswitch 2 diaktifkan, maka seven segment akan menampilkan 2, saat dipswitch 3 aktif, maka seven segment akan menampilkan angka 3 juga. Namun apabila dipswitch diaktifkan secara acak, maka seven segment hanya menampilkan angka sesuai dipswitch terakhir yang diaktifkan secara berurutan.   

4. Flowchart dan Listing Program [Kembali]

Flowchart :

Master :






- Slave :




Listing Program :

Master :

//Master Arduino
#include<SPI.h> //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);
}

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. Kondisi[Kembali]

Percobaan 2 : Komunikasi SPI Menggunakan Arduino

6. Video Demo [Kembali]









7. Soal Analisa [Kembali]





8. Download File [Kembali]

HTML Download
Video Percobaan Download
Listing Program Download
Datasheet Arduino Download
Datasheey Keypad Download
Datasheet seven segment Download









Tidak ada komentar:

Posting Komentar

                                                                 BAHAN PRESENTASI UNTUK MATAKULIAH                                          ...