Mengisi nilai variable Array dari data Serial monitor
Permasalahan ini sebenarnya muncul ketika saya membuat project tentang bagaimana mengirimkan data secara wireless dari mikrokontroler Arduino melalui modul wireless tranmitter receiver 433 Mhz. Modul wireless transmitter receiver ini terdiri dari 2 buah perangkat, yang digunakan untuk transmitter (mengirimkan data) dan receiver (utuk menerima data), sebelumnya saya sudah pernah membahas mengenai modul ini, hanya saja membahas tentang pengenalan saja. Pengiriman data dengan menggunakan modul ini umumnya menggunakan array. Awalnya saya sempat kesulitan untuk menemukan cara bagaimana membuat sebuah Array dinamis pada Arduino, dimana nilai dari sensor dimasukkan kedalam suatu Array, sehingga nilai Array-nya dapat berubah ubah, sesuai dengan nilai yang diberikan oleh sensor. contoh dari Array umumnya yaitu nilai dimasukkan secara manual, misalnya seperti contoh berikut :
int valsen [10]={1,2,3,4,5,6,7,8,9};
misalnya Jika kita ingin menampilkan angka 3, maka perintahnya adalah valsen[3],
kebayang dong, kalau nilai output dari sensor mencapai ratusan, kan gak mungkin juga kita tulis satu persatu. Nah, oleh karena itu diartikel ini saya akan membahas mengenai bagaimana membuat sebuah Array dinamis pada Arduino, dengan kata lain, nilai dari Array dapat kita tentukan pada saat program sedang berjalan, bukan diinputkan secara manual di programnya seperti contoh diatas. Untuk contohnya, saya akan mengisi nilai Array dari data yang saya inputkan melalui serial monitor. Berikut adalah contoh programnya:
int valsen [10]={1,2,3,4,5,6,7,8,9};
misalnya Jika kita ingin menampilkan angka 3, maka perintahnya adalah valsen[3],
kebayang dong, kalau nilai output dari sensor mencapai ratusan, kan gak mungkin juga kita tulis satu persatu. Nah, oleh karena itu diartikel ini saya akan membahas mengenai bagaimana membuat sebuah Array dinamis pada Arduino, dengan kata lain, nilai dari Array dapat kita tentukan pada saat program sedang berjalan, bukan diinputkan secara manual di programnya seperti contoh diatas. Untuk contohnya, saya akan mengisi nilai Array dari data yang saya inputkan melalui serial monitor. Berikut adalah contoh programnya:
/*
created 29 Nov 2010
by Tom Igoe
Modified 30 Dec 2017
by papermindvention
*/
String inString = "";
void setup() {
//pengaturan untuk melakukan komunikasi serial
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
//intro
Serial.println("\n\nString toInt():");
Serial.println();
}
void loop() {
//membaca nilai yang diinputkan melalui Serial monitor
while (Serial.available() > 0) {
int inChar = Serial.read();
if (isDigit(inChar)) {
//merubah inputan menjadi sebuah char
//kemudian menambahkannya kedalam string
inString += (char)inChar;
}
if (inChar == '\n') {
Serial.print("Value:");
Serial.println(inString.toInt());
Serial.print("String: ");
//mengisi nilai array dengan inputan dari Serial monitor
int arr[]={ inString.toInt() };
//menampilkan isi dari array.
Serial.println(arr[inString.toInt()]);
inString = "";
}
}
}
Pembahasan Program
untuk program ini, saya mengambil dari contoh yang sudah tersedia di Arduino IDE, yaitu StringToInt. Hanya saja sedikit saya rubah, dengan menambahkan program
int arr[]={ inString.toInt() };
Serial.println(arr[inString.toInt()]);
untuk sederhananya, tentang bagaimana membuat array dinamis di Arduino mungkin bisa saya tuliskan sebagai berikut
Array[];
Array[]= { nilai input dari Sensor };
Print ( Array [nilai input dari Sensor] );
pada Artikel selanjutnya, insya Allah saya akan membahas tentang penerapan dari fungsi Array ini pada pengiriman data secara Wireless
untuk program ini, saya mengambil dari contoh yang sudah tersedia di Arduino IDE, yaitu StringToInt. Hanya saja sedikit saya rubah, dengan menambahkan program
int arr[]={ inString.toInt() };
Serial.println(arr[inString.toInt()]);
untuk sederhananya, tentang bagaimana membuat array dinamis di Arduino mungkin bisa saya tuliskan sebagai berikut
Array[];
Array[]= { nilai input dari Sensor };
Print ( Array [nilai input dari Sensor] );
pada Artikel selanjutnya, insya Allah saya akan membahas tentang penerapan dari fungsi Array ini pada pengiriman data secara Wireless
Disitu ada variabel isDigit, itu siapa yaa???
ReplyDeleteisDigit itu fungsi yang sudah disediakan oleh arduino nya gan, artike lengkapnya dapat dilihat di link ini
ReplyDeletehttps://www.arduino.cc/reference/en/language/functions/characters/isdigit/
Thank you for nice information. Please visit our web:
ReplyDeleteKampus Favorit
Kampus Favorit
Thank you for the article!
ReplyDelete