Trong bài viết này Điện Tử Tương Lai sẽ chia sẻ về một phương pháp để có được kết quả tương tự như hàm printf() trong Arduino.
Nhận đầu ra tương tự như printf() bằng cách sử dụng các hàm sprintf() và Serial.print() cùng nhau trong Arduino
Arduino không cung cấp hàm printf(). Nhưng nếu bạn muốn nhận đầu ra như hàm printf(), bạn có thể lấy nó bằng cách sử dụng hàm sprintf() và Serial.print() cùng nhau. Đầu tiên, bạn cần sử dụng hàm sprintf() để định dạng đầu ra của bạn và lưu trữ nó trong một biến char. Sau đó, sử dụng hàm Serial.print() để xuất biến lên serial monitor.
int time = 0;
char buff[50];
void setup() {
Serial.begin(9600);
}
void loop() {
sprintf(buff, "the value is %d seconds", time++);
Serial.println(buff);
}
Trong đoạn mã trên, buff là một biến kiểu char để lưu trữ đầu ra được định dạng mà bạn muốn hiển thị trên serial monitor. Lưu ý rằng phương pháp này không được khuyến khích sử dụng vì nó sẽ tốn rất nhiều không gian mã. Thay vào đó, bạn có thể sử dụng hàm Serial.print() hai hoặc ba lần để nhận được kết quả tương tự như hàm printf(). Ngoài ra, phương pháp này không hoạt động đối với số thực dấu phẩy động. Bạn cần chuyển đổi thành một chuỗi cho số thực dấu phẩy động và sau đó bạn có thể sử dụng phương pháp này.
Nhận đầu ra tương tự như printf() Chỉ sử dụng hàm Serial.print() trong Arduino
Nếu phương pháp trên không hiệu quả với bạn thì bạn có thể thử phương pháp này. Thay vì sử dụng phương pháp trên, bạn chỉ có thể sử dụng hàm Serial.print() để nhận được kết quả tương tự như hàm printf(). Nhưng chức năng này sẽ không hoạt động đối với số thực dấu phẩy động. Đối với số dấu phẩy động, bạn cần chuyển đổi thành một chuỗi và sau đó bạn có thể sử dụng hàm này.
int time = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("the value is ");
Serial.print(time++);
Serial.println(" seconds");
}
Phương pháp này cũng sẽ cung cấp cho bạn kết quả tương tự như phương pháp trên, nhưng tốt hơn và dễ sử dụng.
Hotline: 0979 466 469