TUGAS PENDAHULUAN 2 (MODUL III COMMUNICATION)



MODUL III 
COMMUNICATION


    • Rangkailah seperti rangkaian berikut 
    • Buka Arduino IDE dan masukan listing program Upload program ke arduino 
    • Variasikan input yang ditekan dan amati keluarannya pada LED














Prinsip Kerja
Rangkaian ini berfungsi sebagai berikut:
Setup Awal
Program dimulai dengan meng-include library Wire.h untuk komunikasi I2C dan mendeklarasikan variabel char incomingByte untuk menampung data yang diterima dari komunikasi serial.
Di dalam fungsi setup(), Serial diatur dengan kecepatan 9600 baud, Wire diinisialisasi, dan pesan selamat datang serta petunjuk penggunaan ditampilkan di Serial Monitor.
Fungsi Loop Utama
Di dalam fungsi loop(), program akan memeriksa apakah ada data yang tersedia di Serial Monitor dengan menggunakan fungsi Serial.available().
Jika ada data yang tersedia, program akan masuk ke dalam loop while() untuk membaca dan mengirimkan data menggunakan komunikasi I2C melalui Wire.write().
Setelah data terbaca dan dikirim, Wire.endTransmission() digunakan untuk mengakhiri transmisi data.
Fungsi receiveEvent
Fungsi receiveEvent() dipanggil saat data diterima melalui I2C.
Data yang diterima disimpan dalam variabel x menggunakan Wire.read().
Fungsi Loop Utama (lanjutan)
Di dalam loop(), terdapat serangkaian kondisi if yang memeriksa nilai dari variabel x.
Jika x adalah 'R', 'G', atau 'B', maka LED merah, hijau, atau biru akan dinyalakan sesuai dengan kondisi yang ditetapkan.
Jika x adalah '0', semua LED akan dimatikan (LOW).
Selain itu, terdapat kondisi-kondisi tambahan seperti 'M', 'L', 'F', dan 'H' yang mengontrol kombinasi LED sesuai dengan petunjuk yang telah ditetapkan sebelumnya.










Listing Program

#include <Wire.h>
char incomingByte;
void setup() {
 // put your setup code here, to run once:
Serial.begin(9600);
Wire.begin();
 Serial.println("Welcome to my program");
Serial.println("if you want to ON RED Just print R");
Serial.println("For BLUE B");
Serial.println("FOR GREEN G");
Serial.println("For RG F");
Serial.println("For GB L");
Serial.println("For RB M");
Serial.println("All High H");
Serial.println("For all off just 0");
}
void loop() {
 // put your main code here, to run repeatedly:
Wire.beginTransmission(9);
if (Serial.available()){
 
 while(Serial.available()>0){
 
 incomingByte=Serial.read();
 Wire.write(incomingByte);
 Serial.println(incomingByte);
 Wire.endTransmission();
 
 
 
 }
 }
}


/*
* Before uploading this code remember some points
* I have selected some characters to desplay led
* print them in serial mode
* print G for Green led HIGH
* print R for RED led HIGH
* print B for BLUE led HIGH
* print 0 for ALL LOW
* print H for all HIGH
* print F for RB , M for RG and L for GB
* thanks for reading now you can use it
*/
#include <Wire.h>
#define RED 8
#define GREEN 9 //Defining lEDS
#define BLUE 7
float x=0;
void setup(){
 pinMode(RED,OUTPUT);
 pinMode(BLUE,OUTPUT);
 pinMode(GREEN,OUTPUT);
 Wire.begin(9);
 Wire.onReceive(receiveEvent);
 }
 void receiveEvent(int bytes){
 
 x = Wire.read(); 
 }
 void loop(){
 
 //applying conditions
 if (x=='R'){
 digitalWrite(RED,HIGH);
 digitalWrite(GREEN,LOW);
 digitalWrite(BLUE,LOW);
 
 }
if (x == 'G'){
 digitalWrite(RED,LOW);
 digitalWrite(GREEN,HIGH);
 digitalWrite(BLUE,LOW);
 }
 if (x == 'B'){
 digitalWrite(RED,LOW);
 digitalWrite(GREEN,LOW);
 digitalWrite(BLUE,HIGH);
 }
if (x == '0'){
 digitalWrite(RED,LOW);
 digitalWrite(GREEN,LOW);
 digitalWrite(BLUE,LOW);
 }
 if (x == 'M'){
 digitalWrite(RED,HIGH);
 digitalWrite(GREEN,HIGH);
 digitalWrite(BLUE,LOW);
 }
 if (x == 'L'){
 digitalWrite(RED,LOW);
 digitalWrite(GREEN,HIGH);
 digitalWrite(BLUE,HIGH);
 }
 if (x == 'F'){
 digitalWrite(RED,HIGH);
digitalWrite(GREEN,LOW);
 digitalWrite(BLUE,HIGH);
 }
 if (x == 'H'){
 digitalWrite(RED,HIGH);
 digitalWrite(GREEN,HIGH);
 digitalWrite(BLUE,HIGH);
 
 }
 }


Saat Praktikum

   Percobaan 7 (Tanpa Kondisi)




File HTML klik disini
Rangkaian Simulasi Proteus klik disini
File Video Rangkaian klik disini
File Arduino klik disini
Datasheet Komponen klik disini
 






Tidak ada komentar:

Posting Komentar