Data Types
Dưới đây là mô tả chi tiết các kiểu dữ liệu mà bạn đã liệt kê, bao gồm cả ví dụ và giải thích về cách sử dụng chúng trong Arduino:
1. array (Mảng)
- Mô tả:
- Mảng là một cấu trúc dữ liệu có thể lưu trữ nhiều giá trị cùng loại.
- Các phần tử trong mảng có thể được truy cập thông qua chỉ mục (index).
-
Ví dụ:
int numbers[5] = {1, 2, 3, 4, 5}; void setup() { Serial.begin(9600); for (int i = 0; i < 5; i++) { Serial.println(numbers[i]); } }
2. bool
- Mô tả:
- Lưu trữ giá trị logic
true
hoặcfalse
. - Là kiểu dữ liệu có kích thước 1 byte trên một số vi điều khiển.
- Lưu trữ giá trị logic
-
Ví dụ:
bool isOn = true; void loop() { if (isOn) { Serial.println("Đang bật!"); } else { Serial.println("Đang tắt!"); } delay(1000); }
3. boolean
- Mô tả:
- Tương tự như
bool
, lưu trữ giá trịtrue
hoặcfalse
. boolean
là một từ khóa kiểu dữ liệu đặc biệt trong Arduino (không có sự khác biệt lớn giữabool
vàboolean
trong Arduino).
- Tương tự như
-
Ví dụ:
boolean lightOn = false; void loop() { if (lightOn) { digitalWrite(LED_BUILTIN, HIGH); } else { digitalWrite(LED_BUILTIN, LOW); } delay(1000); }
4. byte
- Mô tả:
- Lưu trữ số nguyên không dấu từ 0 đến 255.
- Chiếm 1 byte bộ nhớ.
-
Ví dụ:
byte counter = 0; void loop() { Serial.println(counter); counter++; delay(1000); }
5. char
- Mô tả:
- Lưu trữ một ký tự ASCII hoặc một số nguyên có dấu trong phạm vi -128 đến 127.
- Chiếm 1 byte bộ nhớ.
-
Ví dụ:
char c = 'A'; void loop() { Serial.println(c); delay(1000); }
6. double
- Mô tả:
- Lưu trữ số thực, có dấu với độ chính xác cao hơn
float
. Tuy nhiên, trên một số vi điều khiển,double
vàfloat
có cùng độ chính xác. - Chiếm 4 byte bộ nhớ.
- Lưu trữ số thực, có dấu với độ chính xác cao hơn
-
Ví dụ:
double pi = 3.14159265359; void loop() { Serial.println(pi, 10); delay(1000); }
7. float
- Mô tả:
- Lưu trữ số thực, có dấu.
- Chiếm 4 byte bộ nhớ.
-
Ví dụ:
float temp = 25.5; void loop() { Serial.println(temp); delay(1000); }
8. int
- Mô tả:
- Lưu trữ số nguyên có dấu từ -32,768 đến 32,767 (16-bit).
- Chiếm 2 byte bộ nhớ.
-
Ví dụ:
int counter = 100; void loop() { Serial.println(counter); counter++; delay(1000); }
9. long
- Mô tả:
- Lưu trữ số nguyên có dấu từ -2,147,483,648 đến 2,147,483,647 (32-bit).
- Chiếm 4 byte bộ nhớ.
-
Ví dụ:
long largeNumber = 1000000000; void loop() { Serial.println(largeNumber); delay(1000); }
10. short
- Mô tả:
- Lưu trữ số nguyên có dấu từ -32,768 đến 32,767 (16-bit).
- Chiếm 2 byte bộ nhớ.
-
Ví dụ:
short smallNumber = 200; void loop() { Serial.println(smallNumber); delay(1000); }
11. size_t
- Mô tả:
- Là kiểu dữ liệu không dấu, được sử dụng để chỉ số lượng hoặc kích thước, thường được sử dụng trong các chỉ số mảng hoặc số lượng phần tử.
- Kích thước của
size_t
phụ thuộc vào kiến trúc của vi điều khiển (thường là 2 byte trên vi điều khiển 8-bit và 4 byte trên vi điều khiển 32-bit).
-
Ví dụ:
size_t arraySize = 10; int arr[arraySize] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; void loop() { for (size_t i = 0; i < arraySize; i++) { Serial.println(arr[i]); } delay(1000); }
12. string
- Mô tả:
- Là kiểu chuỗi ký tự đơn giản (không phải là đối tượng
String()
trong Arduino). - Thường được sử dụng trong C++ chuẩn, nhưng có thể sử dụng trong Arduino thông qua thư viện
String.h
.
- Là kiểu chuỗi ký tự đơn giản (không phải là đối tượng
-
Ví dụ:
string message = "Hello, World!"; void loop() { Serial.println(message.c_str()); // Chuyển đổi
string
thànhchar[]
để in ra delay(1000); }
13. String()
- Mô tả:
- Là một lớp đối tượng trong Arduino để làm việc với chuỗi ký tự.
- Khác với kiểu
char[]
,String
cho phép sử dụng các phương thức thao tác với chuỗi ký tự một cách dễ dàng.
-
Ví dụ:
String message = "Hello"; void loop() { message += " Arduino!"; // Nối chuỗi Serial.println(message); delay(1000); }
14. unsigned char
- Mô tả:
- Lưu trữ số nguyên không dấu từ 0 đến 255.
- Chiếm 1 byte bộ nhớ.
-
Ví dụ:
unsigned char value = 200; void loop() { Serial.println(value); delay(1000); }
15. unsigned int
- Mô tả:
- Lưu trữ số nguyên không dấu từ 0 đến 65,535.
- Chiếm 2 byte bộ nhớ.
-
Ví dụ:
unsigned int count = 60000; void loop() { Serial.println(count); delay(1000); }
16. unsigned long
- Mô tả:
- Lưu trữ số nguyên không dấu từ 0 đến 4,294,967,295.
- Chiếm 4 byte bộ nhớ.
-
Ví dụ:
unsigned long timestamp = millis(); void loop() { Serial.println(timestamp); delay(1000); }
17. void
- Mô tả:
- Dùng để chỉ các hàm không trả về giá trị.
-
Ví dụ:
void setup() { Serial.begin(9600); } void loop() { Serial.println("Đây là hàm không trả về giá trị"); delay(1000); }
18. word
- Mô tả:
- Là kiểu dữ liệu số nguyên không dấu tương tự như
unsigned int
, nhưng giá trị của nó nằm trong phạm vi 0 đến 65,535. - Chiếm 2 byte bộ nhớ.
- Là kiểu dữ liệu số nguyên không dấu tương tự như
-
Ví dụ:
word temperature = 1000; void loop() { Serial.println(temperature); delay(1000); }
Dưới đây là bảng tóm tắt các kiểu dữ liệu trong Arduino mà bạn yêu cầu:
Kiểu Dữ Liệu | Mô Tả | Phạm Vi Giá Trị | Kích Thước Bộ Nhớ |
---|---|---|---|
array | Cấu trúc dữ liệu chứa nhiều giá trị cùng loại. | Tùy thuộc vào số phần tử. | Tùy thuộc vào kích thước mảng |
bool | Lưu trữ giá trị logic true hoặc false . |
true hoặc false |
1 byte |
boolean | Tương tự bool , lưu trữ giá trị logic true hoặc false . |
true hoặc false |
1 byte |
byte | Số nguyên không dấu từ 0 đến 255. | 0 đến 255 | 1 byte |
char | Lưu trữ ký tự ASCII hoặc số nguyên có dấu. | -128 đến 127 | 1 byte |
double | Số thực với độ chính xác cao hơn float . |
Tùy thuộc vào vi điều khiển (thường giống float ) |
4 byte |
float | Số thực có dấu, độ chính xác thấp hơn double . |
Tùy thuộc vào vi điều khiển | 4 byte |
int | Số nguyên có dấu từ -32,768 đến 32,767. | -32,768 đến 32,767 | 2 byte |
long | Số nguyên có dấu từ -2,147,483,648 đến 2,147,483,647. | -2,147,483,648 đến 2,147,483,647 | 4 byte |
short | Số nguyên có dấu từ -32,768 đến 32,767. | -32,768 đến 32,767 | 2 byte |
size_t | Dùng để chỉ số lượng hoặc kích thước. | Tùy thuộc vào kiến trúc vi điều khiển | 2 byte (8-bit) hoặc 4 byte (32-bit) |
string | Chuỗi ký tự trong C++ chuẩn (không phải String() Arduino). |
Tùy thuộc vào chuỗi ký tự | Tùy thuộc vào chiều dài chuỗi |
String() | Lớp đối tượng dùng cho chuỗi ký tự trong Arduino. | Tùy thuộc vào chuỗi ký tự | Tùy thuộc vào chuỗi ký tự |
unsigned char | Số nguyên không dấu từ 0 đến 255. | 0 đến 255 | 1 byte |
unsigned int | Số nguyên không dấu từ 0 đến 65,535. | 0 đến 65,535 | 2 byte |
unsigned long | Số nguyên không dấu từ 0 đến 4,294,967,295. | 0 đến 4,294,967,295 | 4 byte |
void | Dùng cho các hàm không trả về giá trị. | Không có giá trị trả về | - |
word | Số nguyên không dấu từ 0 đến 65,535 (tương tự unsigned int ). |
0 đến 65,535 | 2 byte |