Tipe Data
Selain tipe dasar (built-in), Arduino juga mendukung tipe data turunan (derived types). Tipe ini dibentuk berdasarkan tipe dasar dan sering digunakan untuk mengelola kumpulan data, alamat memori, atau fungsi, berikut adalah tipe turunan.
A. Array
Kumpulan elemen dengan tipe data yang sama, disimpan dalam lokasi memori berurutan. Keunggulan adalah memudahkan penyimpanan dan pemrosesan data yang jumlah banyak dan dapat diakses menggunakan indeks, mulai dari 0. Sedangkan, keterbatasannya adalah ukurannya tetap setelah dideklarasikan yang artinya tidak bisa diubah saat program berjalan. Perlu di ingat dalam array jumlah elemen harus diketahui saat deklarasi dan perlu hati-hati untuk array yang besar agar tidak melebihi kapasitas SRAM. Berikut adalah contoh array:

B. Pointer
Merupakan variabel yang menyimpan alamat memori variabel lain, bukan nilainya langsung. Pointer berguna untuk mengakses atau memodifikasi data melalui alamat memori, menghemat memori ketika melewatkan data besar ke fungsi, dan digunakan pada beberapa operasi tingkat rendah. Berikut adalah contoh array:

Keterangan:
& → mengambil alamat variabel.
* → mengakses nilai yang disimpan di alamat tersebut.
Jika diperhatikan array dan pointer memiliki kesamaan, namun, array dan pointer tidak identik sepenuhnya, karena array memiliki ukuran tetap yang ditentukan saat kompilasi dan array tidak dapat dialihkan ke alamat lain.
C. Function (Tipe Data Fungsi)
Fungsi dapat dianggap sebagai “tipe data” karena dapat mengembalikan nilai tertentu. Fungsi memiliki tipe pengembalian seperti int, float, bool, atau void jika tidak mengembalikan apa pun. Kegunaan fungsi utamanya untuk membagi program menjadi bagian-bagian yang lebih kecil dan terstruktur dan memudahkan pemeliharaan dan pemanggilan berulang. Berikut contoh tipe data fungsi:
