Modul III
COMMUNICATION
TUGAS PENDAHULUAN
1. Kondisi[kembali]
Ganti LED dengan motor DC. buatlah motor DC berputar searah jarum jam
dengan kecepatan maksimum pada saat potensiometer 100% dan kecepatan
minimum pada saat potensiometer 0%.
2. Gambar[kembali]
3. flowchart[kembali]
4. listing program[kembali]
PROGRAM ARDUINO MASTER:
//MASTER
#include <Wire.h>
#include<LiquidCrystal.h>
#define SLAVE_ADDR 9
LiquidCrystal lcd (2,3,4,5,6,7);
int analogPin = 0;
int val = 0;
void setup() {
Wire.begin();
lcd.begin(16,2);
}
void loop() {
delay(50);
val = map(analogRead(analogPin), 0, 1023, 255, 0);
Wire.beginTransmission(SLAVE_ADDR);
Wire.write(val);
Wire.endTransmission();
lcd.clear();
lcd.setCursor(0,1);
lcd.print(val);
}
PROGRAM ARDUINO SLAVE:
//SLAVE
#include<LiquidCrystal.h>
#include <Wire.h>
#define SLAVE_ADDR 9
LiquidCrystal lcd (2,3,4,5,6,7);
byte pin []={10};
int rd;
int br;
void setup() {
pinMode(10, OUTPUT);
lcd.begin(16,2);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
}
void receiveEvent(int howMany)
{
{
rd =Wire.read();
Serial.println(rd);
}
}
void loop() {
void receiveEvent();
{
while (0<Wire.available()){
rd =Wire.read();
}
br = map(rd, 0, 255, 0,255 );
digitalWrite(10, br);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(rd);
lcd.setCursor(0,1);
lcd.print(br);
delay(50);
}
}
5. Video[kembali]
4. listing program[kembali]
PROGRAM ARDUINO MASTER:
//MASTER
#include <Wire.h>
#include<LiquidCrystal.h>
#define SLAVE_ADDR 9
LiquidCrystal lcd (2,3,4,5,6,7);
int analogPin = 0;
int val = 0;
void setup() {
Wire.begin();
lcd.begin(16,2);
}
void loop() {
delay(50);
val = map(analogRead(analogPin), 0, 1023, 255, 0);
Wire.beginTransmission(SLAVE_ADDR);
Wire.write(val);
Wire.endTransmission();
lcd.clear();
lcd.setCursor(0,1);
lcd.print(val);
}
PROGRAM ARDUINO SLAVE:
//SLAVE
#include<LiquidCrystal.h>
#include <Wire.h>
#define SLAVE_ADDR 9
LiquidCrystal lcd (2,3,4,5,6,7);
byte pin []={10};
int rd;
int br;
void setup() {
pinMode(10, OUTPUT);
lcd.begin(16,2);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
}
void receiveEvent(int howMany)
{
{
rd =Wire.read();
Serial.println(rd);
}
}
void loop() {
void receiveEvent();
{
while (0<Wire.available()){
rd =Wire.read();
}
br = map(rd, 0, 255, 0,255 );
digitalWrite(10, br);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(rd);
lcd.setCursor(0,1);
lcd.print(br);
delay(50);
}
}
5. Video[kembali]
6. Prinsip kerja [kembali]
pada tugas pendahuluan modul 3 ini merupakan salah satu percobaan komunikasi kontroller yaitu komunikasi I2C. dimamna komponen yang digunakan yaitu 2 buah arduino potensio dan motor dc. selain itu juga digunakan LCD untuk melihat nilai output dan input rangkaian.
pertama kaki potensiometer terhubunng dengan sumber, ground, dan kaki ( pin ) analog arduino yang bertindak sebagai master. arus akan dialirkan oleh sumber menuju potensiometer. lalu potensiometer akan melanjutkan arus tersebut menuju kaki pin analog arduino dan ground. nilai yang di teruskan oleh potensio ke ground maupun kaki pin analog arduino bergantung pada persentase potensiometer yang diaturkan. nilai arus yang diteruskan ke kaki analog arduino dibaca. pada kaki analog arduino terdapat ADC dimana memiliki rentang antara 0 sampai dengan 1023. nilai pembacaan tersebut akan di mapping atau di petakan kedalam nilai dengan rentang nilai 0 sampai dengan 255. setelah nilai tersebut dipetakan maka akan diberi label "val"(berdasarkan program diatas). lalu arduino yang bertindak sebagai master akan memulai transmisi . lalu nialai yang berlebel "val" tadi dikirimkan oleh arduino master menuju arduino slave. saat semua sinyal atau nilai "val" terkirim maka arduino master akan mengakhiri proses transmisi. pada LCD akan ditampilkan nilai "val" yang merupakan hasil dari proses mapping nilai pembacaan potensiometer.
pada arduino bersifat sebagai penerima atau salve, besaran nilai atau sinyal yang di kirimkan arduino master akan diberi label "rd". dimana wire akan membaca nilai yang diterima dan diberi nama "rd". nilai rd tersebut memiliki nilai rentang 0 sampai dengan 255. lalu prosesn selanjutnya adalah pemetaan nilai "rd" menjadi "br". dimana nilai "rd" yang bekisar 0-255 akan dipetakan mennjadi nilai "br" yaitu 0-255. nilai br yang telah didapatkan akan di keluarkan oleh arduino menuju pin output. pada percobaan ini pin output yang digunakan adalah pin yang memiliki PWM pada kakinya. tujuannya adalah untuk memberikan perubahan kecepatan putar motor berdasarkan nilai lebar pulsa hasil mapping. pada percobaan ini kaki arduino yang bersifat sebagai slave adalah kaki digital 10. lalu motor yang terhubung dengan pin 10 akan berputar sesuai nilai output yang dihasilkan. pada LCD yang terhubung dengan arduuino slave akan ditampilkan nilia "rd" pada baris pertama dan nilia br pada baris kedua. ini sesuai dengan program diatas dan setCursor yang diaturkan pada program.
saat nilai potensio bernilai 100% maka nilai yang dihasilkan ADC adalah 1023. lalu dilakukan mapping sehingga menghasilkan nilai 255. niali 255 akan dilabeli val dan ditransmisikan oleh arduino samapai semua nilai "val" terkirim. proses ini terjadi pada arduino master. selanjutnya hasil yang dikirimkan oleh arduino master akan dibaca oleh arduino slave dan diberi label rd dengan nilai 255. nilai rd akan dimapping menjadi nilai br sehingga menghasilkan nilai br 255. lalu 255 akan dikeluarkan oleh kaki digital 10 arduino dan motor berputar maksimal. sebaliknya jika nilai potensio adalah 0 maka nilai hasil mapping yaitu val juga akan 0. 0 ditransmisikan dan diterima nilai sebesar 0 oleh slave dan dilabeli rd. nilai 0 rd tadi dimapping menjadi nilai br dan menghasilkan nilai 0. nilai br akan di keluaran kaki digital arduinno no 10 dengan nilai 0. akibatnya motor tidak akan berputar.
pada tugas pendahuluan modul 3 ini merupakan salah satu percobaan komunikasi kontroller yaitu komunikasi I2C. dimamna komponen yang digunakan yaitu 2 buah arduino potensio dan motor dc. selain itu juga digunakan LCD untuk melihat nilai output dan input rangkaian.
pertama kaki potensiometer terhubunng dengan sumber, ground, dan kaki ( pin ) analog arduino yang bertindak sebagai master. arus akan dialirkan oleh sumber menuju potensiometer. lalu potensiometer akan melanjutkan arus tersebut menuju kaki pin analog arduino dan ground. nilai yang di teruskan oleh potensio ke ground maupun kaki pin analog arduino bergantung pada persentase potensiometer yang diaturkan. nilai arus yang diteruskan ke kaki analog arduino dibaca. pada kaki analog arduino terdapat ADC dimana memiliki rentang antara 0 sampai dengan 1023. nilai pembacaan tersebut akan di mapping atau di petakan kedalam nilai dengan rentang nilai 0 sampai dengan 255. setelah nilai tersebut dipetakan maka akan diberi label "val"(berdasarkan program diatas). lalu arduino yang bertindak sebagai master akan memulai transmisi . lalu nialai yang berlebel "val" tadi dikirimkan oleh arduino master menuju arduino slave. saat semua sinyal atau nilai "val" terkirim maka arduino master akan mengakhiri proses transmisi. pada LCD akan ditampilkan nilai "val" yang merupakan hasil dari proses mapping nilai pembacaan potensiometer.
pada arduino bersifat sebagai penerima atau salve, besaran nilai atau sinyal yang di kirimkan arduino master akan diberi label "rd". dimana wire akan membaca nilai yang diterima dan diberi nama "rd". nilai rd tersebut memiliki nilai rentang 0 sampai dengan 255. lalu prosesn selanjutnya adalah pemetaan nilai "rd" menjadi "br". dimana nilai "rd" yang bekisar 0-255 akan dipetakan mennjadi nilai "br" yaitu 0-255. nilai br yang telah didapatkan akan di keluarkan oleh arduino menuju pin output. pada percobaan ini pin output yang digunakan adalah pin yang memiliki PWM pada kakinya. tujuannya adalah untuk memberikan perubahan kecepatan putar motor berdasarkan nilai lebar pulsa hasil mapping. pada percobaan ini kaki arduino yang bersifat sebagai slave adalah kaki digital 10. lalu motor yang terhubung dengan pin 10 akan berputar sesuai nilai output yang dihasilkan. pada LCD yang terhubung dengan arduuino slave akan ditampilkan nilia "rd" pada baris pertama dan nilia br pada baris kedua. ini sesuai dengan program diatas dan setCursor yang diaturkan pada program.
saat nilai potensio bernilai 100% maka nilai yang dihasilkan ADC adalah 1023. lalu dilakukan mapping sehingga menghasilkan nilai 255. niali 255 akan dilabeli val dan ditransmisikan oleh arduino samapai semua nilai "val" terkirim. proses ini terjadi pada arduino master. selanjutnya hasil yang dikirimkan oleh arduino master akan dibaca oleh arduino slave dan diberi label rd dengan nilai 255. nilai rd akan dimapping menjadi nilai br sehingga menghasilkan nilai br 255. lalu 255 akan dikeluarkan oleh kaki digital 10 arduino dan motor berputar maksimal. sebaliknya jika nilai potensio adalah 0 maka nilai hasil mapping yaitu val juga akan 0. 0 ditransmisikan dan diterima nilai sebesar 0 oleh slave dan dilabeli rd. nilai 0 rd tadi dimapping menjadi nilai br dan menghasilkan nilai 0. nilai br akan di keluaran kaki digital arduinno no 10 dengan nilai 0. akibatnya motor tidak akan berputar.
Komentar :
Posting Komentar