Cara Menggunakan Array dalam Pemrograman Arduino
Array seperti variabel, mereka dapat menyimpan pembacaan sensor, string teks dan nilai Boolean seperti tinggi dan rendah. Tetapi variabel hanya dapat menyimpan satu nilai pada satu waktu. Array dapat menyimpan beberapa nilai sekaligus. Jika Anda menganggap variabel sebagai wadah penyimpanan data, array seperti wadah itu tetapi dengan pembagi yang dapat Anda gunakan untuk menyimpan banyak bagian data.
Array sangat berguna untuk mengontrol matriks LED, keypad matriks dan tampilan LCD pada Arduino.
Cara Menggunakan Array di Arduino
Kode untuk array terlihat seperti ini:
Membuat array disebut menginisialisasi array. Dalam contoh ini, tipe data array adalah integer (int) dan nama array adalah array[]. Angka di dalam tanda kurung siku adalah indeks array. Indeks array mendefinisikan jumlah elemen dalam array.
Elemen adalah nilai yang ingin Anda simpan dalam array. Dalam array ini terdapat lima elemen (3, 5, 2, 8, 9), sehingga indeks arraynya adalah 5. Elemen array ditulis di dalam kurung kurawal dan dipisahkan dengan koma. Ini disebut daftar penginisialisasi array.
Array berindeks nol, artinya elemen pertama diberi indeks nol, elemen kedua diberi indeks satu, elemen ketiga diberi indeks dua, dan seterusnya:
Untuk menggunakan elemen array dalam sketsa, tulis nama array dan masukkan indeks elemen dalam tanda kurung siku.
Misalnya, Anda ingin mencetak angka delapan dari larik di atas ke monitor serial. Elemen nomor delapan memiliki indeks tiga, sehingga kodenya akan terlihat seperti ini:
Ketika sebuah array diinisialisasi seperti ini:
Kami mendeklarasikan ukuran array dan menginisialisasi elemen dalam array secara bersamaan. Tetapi array juga dapat dideklarasikan tanpa menginisialisasi elemen. Elemen dapat ditambahkan ke array nanti di sketsa.
Untuk melakukan ini, deklarasikan array di bagian atas sketsa dengan menulis nama array dan indeks array dalam tanda kurung siku seperti ini:
Kemudian dalam sketsa, Anda dapat menyimpan nilai yang berbeda dalam array dengan mengatur array sama dengan elemen yang ingin Anda simpan dalam nomor indeks tertentu. Nomor indeks masuk ke dalam tanda kurung siku. Misalnya, ini menetapkan nomor empat untuk mengindeks dua larik array[]:
Array juga dapat diinisialisasi tanpa mengatur ukuran array. Alih-alih menempatkan ukuran array dalam tanda kurung siku seperti di atas, Anda dapat membiarkan tanda kurung kosong dan ukuran array akan ditentukan secara otomatis:
Tipe Data Array
Setiap tipe data dapat digunakan dalam array. Tipe data float, string, byte dan char semuanya dapat digunakan. Tetapi semua elemen dalam array harus memiliki tipe data yang sama.
Saat menggunakan array char, ukuran array harus lebih besar dari jumlah karakter sebenarnya. Elemen tambahan menyimpan karakter null. Misalnya, untuk menggunakan larik karakter untuk menyimpan kata "hello", gunakan ini:
Hanya ada lima karakter dalam "hello", tetapi indeks array adalah enam.
Contoh Proyek Menggunakan Array
Array biasanya digunakan dengan loop for untuk mengatur nomor pin secara otomatis atau untuk mengontrol status tegangan beberapa pin pada saat yang bersamaan.
Sebagai contoh bagaimana menggunakan array pada Arduino, mari kita membangun sebuah sirkuit yang mengontrol sebuah array dari LED. Setiap LED dalam array akan berkedip dan mati satu demi satu.
Proyek ini menggunakan bagian-bagian berikut:
- arduino uno
- Kabel jumper
- Papan projectboard
- Schmitt SN74HC14N
- Push button taktil
- Resistor 10K Ohm
- 1 uF kapasitor
Ikuti diagram pengkabelan ini untuk menghubungkan sirkuit:
Katoda setiap LED dihubungkan ke ground melalui resistor pembatas arus 220 Ohm. Setelah rangkaian terhubung, unggah kode ini ke Arduino:
Penjelasan Kode
Proyek ini sangat cocok untuk array karena ada banyak pin yang semuanya melakukan hal yang hampir sama, yakni menyalakan dan mematikan LED. Di bagian atas sketsa, kami menginisialisasi array yang dipanggil ledPins[] untuk menyimpan enam nomor pin yang terhubung ke LED (pin 7-12).
Biasanya kami akan mengatur mode pin untuk setiap pin di bagian setup() dengan fungsi pinMode() secara terpisah. Tapi sekarang pin disimpan dalam array ledPins[], kita dapat menggunakan for loop untuk mengaturnya hanya dengan dua baris kode. Dalam kondisi perulangan for, kita mendeklarasikan variabel count i dan menyetelnya sama dengan 0. Kemudian kami mengatur indeks setiap elemen dengan i < 6. Selanjutnya, i++ menambah variabel count i satu per satu dengan setiap iterasi dari for loop.
Di dalam tubuh perulangan for terdapat sebuah fungsi pinMode(). Argumen pertama dari fungsi pinMode() biasanya adalah nomor pin yang akan ditetapkan sebagai input atau output, tetapi sebagai gantinya kita dapat memasukkan array ledPins[] dengan variabel count i di dalam tanda kurung siku. Setiap pin akan menjadi output, jadi argumen kedua pinMode() adalah OUTPUT. Perulangan for akan berulang enam kali, mengatur mode pin ke output untuk setiap elemen dalam array ledPins[].
Di bagian loop() ini kami memiliki loop for lain yang akan membuat setiap LED berkedip dan mati selama 500 milidetik, satu demi satu.
Dalam kondisi perulangan for, kita mendeklarasikan variabel count j dan menyetelnya sama dengan 0. Kami masih ingin mengulang setiap elemen array ledPins[] sehingga kami mengatur kondisinya ke j < 6. Kemudian kita harus menambah hitungan j++ satu per satu dengan setiap iterasi dari for loop. Kode di badan perulangan for akan dieksekusi sekali untuk setiap elemen array ledPins[].
Di badan for loop, kita menulis elemen array ledPins[] secara digital yakni high dan low untuk mengedipkan dan mematikan LED. Tetapi alih-alih menggunakan nomor pin sebagai argumen pertama dari setiap fungsi digitalWrite(), kita dapat menggunakan array ledPins[] dengan variabel count j di dalam tanda kurung siku.
Jadi perulangan for akan dimulai dari elemen nol array ledPins[] (pin 12), tulis high, tunda selama 500 milidetik, lalu tulis low dan tunda lagi 500 milidetik. Pada siklus berikutnya melalui perulangan for, variabel count j akan bertambah satu, sehingga kode pada badan perulangan for akan dieksekusi pada elemen satu (pin 11). Jadi pin 11 akan ditulis high dan low selama 500 milidetik.
Loop for akan terus berputar hingga elemen lima, di mana Arduino keluar dari loop for dan kembali ke bagian atas loop(). Pada siklus berikutnya melalui loop, Arduino memasuki loop for lagi, mengedipkan enam LED hidup dan mati secara berurutan sekali lagi.
Array Dua Dimensi
Sampai saat ini kita telah berbicara tentang array satu dimensi tetapi ada juga array dua dimensi. Array satu dimensi hanya dapat menyimpan satu daftar nilai tetapi array dua dimensi dapat menyimpan dua daftar nilai.
Array dua dimensi biasanya digunakan untuk memprogram matriks LED, papan tombol matriks dan tampilan LCD . Kode untuk membuat array dua dimensi mirip dengan membuat array satu dimensi. Misalnya, kode ini akan mendeklarasikan array dua dimensi dengan enam elemen:
Angka di dalam tanda kurung siku pertama [2] menentukan jumlah baris dalam array. Angka pada pasangan kurung kedua [3] menentukan jumlah elemen di setiap baris. Jadi twoDimArray[2][3] mendefinisikan array dua dimensi dengan dua baris dan tiga kolom.
Elemen array dua dimensi diinisialisasi di dalam dua set kurung kurawal:
Mengakses elemen dalam array dua dimensi mirip dengan mengakses elemen dalam array satu dimensi. Seperti array satu dimensi, array dua dimensi diindeks nol. Namun, untuk mengakses elemen dalam array dua dimensi, baris dan kolom setiap elemen perlu ditentukan.
Misalnya, untuk mengakses nomor satu dalam array dua dimensi di atas, gunakan kode ini:
twoDimArray[][] dapat digunakan sebagai input ke Serial.print(), digitalWrite() atau fungsi lainnya.
Misalnya, untuk mencetak angka enam pada larik di atas ke monitor serial kita akan menggunakan kode berikut:
Semoga artikel ini membantu Anda untuk memahami cara menggunakan array di Arduino.
Sumber: Circuit Basics