Apa itu Variable?

Variable adalah tempat sesuatu data disimpan dalam Arduino. Setiap Variable, boleh diberikan nama khusus mengikut apa yang anda tuliskan. Yang penting, jika nama Variable mempunyai lebih dari 1 perkataan, berikan “underscore” di antara perkataan tersebut.

Teruskan membaca untuk mengetahui dengan lebih lanjut mengenai variable.

Mengapa Perlu Declare Variable?

Arduino IDE software, hanya memahami coding-coding algorythm yang telah ditetapkan dalam software tersebut. Contohnya, software hanya memahami penulisan algorythm seperti digitalRead, analogRead, Serial.print dan sebagainya.

Apabila kita ingin menyimpan sesuatu maklumat seperti bacaan nilai analogRead dari sensor, ke dalam satu Variable, contohnya “x”, dan mahu digubah nilainya dengan operasi Matematik, “x” tersebut tidak dapat dikenali oleh Software Arduino IDE.

Lihat contoh berikut.

CONTOH : Bacaan dari Sensor Analog
Kita tahu, bacaan dari Sensor Analog dengan analogRead(pin) akan memberikan nilai bacaan antara 0~1023.

Apabila kita lihat applikasi Sensor kita, bacaan “850” sebagai contoh, menunjukkan Titik-Tengah bacaan sensor.

Namun, dalam formula pengiraan applikasi sensor kita, kita mahukan Titik-Tengah adalah nilai “0”.

Oleh itu, kita perlu tune sensor dan tolakkan nilai “850” dari bacaan sensor ke dalam bacaan yang baru atau bacaan sebenar, seperti contoh algorythm berikut:

BacaanSensor = analogRead(A3) - 850;

Dengan formula matematik di atas, Software Arduino IDE, tidak dapat mengenal pasti, apakah maksud “BacaanSensor”.

Lalu, kita perlu DECLARE algorythm varaible “BacaanSensor” sebagai tempat menyimpan data maklumat bacaan sensor yang baru, sebagai contoh berikut:

int BacaanSensor;

Sama juga dengan Variable “x” pada mula di atas, ia perlu di-declare seperti berikut:

int x;

int di atas adalah bermaksud “integer” dan teruskan bacaan untuk penerangan lanjut.

Variable tidak tertakluk hanya pada bacaan sensor, ia boleh menjadi nilai untuk apa-apa applikasi sekalipun.

Walau apa-apa nama sekali pun yang kita berikan pada variable, ia harus mengikuti Peraturan berikut:

  • Nama variable perlu konsisten sepanjang coding dengan size Huruf Besar dan Huruf Kecil seperti mana yang di-declare di peringkat awal.
  • Nama variable yang mempunyai 2 perkataan contohnya, jika tidak mahu dirapatkan, ia perlu diletakkan “Under Score” di tengah, contohnya berikut:
    Bacaan_Sensor

Jenis-jenis Variable

Terdapat beberapa jenis variable yang mempunyai limitasi-limitasi mereka yang tertentu. Berikut adalah jenis-jenis variable asas dalam Arduino IDE:

int 

int adalah bermaksud integer. Variable int hanya mampu menyimpan data maklumat NOMBOR dengan size maksimum 16-bit(2 byte). Senarai nombor yang boleh disimpan dalam variable int adalah dari -32,768 ke 32,767 sahaja.

Jika applikasi anda perlu menggunakan nombor yang lebih besar dari yang tertera di atas, anda perlu menggunakan variable yang berlainan.

Nota: Bagi board Arduino Due, variable int dapat menyimpan data sebesar 32-bit(4 byte), yang memberi nombor dari -2,147,483,648 ke 2,147,483,647

Cara menulis variable int adalah seperti berikut:

int VariableSaya;

