Jumat, 03 Mei 2024

LA 2



MODUL 3
PERCOBAAN 2 KONDISI 5

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai

2. Hardware dan diagram blok [Kembali]
      a. hardware

                                                                        
1. Push Button
2. LED
3. Arduino Uno master
4. Arduino Uno Slave

            b. Digram Blok



3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

                                        
PRINSIP KERJA
   Komunikasi SPI (Serial Peripheral Interface) pada Arduino Uno memungkinkan pertukaran data yang cepat dan efisien antara Arduino dan perangkat-perangkat lain seperti display digital. Dalam kondisi yang dijelaskan, Arduino Uno diatur sebagai master dalam bus SPI, mengirimkan data ke sebuah display yang bertindak sebagai slave. Setiap switch terhubung ke Arduino dengan konfigurasi pull-up, dan status switch dibaca oleh Arduino. Ketika dua switch diaktifkan bersamaan, Arduino menghitung jumlah switch yang aktif dan mengirimkan nilai tersebut ke display melalui SPI. Angka yang sesuai dengan jumlah switch yang aktif (dalam kasus ini, angka "2") akan ditampilkan pada digit pertama dari display. Metode ini mengizinkan Arduino untuk mengontrol dan memperbarui tampilan secara dinamis berdasarkan interaksi pengguna dengan switch, memanfaatkan kecepatan dan efisiensi SPI untuk komunikasi data yang sering dan cepat antar komponen.

4. FlowChart [Kembali]

a. 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]);
}
}
}


b. Flowchart








5. Kondisi [Kembali]

Kondisi  →Percobaan 2 Kondisi 5
        setiap 2 switcg aktif muncul angka sesuai jumlah switch yang aktif pada digit 1

6. Video Simulasi [Kembali]



7. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini

LA 1



MODUL 3
PERCOBAAN 1 KONDISI 4

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai

2. Hardware dan diagram blok [Kembali]
      a. hardware

                                                                        
1. Keypad
2. LCD 2X16
3. Arduino Uno master
4. Arduino uno slave

            b. Digram Blok



3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

                                        

PRINSIP KERJA
    Komunikasi UART (Universal Asynchronous Receiver/Transmitter) pada Arduino Uno berfungsi untuk pertukaran data secara serial antar perangkat. Dalam skenario yang dijelaskan, Arduino Uno diatur untuk membaca status dari beberapa switch yang terhubung dengan konfigurasi pull-up, yang berarti switch akan mengirimkan sinyal LOW (aktif) ketika ditekan. Ketika satu switch aktif, Arduino mengirimkan perintah melalui UART untuk menjalankan LED dari LED 1 hingga 8 secara berurutan, menunjukkan pola "running LED" yang biasanya berarti LED menyala satu demi satu. Sementara itu, jika tiga switch aktif secara bersamaan, Arduino mengirim perintah untuk mengaktifkan "blinking" atau kedipan pada tiga LED secara spesifik. Dalam kasus ini, Arduino Uno bertindak sebagai pengendali yang menerima input dari switch dan mengirimkan perintah output melalui UART untuk mengatur perilaku LED tersebut, memungkinkan komunikasi dan kontrol yang efektif antara Arduino dan modul LED atau perangkat lain yang terhubung melalui UART.

4. FlowChart [Kembali]

a. Listing Program 

MASTER
//MASTER
#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9
bool b1,b2,b3,b4,b5,b6,b7,b8;
void setup()
{
Serial.begin(9600);
pinMode(DS1, INPUT_PULLUP);
pinMode(DS2, INPUT_PULLUP);
pinMode(DS3, INPUT_PULLUP);
pinMode(DS4, INPUT_PULLUP);
pinMode(DS5, INPUT_PULLUP);
pinMode(DS6, INPUT_PULLUP);
pinMode(DS7, INPUT_PULLUP);
pinMode(DS8, INPUT_PULLUP);
}
void loop()
{
int b8 = digitalRead(DS8);
int b7 = digitalRead(DS7);
int b6 = digitalRead(DS6);
int b5 = digitalRead(DS5);
int b4 = digitalRead(DS4);
int b3 = digitalRead(DS3);
int b2 = digitalRead(DS2);
int b1 = digitalRead(DS1);
// Hidupkan LED sesuai dengan tombol yang ditekan
if (b8 == LOW)
{
Serial.write('8');
}
else if (b7 == LOW)
{
Serial.write('7');
}
else if (b6 == LOW)
{
Serial.write('6');
}
else if (b5 == LOW)
{
Serial.write('5');
}
else if (b4 == LOW)
{
Serial.write('4');
}
else if (b3 == LOW)
{
Serial.write('3');
}
else if (b2 == LOW)
{
Serial.write('2');
}
else if (b1 == LOW)
{
Serial.write('1');
}
delay(20);
}

