TP3 M3
Percobaan 3 Kondisi 1
Buatlah led menyala ketika potensiometer 0% dan led padam ketika potensiometer 100%
2. Gambar Rangkaian Simulasi
[Kembali]
Pada rangkaian digunakan 2 Arduino uno, potensiometer, dan LED. Pin 0 master dihubungkan ke potensiometer dan pin 13 slave dihubungkan ke LED.
Kode /Listing Programnya Yaitu :
//MASTER
#include<Wire.h>
#define MASTER_ADDR 9
int analogPin = 0;
int val = 0;
void setup() {
// put your setup code here, to run once:
Wire.begin();
}
void loop() {
// put your main code here, to run repeatedly:
delay(50);
val = map(analogRead(analogPin), 0, 1023, 255, 1);
Wire.beginTransmission(MASTER_ADDR);
Wire.write(val);
Wire.endTransmission();
}
//SLAVE
#include<Wire.h>
#define SLAVE_ADDR 9
int LED = 13;
int rd;
int br;
void setup() {
// put your setup code here, to run once:
pinMode(LED, OUTPUT);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
Serial.println("I2C slave demo");
}
void receiveEvent()
{
rd = Wire.read();
Serial.println(rd);
}
void loop() {
// put your main code here, to run repeatedly:
delay(50);
br = map(rd, 1, 255, 100, 2000);
if (br == 100)
{
digitalWrite(LED, LOW);
}
else if(br == 2000)
{
digitalWrite(LED, HIGH);
}
else
{
digitalWrite(LED, HIGH);
delay(br);
digitalWrite(LED, LOW);
delay(br);
}
}
Pada program Master, dideklarasikan pin yang akan digunakan 0 untuk potensiometer. Pada void setup, menginisiasikan library wire agar bisa digunakan dengan menggunakan perintah Wire.begin().
. Pada void loop, dimulai dengan memberikan delay sebesar 50 ms, lalu memapping (mengkslaskan) kembali nilai yang dibaca dari potensiometer yang awalnya memiliki skala dari 0 sampai 1023 (ADC 10 bit) diskalakan ke nilai 1 sampai 255.. lalu dimulai transfer data melalui MASTER ADDR, dan menulis nilai dari hasil mapping tersebut, setelah menulis nilainya, kemudian transmisi data dihentikan dengan perintah Wire.endTransmission().
Pada program Slave, dideklarasikan pin yang akan digunakan 13 untuk LED. Pada void setup, LED diatur menjadi output. menginisasikan transmisi dengan menggunakan perintah wire begin, lalu perintah wire on revceive. Selain itu, juga diinisiasikan juga serial monitor dengan nilai baud rate 9600 dan dirpint text "I2C slave demo". Pada void loop, dilakukan delay sebesar 50 ms untuk setiap perulangannya, lalu variabel br diskalakan dengan variabel input rd dari yang awalnya memiliki skala 1- 255 diubah menjadi skala 100 - 2000. lalu sesuai kondisi (apabila potensiometer 100 % LED mati, jika 0% LED hidup, dan apabila diantarnya LED kedap-kedip dengan delay sesuai dengan hasil pembacaan potensiometer tersebut).
5. Link Download
[Kembali]
- Download Rangkaian Simulasi [klik]
- Download video simulasi [ Klik ]
- Download Listing Program Slave [ Klik ]
- Download Listing Program Master [ Klik ]
- Download HTML [ klik ]
- Datasheet LED [klik]
- Datasheet Arduino UNO [klik]
- Library Arduino UNO [klik]
- Datasheet Potensiometer [klik]
Tidak ada komentar:
Posting Komentar