Senarai variable-variable lain adalah seperti berikut:

  • unsigned int
    Size 16-bit(2-byte) dan range nombor dari 0 ke 65535
    Tiada nombor negatif.
  • long
    Size 32-bit(4-byte) dan range nombor dari -2,147,483,648 ke 2,147,483,647
  • unsigned long
    Size 32-bit(4-byte) dan range nombor dari 0 ke 4,294,967,295
    Tiada nombor negatif.
  • float
    Size 32-bit(4-byte) dan range nombor dari -3.4028235E+38 ke 3.4028235E+38
    Kejituan sehingga 6 ke 7 titik perpuluhan.
  • double
    Hampir sama seperti float.
    Size 32-bit(4-byte) dan range nombor dari -3.4028235E+38 ke 3.4028235E+38
    Kejituan sehingga 6 ke 7 titik perpuluhan.
  • byte
    Size 8-bit(1-byte) dan range nombor dari 0 ke 255
    Tiada nombor negatif. Hanya nombor positif.
  • char
    Kebiasaannya untuk menyimpan satu HURUF.
    Size 8-bit(1-byte) dan range nombor dari -128 ke 127
    (Click untuk membaca lebih lanjut mengenai “char”)
  • string
    Kebiasannya untuk menyimpan perkataan yang panjang.
    (Click untuk membaca lebih lanjut mengenai “string”)

Nota Kaki: String mampu menyimpan perkataan-perkataan yang panjang. Namun, lebih banyak perkataan, maka lebih banyak memory Arduino(yang kecil) digunakan. Kebiasaannya, programmers jarang menggunakan string, yakni jarang “menyimpan” maklumat string. Jika, sesuatu perkataan perlu ditulis, maka guna sahaja fungsi-fungsi Serial.print(“perkataan anda”) dan jangan simpan Perkataan tersebut dalam variable.

Mengapa ada banyak jenis variable?

Ini adalah kerana setiap Microprocessor (MCU) Arduino mempunyai limitasi pada physical memory mereka dalam chip MCU.

Bagi Arduino yang menggunakan MCU ATMega328 seperti UNO dan Nano, senarai memory mereka adalah seperti berikut:

Flash  32k bytes ( .5k digunakan untuk bootloader)
SRAM   2k bytes
EEPROM 1k byte

Bagi Arduino Mega pula, ia menggunakan chip MCU ATMega2560 yang mempunyai physical memory seperti berikut:

Flash  256k bytes ( 8k digunakan untuk bootloader)
SRAM   8k bytes
EEPROM 4k byte

Setiap Variable yang ditulis, akan memakan physical memory SRAM pada MCU. Contohnya, jika anda mempunyai 50 variable long, maka ia akan memakan SRAM sebanyak;

50 X 4 byte = 200 byte

Mungkin nampak kecil, namun penggunaan memory yang banyak juga dapat memperlahankan processor MCU untuk memproses data-data dan program lain.

Di mana Nak Declare Variable?

COVER PHOTO IDE.jpg

Untuk memahami ruangan software IDE dengan mudah, kita bahagikan ruangan yang ada kepada 4 bahagian sperti rajah di atas.

Bagi beginners, kami syorkan semua variable di-declare dalam ruangan “Defining Area”.

Walaubagaimanapun, variable boleh di-declare dimana-mana sahaja dalam Arduino IDE. Namun, sebarang aktiviti troubleshooting dan juga penggubahan algorythm akan menjadi complicated apabila semua variable tidak diletakkan di satu tempat.

Beberapa Artikel bacaan lain yang kami syorkan:

  • Digital Input/Output
  • Analog Input/Output
  • Servo Library
  • PWM
  • Serial Communication
  • SPI Communication
  • I2C Communication
  • Wireless Communication

MatGyver.my menyediakan forum perbincangan untuk komuniti DIY Hobbyist termasuk Arduino untuk yang Beginners mahupun Advance, bagi berbincang serta bertanyakan soalan mengenai topik-topik Arduino dan DIY. Soalan basic juga akandilaya, jangan risau. Daftarkan account dalam forum untuk mula menggunakannya, dan :

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Google+ photo

Anda sedang menulis komen melalui akaun Google+ anda. Log Out /  Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s