SLAVE
//SLAVE
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message;
void setup()
{
Serial.begin(9600);
for (int i = 0; i < 8; i++)
{
pinMode(led[i], OUTPUT);
}
}
void loop()
{
if (Serial.available())
{
message = Serial.read();
if (message == '1')
{
digitalWrite(led[0], 1);
}
else if (message == '2')
{
digitalWrite(led[1], 1);
}
else if (message == '3')
{
digitalWrite(led[2], 1);
}
else if (message == '4')
{
digitalWrite(led[3], 1);
}
else if (message == '5')
{
digitalWrite(led[4], 1);
}
else if (message == '6')
{
digitalWrite(led[5], 1);
}
else if (message == '7')
{
digitalWrite(led[6], 1);
}
else if (message == '8')
{
digitalWrite(led[7], 1);
}
}
delay(20);
digitalWrite(led[0], 0);
digitalWrite(led[1], 0);
digitalWrite(led[2], 0);
digitalWrite(led[3], 0);
digitalWrite(led[4], 0);
digitalWrite(led[5], 0);
digitalWrite(led[6], 0);
digitalWrite(led[7], 0);
}

b. Flowchart







5. Kondisi [Kembali]

Kondisi  →Percobaan 1 Kondisi 4
        Kondisi 4 : Semua Switch dalam kondisi Pull-up, 1 switch aktif mengaktifkan running led, dari led 1 hingga 8 sementara 3 switch aktif mengaktifkan blinking led pada 3 led.

6. Video Simulasi [Kembali]




7. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet LCD 2X16 klik disini

Rabu, 01 Mei 2024

TP 2 P2K5



MODUL 3
PERCOBAAN 2 KONDISI 5

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai

2. Hardware dan diagram blok [Kembali]
      a. hardware


                                                                        
1. Dipswitch
2. seven segment blue
3. Arduino Uno Master
4. Arduino Uno slave
5. ground

            b. Digram Blok


3. Rangkaian Simulasi dan Prinsip kerja [Kembali]
Gambar Rangkaian Sebelum Disimulasikan
                                    
           
Gambar Rangkaian Setelah Disimulasikan

                                        

PRINSIP KERJA
   Komunikasi SPI (Serial Peripheral Interface) pada Arduino Uno memungkinkan pertukaran data yang cepat dan efisien antara Arduino dan perangkat-perangkat lain seperti display digital. Dalam kondisi yang dijelaskan, Arduino Uno diatur sebagai master dalam bus SPI, mengirimkan data ke sebuah display yang bertindak sebagai slave. Setiap switch terhubung ke Arduino dengan konfigurasi pull-up, dan status switch dibaca oleh Arduino. Ketika dua switch diaktifkan bersamaan, Arduino menghitung jumlah switch yang aktif dan mengirimkan nilai tersebut ke display melalui SPI. Angka yang sesuai dengan jumlah switch yang aktif (dalam kasus ini, angka "2") akan ditampilkan pada digit pertama dari display. Metode ini mengizinkan Arduino untuk mengontrol dan memperbarui tampilan secara dinamis berdasarkan interaksi pengguna dengan switch, memanfaatkan kecepatan dan efisiensi SPI untuk komunikasi data yang sering dan cepat antar komponen.

4. FlowChart [Kembali]

a. 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]);
}
}
}

b. Flowchart








5. Kondisi [Kembali]

Kondisi  →Percobaan 4 Kondisi 5
        setiap 2 switcg aktif muncul angka sesuai jumlah switch yang aktif pada digit 1

6. Video Simulasi [Kembali]


7. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet 
Download Datasheet 

TP 1 P1K4




MODUL 3
PERCOBAAN 1 KONDISI 4

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai

2. Hardware dan diagram blok [Kembali]
      a. hardware






                                         
1. Switch 
2. LED
3. Arduino Uno Master
4. Arduino Uno Slave
5. beban

            b. Digram Blok






