ในโปรแกรม Arduino มีการเก็บค่าข้อมูลต่าง ๆ ทั้งอักษร ข้อความตัวอักษร ตัวเลขแบบจำนวนเต็ม ตัวเลขแบบทศนิยม ค่าความจริง และแบบอื่น ๆ
เพราะในการเขียนโปรแกรมต้องมีการนำค่าข้อมูลหลาย ๆ ตัวมาประมวลผล การจะดึงค่าแต่ละตัวได้ ก็ต้องมีตำแหน่งเก็บ หรือถ้าจะเข้าใจง่าย ก็คือมีชื่อที่ใช้อ้างอิง
ลองนึกถึงกล่องที่อยู่ในห้องที่มีพื้นที่จำกัด
กล่องแต่ละใบมีชื่อเรียกเพื่อให้หยิบได้ถูกต้อง
โดย 1 กล่องสามารถใส่ของได้เพียง 1 อย่าง
อุปกรณ์ที่ใส่ในกล่อง มีขนาดเล็กขนาดใหญ่คละกันไป
กล่องขนาดใหญ่ สามารถใส่ของที่ขนาดเล็กกว่าได้
แต่กล่องขนาดเล็ก ไม่สามารถใส่ของที่มีขนาดใหญ่กว่าได้
การเอาของขนาดเล็กไปใส่ในกล่องขนาดใหญ่ ย่อมเปลืองพื้นที่เก็บ
การเอาของที่ขนาดเหมาะสมกับกล่อง ทำให้ใช้พื้นที่ได้เหมาะสมที่สุด
ตัวแปรเปรียบได้กับกล่อง
ชื่อของตัวแปร เปรียบได้กับ ป้ายชื่อกล่อง
ตัวแปรเปรียบได้กับของที่ใส่ในกล่อง ของแต่ละชนิดก็มีขนาดไม่เท่ากัน
การประกาศตัวแปรให้เหมาะสม ก็จะประหยัดพื้นที่หน่วยความจำและทำงานได้ดีที่สุด
ลองดูตัวอย่างนี้
int a = 10;
สร้างตัวแปรชื่อ a สำหรับเก็บจำนวนเต็มค่า 10
int คือ ชนิดตัวแปรแบบจำนวนเต็ม เปรียบได้กับกล่อง
a คือ ชื่อที่ใช้เรียก เปรียบได้กับป้ายชื่อกล่อง
10 คือ ค่าที่ใช้เก็บ เปรียบได้กับของที่อยู่ในกล่อง
ลองดูตัวอย่างนี้
float a = 5.55;
float คือ ชนิดตัวแปรแบบจำนวนทศนิยม
a คือ ชื่อที่ใช้เรียก
5.55 คือ ค่าที่ใช้เก็บ
ลองฝึกตัวอย่างง่าย ๆ นี้
- ต้องการเก็บค่า 99.99 ไว้ในตัวแปรชื่อ all
99.99 เป็นตัวเลขแบบทศนิยม ดังนั้นต้องใช้ตัวแปรแบบ float เก็บ
ไม่สามรถใช้ตัวแปรแบบ int ค่า 99.99 ได้ เพราะ int มีขนาดเล็กกว่า float
เขียนโปรแกรมได้ดังนี้
float all = 99.99;
สำหรับการเก็บค่าตัวแปรแบบข้อความ string สามารถประกาศได้ดังนี้
String name = "ArduinoAll";
สังเกตว่าค่าข้อความจะอยู่ในเครื่องหมาย ฟันหนู "-";
เราสามารถใช้ตัวแปร int , float , string เพื่อใช้เก็บค่าข้อมูลต่าง ๆ ได้แล้ว สำหรับตัวแปรประเภทอื่น ๆ ดังข้อมูลนี้ ซึ่งเราจะได้เล่นกันในบทต่อ ๆ ไป
ตัวอย่างโคด
---
ชนิดของตัวแปรใน Arduino
boolean ใช้เก็บค่าข้อมูล ถูก ผิดเพียง 2 ค่า
char ใช้เก็บค่าตัวอักษร 1 ตัวสามารถกําหนดเป็นค่าตัวเลข หรือ ตัวอักษรไว้ภายใต้เครื่องหมาย ฟันเดียวก็ได้ เช่น 'A' หรือ 0x41 หรือ 65
byte ใช้เก็บค่าข้อจํานวนเต็มแบบไม่คิดเครื่องหมาย สามารถเก็บค่าข้อมูลได้ 256 ค่า คือ 0-255
int ใช้เก็บค่าข้อมูลจํานวนเต็ม แบบมีเครื่องหมาย สามารถใช้เก็บข้อมูลได้ 65536 ค่า คือ -32768 ถึง +32767
unsigned int ใช้เก็บค่าข้อมูลจํานวนเต็ม แบบไม่คิดเครื่องหมาย โดยสามารถใช้เก็บข้อมูลได้ 65536 ค่า คือ 0-65535
long ใช้เก็บค่าข้อมูลเลขจํานวนเต็มแบบคิดเครื่องหมาย โดยสามารถใช้เก็บข้อมูลได้ 4294967296 ค่า คือ -2,147,483,648 ถึง 2,147,483,647
unsigned long ใช้เก็บค่าข้อมูลเลขจํานวนเต็มแบบไม่คิดเครื่องหมาย โดยสามารถใช้เก็บข้อมูลได้ 4294967296 ค่า คือ 0 ถึง 4,294,967,295
float ใช้เก็บค่าข้อมูลที่เป็นเลขทศนิยมแบบคิดเครื่องหมาย สามารถเก็บค่าได้ ระหว่าง 3.4E-38 ถึง 3.4E+38 (-3.4028235E+38 ถึง 3.4028235E+38)
double ใน Arduino IDE มีค่าเหมือนตัวแปร float
void เป็นตัวแปรแบบที่ไม่มีการเก็บค่าใดๆ คือ ไม่มีค่านั้นเอง
String เป็นตัวแปรใช้เก็บข้อความ หรือ ตัวอักษรหลาย ๆ ตัว string ก็คือ array ของตัวแปร char