Hello Sahabat Anak Kendali.
pada kesempatan kali ini saya akan menulis artikel tentang Tutorial Arduino, Contoh Aplikasi Komunikasi Serial Dua Arduino.
sebelumnya pada Artikel Arduino, Cara Dua Arduino Komunikasi Serial saya telah menjelaskan Cara bagaimana supaya dua arduino saling berhubungan untuk melakukan suatu perintah, dimana terdapat penerima dan pengirim, anggap saja Master dan Slave,
untuk apa kegunaan komunikasi dua Arduino Serial ? sebenarnya tidak hanya dua, mungkin kita butuh 3 Arduino, atau bahkan lebih supaya mereka saling brkomunikasi. tergantung kebutuhan.
dan kali ini saya akan memberikan contoh aplikasi atau kegunaan dari Arduino berkomunikasi dengan Arduino lainya menggunakan komunikasi Serial.
Ceritanya begini :
kita memiliki Ide suatu project yang cukup kompleks dimana terdapat banyak aktuator yang harus di kontrol atau dikendalikan dan juga terdapat banyak sensor sebagai umpan balik dari aktuator tersebut,
katakanlah kita membuat robot berkaki yang terdapat banyak servo dan juga sensor sensornya, seperti sensor jarak, sensor suara, sensor kompas dan sensor lainya.
sangat tidak manusiawi jika kita memaksa satu Arduino untuk mengakses banyak Servo sekaligus banyak Sensor. dengan Menggunakan Komunikasi Dua Arduino, kita akan membagi tugas Arduino untuk mengendalikan banyak Servo dan Arduino untuk Mengakses Sensor.
dan tulisan kali ini saya hanya akan mencontohkan cara mengontrol Motor DC pada Arduino A dengan mengirim data dari Arduino B, dan datanya saya hanya ambil dari tegangan analog potensio meter.
Sekarang kita akan membuat programnya, pertama kita tentukan dulu Master Arduino dan Slave Arduino nya
baiklah yang ada Potensiometer kita jadikan Arduino Slave. dan untuk yang ada motornya kita jadikan Arduino Master
Program Arduino Master
#include <SoftwareSerial.h>
SoftwareSerial serial (2,3);
int val1 = 0;
#define in1 5
#define in2 6
#define in3 9
#define in4 10
void motor(int kir, int kan){
if (kir >= 0){
digitalWrite (6, 0);
analogWrite (5, kir);
}
else if (kir < 0){
digitalWrite (6, 1);
analogWrite (5, kir+255);
}
if (kan >= 0){
digitalWrite (10, 0);
analogWrite (9, kan);
}
else if (kan < 0){
digitalWrite (10, 1);
analogWrite (9, kan+255);
}
}
void setup() {
// put your setup code here, to run once:
pinMode (6, OUTPUT);
pinMode (10, OUTPUT);
Serial.begin(9600);
serial.begin(9600);
Serial.println(" Visit www.anakkendali.com");
}
String data;
void loop() {
// put your main code here, to run repeatedly:
while (serial.available()>0){
delay(10);
char c = serial.read();
data += c;
}
if(data.length()>0){
// Serial.println(data);
val1 = data.toInt();
motor (val1,~val1);
Serial.print("Nilai PWM 1 = ");
Serial.print(val1);
Serial.print("t");
Serial.print("Nilai PWM 2 = ");
Serial.println(~val1);
//data = "";
}
}
Program Arduino Slave
#include <SoftwareSerial.h>
SoftwareSerial serial (2,3);
int adcval=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
serial.begin(9600);
Serial.println(" Visit www.anakkendali.com");
}
void loop() {
// put your main code here, to run repeatedly:
adcval = analogRead(A0);
Serial.print("Data yang Dikirim : ");
Serial.print(adcval);
serial.print(adcval);
delay(100);
}
mungkin cukup sekian artikel kali ini, jika ada kesulitan silahkan ditanyakan pada kolom komentar dibawah ini.
dan jangan lupa untuk membagikan artikel ini di akun media sosial kamu.