Serial.readString() ฟังก์ชัน Arduino

Serial Readstring Fangkchan Arduino



ในการเขียนโปรแกรมบอร์ดไมโครคอนโทรลเลอร์ใช้โปรแกรม Arduino หนึ่งในฟังก์ชันหลักของการเขียนโปรแกรม Arduino คือฟังก์ชัน Serial.readString() ในบทความนี้ เราจะลงลึกในรายละเอียดของฟังก์ชันนี้ กรณีการใช้งาน และวิธีการนำไปใช้ในการเขียนโปรแกรม Arduino

ทำความเข้าใจเกี่ยวกับฟังก์ชัน Serial.readString()

ฟังก์ชัน Serial.readString() เป็นส่วนหนึ่งของ Arduino Serial Library ซึ่งช่วยให้สามารถสื่อสารระหว่างไมโครคอนโทรลเลอร์กับคอมพิวเตอร์หรืออุปกรณ์ภายนอกอื่นๆ ได้

ฟังก์ชันนี้ช่วยให้ไมโครคอนโทรลเลอร์สามารถอ่านชุดอักขระที่ส่งมาจากการเชื่อมต่อแบบอนุกรม ฟังก์ชันอ่านข้อมูลจากบัฟเฟอร์อนุกรมและส่งกลับข้อมูลในรูปแบบของวัตถุสตริง







ฟังก์ชันนี้สืบทอดมาจากคลาสสตรีม



ไวยากรณ์

ไวยากรณ์ของฟังก์ชันนี้เป็นดังนี้:



อนุกรม. อ่านสตริง ( )

พารามิเตอร์

ฟังก์ชันนี้ไม่ใช้พารามิเตอร์ใดๆ อ่านวัตถุพอร์ตอนุกรมเท่านั้น





ส่งคืน

ส่งกลับสตริงที่มีอักขระที่ได้รับผ่านทางพอร์ตอนุกรม สตริงลงท้ายด้วยอักขระตัวสุดท้ายที่ได้รับ ซึ่งมักจะเป็นอักขระขึ้นบรรทัดใหม่ (\n) หากไม่มีอักขระในบัฟเฟอร์อนุกรม ฟังก์ชันจะส่งกลับสตริงว่าง (“”)

บันทึก: หากมีอักขระบรรทัดสุดท้ายในข้อมูล ฟังก์ชันจะไม่สิ้นสุดก่อนกำหนด สตริงที่ส่งคืนอาจมีอักขระการขึ้นบรรทัดใหม่



ตัวอย่างโค้ด

โค้ดด้านล่างแสดงการใช้ฟังก์ชัน Serial.readString() ในการเขียนโปรแกรม Arduino:

โค้ดด้านล่างแสดงการใช้ฟังก์ชัน Serial.readString() ในการเขียนโปรแกรม Arduino:

เป็นโมฆะ ติดตั้ง ( ) {
อนุกรม. เริ่ม ( 9600 ) ;
}
เป็นโมฆะ ห่วง ( ) {
อนุกรม. พิมพ์ ( 'ป้อนข้อมูล:' ) ;
ในขณะที่ ( อนุกรม. มีอยู่ ( ) == 0 ) { } //รอข้อมูลที่มีอยู่
สตริง teststr = อนุกรม. อ่านสตริง ( ) ; //อ่านจนหมดเวลา
ทดสอบ ตัดแต่ง ( ) ; // ลบ \r \n ช่องว่างใด ๆ จากจุดสิ้นสุดของสตริง
อนุกรม. พิมพ์ ( 'ป้อนข้อมูล: ' ) ;
อนุกรม. พิมพ์ ( ทดสอบ ) ;
ถ้า ( ทดสอบ == 'สวัสดี' ) {
อนุกรม. พิมพ์ ( 'สวัสดีเช่นกัน!' ) ;
} อื่น {
อนุกรม. พิมพ์ ( “ฉันขอโทษ ฉันไม่เข้าใจที่คุณป้อน” ) ;
}
}

ใน ติดตั้ง() ฟังก์ชันการสื่อสารแบบอนุกรมเปิดใช้งานโดยใช้อัตราบอด 9600

ใน วนซ้ำ () ฟังก์ชัน รหัสจะแจ้งให้ผู้ใช้ป้อนข้อมูลโดยพิมพ์ 'Enter data:' ไปยังจอภาพอนุกรม จากนั้นจะรอให้ข้อมูลพร้อมใช้งานโดยตรวจสอบว่าซีเรียลบัฟเฟอร์ว่างหรือไม่โดยใช้ฟังก์ชัน Serial.available()

เมื่อข้อมูลพร้อมใช้งาน โค้ดจะอ่านข้อมูลเป็นสตริงโดยใช้ฟังก์ชัน Serial.readString() และลบอักขระช่องว่างที่ส่วนท้ายของสตริงโดยใช้ฟังก์ชัน trim()

จากนั้นรหัสจะเปรียบเทียบสตริงอินพุตกับสตริง 'สวัสดี' หากสตริงอินพุตเป็น 'สวัสดี' รหัสตอบสนองโดยการพิมพ์ “สวัสดีเช่นกัน!” ไปยังจอภาพแบบอนุกรม มิฉะนั้น จะพิมพ์ว่า “ฉันขอโทษ ฉันไม่เข้าใจสิ่งที่คุณป้อน” ไปยังจอภาพแบบอนุกรม จากนั้น ฟังก์ชัน loop() จะวนซ้ำ เพื่อให้ผู้ใช้ป้อนข้อมูลเพิ่มเติม

เอาต์พุต

ในเอาต์พุต เราสามารถเห็นสตริงต่างๆ ที่โค้ดอ่านจากผู้ใช้และจับคู่กับสตริง 'hello'

บทสรุป

ฟังก์ชัน Serial.readString() ใน Arduino อ่านข้อมูลอนุกรมที่ส่งจากคอมพิวเตอร์หรืออุปกรณ์อื่นๆ ไปยังบอร์ด เมื่อใช้ฟังก์ชันนี้ เราสามารถอ่านและเปรียบเทียบข้อมูลสตริงอนุกรมอินพุตเพื่อสร้างการตอบสนองเอาต์พุต เช่น การควบคุมเซ็นเซอร์และอุปกรณ์ฮาร์ดแวร์