admin gửi vào
- 13364 lượt xem
Mục đích
Qua ví dụ này bạn sẽ biết cách làm thế nào để lấy độ dài của một chuỗi và cắt gọn chuỗi đó. Bài này chỉ nói về kiến thức lập trình nên bạn chi cần duy nhất một mạch Arduino đã được kết nối tới máy tính là đủ.
Lập trình
Làm thế nào để lấy được độ dài một chuỗi?
String txtMsg = ""; // biến dùng để lưu chuỗi được gửi từ máy tính int lastStringLength = txtMsg.length(); // độ dài của chuỗi trước đó void setup() { // Mở cổng Serial ở baudrate 9600 Serial.begin(9600); while (!Serial) { ; // đợi mở cổng Serial. Chỉ cần thiết đối với mạch Arduino Leonardo } // Gửi một thông báo là phần setup đã hoạt động xong. Serial.println("\n\nString length():"); Serial.println(); } void loop() { // thêm tất cả những ký tự nhận được từ Serial Monitor while (Serial.available() > 0) { char inChar = Serial.read(); txtMsg += inChar; delay(2); //Bạn hãy thử bỏ dòng này xem :). //Rồi sau đó thêm một bước nữa ở setup, bạn hãy nâng baudrate lên thành 115200! } // Xuất thông báo if (txtMsg.length() != lastStringLength) { Serial.println(txtMsg); Serial.println(txtMsg.length()); // Nếu độ dài chuỗi bé hơn 140 thì xuất thông báo này if (txtMsg.length() < 140) { Serial.println("Day la mot thong bao xuc tich"); } else { Serial.println("Thong bao nay qua dai!"); } // lưu lại độ dài của chuỗi này để cho lần nhận dữ liệu tiếp theo lastStringLength = txtMsg.length(); } }
Làm thế nào để cắt gọn chuỗi ấy?
Nói về thuật ngữ cắt gọn một tí nhé. Cắt gọn sẽ cắt bỏ những ký tự "trắng" ở đầu và cuối chuỗi. Các ký tự trắng bao gồm: Khoảng cách (Space bar) (bảng ASCII 32), tab (bảng ASCII 9), veritical tab (bảng ASCII 11), form feed (bảng ASCII 12), carriage return (bảng ASCII 12), và newline (\n) (bảng ASCII 10).
void setup() { //Mở cổng Serial với mức baudrate 9600 Serial.begin(9600); while (!Serial) { ; // đợi cổng Serial được mở. Chỉ cần ở mạch Arduino Leonardo } // gửi một thông báo Serial.println("\n\nString length() & trim():"); Serial.println(); } void loop() { // đây là một chuỗi với những khoảng trắng String stringOne = "Hello! "; Serial.print(stringOne); Serial.print("<--- ket thuc chuoi. Do dai la: "); Serial.println(stringOne.length()); // cắt gọn chuỗi stringOne.trim(); Serial.print(stringOne); Serial.print("<--- ket thuc chuoi. Do dai la: "); Serial.println(stringOne.length()); // ngừng vòng loop while(true); }