Membuat Array Dinamis pada Arduino

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:
/* 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

Comments

  1. Disitu ada variabel isDigit, itu siapa yaa???

    ReplyDelete
  2. isDigit itu fungsi yang sudah disediakan oleh arduino nya gan, artike lengkapnya dapat dilihat di link ini
    https://www.arduino.cc/reference/en/language/functions/characters/isdigit/

    ReplyDelete
  3. Thank you for nice information. Please visit our web:

    Kampus Favorit
    Kampus Favorit

    ReplyDelete

Post a Comment