3. Rangkaian Simulasi dan Prinsip kerja [Kembali]
Gambar Rangkaian 




PRINSIP KERJA
    Komunikasi UART (Universal Asynchronous Receiver/Transmitter) pada Arduino Uno berfungsi untuk pertukaran data secara serial antar perangkat. Dalam skenario yang dijelaskan, Arduino Uno diatur untuk membaca status dari beberapa switch yang terhubung dengan konfigurasi pull-up, yang berarti switch akan mengirimkan sinyal LOW (aktif) ketika ditekan. Ketika satu switch aktif, Arduino mengirimkan perintah melalui UART untuk menjalankan LED dari LED 1 hingga 8 secara berurutan, menunjukkan pola "running LED" yang biasanya berarti LED menyala satu demi satu. Sementara itu, jika tiga switch aktif secara bersamaan, Arduino mengirim perintah untuk mengaktifkan "blinking" atau kedipan pada tiga LED secara spesifik. Dalam kasus ini, Arduino Uno bertindak sebagai pengendali yang menerima input dari switch dan mengirimkan perintah output melalui UART untuk mengatur perilaku LED tersebut, memungkinkan komunikasi dan kontrol yang efektif antara Arduino dan modul LED atau perangkat lain yang terhubung melalui UART.

4. FlowChart [Kembali]

a. Listing Program 

MASTER
//MASTER
#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9
bool b1,b2,b3,b4,b5,b6,b7,b8;
void setup()
{
Serial.begin(9600);
pinMode(DS1, INPUT_PULLUP);
pinMode(DS2, INPUT_PULLUP);
pinMode(DS3, INPUT_PULLUP);
pinMode(DS4, INPUT_PULLUP);
pinMode(DS5, INPUT_PULLUP);
pinMode(DS6, INPUT_PULLUP);
pinMode(DS7, INPUT_PULLUP);
pinMode(DS8, INPUT_PULLUP);
}
void loop()
{
int b8 = digitalRead(DS8);
int b7 = digitalRead(DS7);
int b6 = digitalRead(DS6);
int b5 = digitalRead(DS5);
int b4 = digitalRead(DS4);
int b3 = digitalRead(DS3);
int b2 = digitalRead(DS2);
int b1 = digitalRead(DS1);
// Hidupkan LED sesuai dengan tombol yang ditekan
if (b8 == LOW)
{
Serial.write('8');
}
else if (b7 == LOW)
{
Serial.write('7');
}
else if (b6 == LOW)
{
Serial.write('6');
}
else if (b5 == LOW)
{
Serial.write('5');
}
else if (b4 == LOW)
{
Serial.write('4');
}
else if (b3 == LOW)
{
Serial.write('3');
}
else if (b2 == LOW)
{
Serial.write('2');
}
else if (b1 == LOW)
{
Serial.write('1');
}
delay(20);
}

SLAVE
//SLAVE
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message;
void setup()
{
Serial.begin(9600);
for (int i = 0; i < 8; i++)
{
pinMode(led[i], OUTPUT);
}
}
void loop()
{
if (Serial.available())
{
message = Serial.read();
if (message == '1')
{
digitalWrite(led[0], 1);
}
else if (message == '2')
{
digitalWrite(led[1], 1);
}
else if (message == '3')
{
digitalWrite(led[2], 1);
}
else if (message == '4')
{
digitalWrite(led[3], 1);
}
else if (message == '5')
{
digitalWrite(led[4], 1);
}
else if (message == '6')
{
digitalWrite(led[5], 1);
}
else if (message == '7')
{
digitalWrite(led[6], 1);
}
else if (message == '8')
{
digitalWrite(led[7], 1);
}
}
delay(20);
digitalWrite(led[0], 0);
digitalWrite(led[1], 0);
digitalWrite(led[2], 0);
digitalWrite(led[3], 0);
digitalWrite(led[4], 0);
digitalWrite(led[5], 0);
digitalWrite(led[6], 0);
digitalWrite(led[7], 0);
}

b. Flowchart





5. Kondisi [Kembali]

Kondisi  →Percobaan 1 Kondisi 4
        Kondisi 4 : Semua Switch dalam kondisi Pull-up, 1 switch aktif mengaktifkan running led, dari led 1 hingga 8 sementara 3 switch aktif mengaktifkan blinking led pada 3 led.

6. Video Simulasi [Kembali]


7. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini