
Variable ตัวแปร
เราเคยพูดเรื่องตัวแปรกันไปแล้วคร่าวๆแล้วใน Arduino Basic [EP2] : Arduino Blink ไฟกระพริบ ส่วน EP นี้เราจะมาเจาะรายละเอียดในเรื่องของตัวแปรกัน ว่ามันคืออะไร? มันใช้ยังไง? หน้าตาเป็นแบบไหน? เขียนยังไง? แสดงผลกันยังไง? จะได้เลือกใช้กันถูกนะครับออเจ้า!!
ตัวแปร (Variable) คือ การจองพื้นที่ในหน่วยความจำสำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้น เพื่อความสะดวกในการเรียกใช้ข้อมูล ถ้าจะใช้ข้อมูลใดก็ให้เรียกผ่านชื่อของตัวแปรที่เก็บเอาไว้ ให้ลองจินตนาการถึงกล่องใบหนึ่งที่เอาใว้ใส่ของ แล้วเราก็ใส่ตามชนิดมันลงไป เช่นเราตั้งชื่อกล่องชื่อ number เราจะเอามันเก็บตัวเลข ก็เลยกำกับชนิดมันเป็น int แล้วเราก็ใส่ตัวเลขลงไป เวลาจะใช้ก็เรียกแค่ชื่อมัน นั้นก็คือ number แค่นี้เอง รูปแบบการเขียนก็จะเป็น
int number = 10;
ชนิดข้อมูล ชื่อตัวแปร = ข้อมูลที่ต้องการเก็บ;
ตัวแปรก็มีหลากหลายชนิดให้เราได้เลือกใช้งานกันครบตามรูปแบบทั่วไปที่ต้องการ ไม่ว่าจะตัวเลข ตัวอักขระ ชุดอักขระ(ข้อความ) ค่าความจริง ฯลฯ เอาหล่ะครับไปดูกันว่ามีอะไรบ้าง
| ชนิดข้อมูล | การเก็บข้อมูล | ขนาด |
| boolean | จริง (True : 1) หรือ เท็จ (False : 0) | 1 บิต |
| char | อักขระหรือตัวเลขในรูปตัวอักขระ | 1 ไบต์เก็บได้ตั้งแต่ -128 ถึง 127 |
| unsigned char | อักขระหรือตัวเลขในรูปตัวอักขระ | 1 ไบต์ เก็บได้ตั้งแต่ 0 ถึง 255 |
| byte | ไบต์ | 1 ไบต์ เก็บได้ตั้งแต่ 0 ถึง 255 |
| int | เก็บจำนวนเต็ม | 2 ไบต์ เก็บจำนวนเต็ม -32768 ถึง 32767 |
| unsigned int | เก็บจำนวนเต็ม ไม่คิดเครื่องหมาย |
2 ไบต์ เก็บจำนวนเต็ม ไม่คิดเครื่องหมาย 0 ถึง 65535 |
| long | เก็บจำนวนเต็มแบบยาว | 4 ไบต์ เก็บจำนวนเต็มแบบยาว -2147483648 ถึง 2147483649 |
| unsigned long | เก็บจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย | 4 ไบต์ เก็บจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย 0 ถึง 429467296 |
| float | เก็บทศนิยม | 4 ไบต์ เก็บตัวเลขแบบทศนิยม 3.4*10^-38 ถึง 3.4*10^38 |
| double (เฉพาะบอร์ด Arduino Due) | เก็บตัวเลขแบบทศนิยมแบบยาว | 8 ไบต์ เก็บตัวเลขแบบทศนิยม 3.4*10^-308 ถึง 3.4*10^308 |
| String | ชุดอักขระ (ข้อความ) | ไม่ระบุ |
มันก็จะดูเยอะ ๆ หน่อย ๆ จริง ๆ เราก็ใช้กันอยู่กันไม่กี่ตัวแหละครับ แต่เพื่อความเข้าใจเละเป็นพื้นฐานที่สำคัญสำหรับการนำไปสู่การเขียนโปรแกรมขั้นสูงขึ้น เรามาดูวิธีการสร้างและกำหนดตัวแปรในแตล่ะชนิด พร้อมทั้งการแสดงผลออกทาง Serial Monitor กันนะครับ

/*
* Coding By : Arduino-MakerZone > www.arduino-makerzone.com
* Sample Coding : Variable
*/
boolean Ex_boolean = true; // เก็บค่าความจริง (True : 1) หรือ เท็จ (False : 0)
char Ex_char = 'A'; // อักขระหรือตัวเลขในรูปตัวอักขระ เก็บได้ตั้งแต่ -128 ถึง 127
unsigned char Ex_unsigned_char = 255; // อักขระหรือตัวเลขในรูปตัวอักขระ เก็บได้ตั้งแต่ 0 ถึง 255
byte Ex_byte = 255; // ไบต์ เก็บได้ตั้งแต่ 0 ถึง 255
int Ex_int = -32768; // เก็บจำนวนเต็ม เก็บจำนวนเต็ม -32768 ถึง 32767
unsigned int Ex_unsigned_int = 65535; // เก็บจำนวนเต็ม ไม่คิดเครื่องหมาย เก็บจำนวนเต็ม ไม่คิดเครื่องหมาย 0 ถึง 65535
long Ex_long = -2147483648; // เก็บจำนวนเต็มแบบยาว เก็บจำนวนเต็มแบบยาว -2147483648 ถึง 2147483649
unsigned long Ex_unsigned_long = 429467296; // เก็บจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย เก็บจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย 0 ถึง 429467296
float Ex_float = 3.123456; // เก็บทศนิยม เก็บตัวเลขแบบทศนิยม 3.4*10^-38 ถึง 3.4*10^38
String Ex_String = "www.arduino-makerzone.com"; // ชุดอักขระ (ข้อความ)
void setup() {
Serial.begin(9600);
Serial.println(String("boolean : ") + String(Ex_boolean));
Serial.println(String("char : ") + String(Ex_char));
Serial.println(String("unsigned char : ") + String(Ex_unsigned_char));
Serial.println(String("byte : ") + String(Ex_byte));
Serial.println(String("int : ") + String(Ex_int));
Serial.println(String("unsigned int : ") + String(Ex_unsigned_int));
Serial.println(String("long : ") + String(Ex_long));
Serial.println(String("unsigned long : ") + String(Ex_unsigned_long));
Serial.println(String("float : ") + String(Ex_float, 6)); // กำกับจำนวนทศนิยมที่ต้องการเเสดง
Serial.println(String("String : ") + String(Ex_String));
}
void loop() {
}

เป็นไงหล่ะครับ .....จริงๆแล้วไม่ได้ซับซ้อนอะไรเลย การเขียนโปรแกรมมันเป็นศิลปะและคณิตศาสตร์ อาจารย์ท่านหนึ่งได้กล่าวกับผมไว้
Arduino.MakerZone