PERCOBAAN 7
Aplikasi I/O Sederhana untuk Kontrol Greenhouse
1. Rangkai semua komponen sesuai modul
2. Buat program di aplikasi arduino IDE
3. Setelah selesai masukkan program ke arduino di proteus
4. Jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
5. Selesai
2. Hardware dan diagram blok
[Kembali]
A. Hardware
1. Arduino Uno
2. Virtual Terminal
B. Digram Blok
3. Rangkaian Simulasi dan Prinsip kerja
[Kembali]
→Gambar Rangkaian Sebelum Disimulasikan
→Gambar Rangkaian Setelah Disimulasikan
Prinsip Kerja
Master:
Pada rangkaian di atas merupakan percobaan Aplikasi I/O Sederhana untuk Kontrol Greenhouse. Arduino yang diatas bertindak sebagai master dalam sebuah sistem yang menggunakan inputan dari keyboard melalui virtual terminal sebagai input. Pada master ini diatur inputan W untuk led putih, Y untuk led kuning dan P untuk led pink. Terdapat juga inputan yang merupakan gabungan dari led tersebut. Arduino akan terus memeriksa status setiap input dengan menggunakan fungsi digitalRead().
Slave:
Pada arduino yang kedua betindak sebagai Slave dimana nantinya akan menerima inputan dari Arduino master dan mengeluarkan output berupa LED. Prinsip kerja rangkaian di atas adalah untuk mengontrol output LED yang terhubung ke pin Arduino berdasarkan status dari virtual terminal yang terhubung ke pin digital lainnya. Pin-pin yang terhubung ke LED diatur sebagai input. jika inputan yang diberikan pada master sesuai dengan program slave maka akan menghasilkan output yang sesuai pula.
4. FlowChart
[Kembali]
//Master
#include <Wire.h>
char incomingByte; //menyimpan byte data yang diterima dari Serial Monitor
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Wire.begin(); //Menginisialisasi komunikasi I2C (Wire) pada Arduino
Serial.println("Welcome to my program");
// Print perintah untuk mengontrol lampu LED
Serial.println("For WHITE W");
Serial.println("For YELLOW Y");
Serial.println("For PINK P");
Serial.println("For WHITE YELLOW F");
Serial.println("For YELLOW PINK L");
Serial.println("For WHITE PINK 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); //Memulai transmisi I2C ke alamat slave dengan alamat 9
if (Serial.available()){ // Jika ada data tersedia di Serial Monitor
while(Serial.available()>0){ // Selama masih ada data tersedia
incomingByte=Serial.read(); // Membaca data dari Serial Monitor
Wire.write(incomingByte); // Mengirim data ke perangkat slave melalui I2C
Serial.println(incomingByte); // Menampilkan data yang dikirim ke Serial Monitor
Wire.endTransmission(); // Mengakhiri transmisi I2C
}
}
}
//Slave
#include <Wire.h>
#define WHITE 9
#define YELLOW 8 //deklarasi pin LED
#define PINK 7
float x=0;
void setup(){
pinMode(WHITE,OUTPUT);
pinMode(YELLOW,OUTPUT); // Mengatur pin LED sebagai output
pinMode(PINK,OUTPUT);
Wire.begin(9); // Memulai komunikasi I2C dengan alamat slave 9
Wire.onReceive(receiveEvent); // Menetapkan fungsi receiveEvent() untuk menangani data yang diterima
}
void receiveEvent(int bytes){
x=Wire.read(); // Membaca data yang diterima dari master dan menyimpannya ke variabel x
}
void loop(){
//applying conditions
if (x=='W'){ // Nyalakan LED putih
digitalWrite(WHITE,HIGH);
digitalWrite(YELLOW,LOW);
digitalWrite(PINK,LOW);
}
if (x == 'Y'){ // Nyalakan LED kuning
digitalWrite(WHITE,LOW);
digitalWrite(YELLOW,HIGH);
digitalWrite(PINK,LOW);
}
if (x == 'P'){ // Nyalakan LED pink
digitalWrite(WHITE,LOW);
digitalWrite(YELLOW,LOW);
digitalWrite(PINK,HIGH);
}
if (x == '0'){ // Matikan semua LED
digitalWrite(WHITE,LOW);
digitalWrite(YELLOW,LOW);
digitalWrite(PINK,LOW);
}
if (x == 'F'){ // Nyalakan LED putih dan kuning
digitalWrite(WHITE,HIGH);
digitalWrite(YELLOW,HIGH);
digitalWrite(PINK,LOW);
}
if (x == 'L'){ // Nyalakan LED kuning dan pink
digitalWrite(WHITE,LOW);
digitalWrite(YELLOW,HIGH);
digitalWrite(PINK,HIGH);
}
if (x == 'M'){ // Nyalakan LED putih dan pink
digitalWrite(WHITE,HIGH);
digitalWrite(YELLOW,LOW);
digitalWrite(PINK,HIGH);
}
if (x == 'H'){ // Nyalakan semua LED
digitalWrite(WHITE,HIGH);
digitalWrite(YELLOW,HIGH);
digitalWrite(PINK,HIGH);
}
}
B. Flowchart
Percobaan 7 berdasarkan Modul 3 tanpa kondisi.
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Tidak ada komentar:
Posting Komentar