Serial.print() และ Serial.println() เป็นสองคำสั่งที่ใช้บ่อยที่สุดสำหรับการสื่อสารแบบอนุกรมใน Arduino บทความนี้จะกล่าวถึงความแตกต่างระหว่าง Serial.print() และ Serial.println() และส่งผลต่อโครงการ Arduino ของคุณอย่างไร
สารบัญ
- การสื่อสารแบบอนุกรมคืออะไร
- Serial.print()
- Serial.println()
- ความแตกต่างระหว่าง Serial.print() และ Serial.println()
- บทสรุป
การสื่อสารแบบอนุกรมคืออะไร
ก่อนที่เราจะดำดิ่งสู่ความแตกต่างระหว่าง Serial.print() และ Serial.println() เรามาทำความเข้าใจกันก่อนว่าอะไร การสื่อสารแบบอนุกรม เป็น. การสื่อสารแบบอนุกรม เป็นกระบวนการรับ-ส่งข้อมูล การใช้ Arduino นี้สามารถถ่ายโอนข้อมูลได้ครั้งละหนึ่งบิตด้วยโปรโตคอลการสื่อสารแบบอนุกรม ใน Arduino เราใช้วัตถุ Serial เพื่อแลกเปลี่ยนข้อมูลกับพีซีโดยใช้พอร์ต USB
การสื่อสารแบบอนุกรม เป็นสิ่งจำเป็นสำหรับการดีบักและตรวจสอบพฤติกรรมของโครงการ Arduino คุณสามารถใช้เพื่อพิมพ์การอ่านเซ็นเซอร์ ดีบักโค้ด หรือแสดงข้อความบนหน้าจอคอมพิวเตอร์
Serial.print()
Serial.print() เป็นฟังก์ชันที่ส่งข้อมูลไปยังพอร์ต Serial แบบสตรีมต่อเนื่อง อนุญาตให้คุณส่งข้อมูลเป็นสตริง อักขระ หรือค่าตัวเลข ตัวอย่างเช่น รหัสที่กำหนดส่งสตริง “ สวัสดีชาวโลก! ” ไปยังพอร์ตอนุกรม Arduino:
Serial.print ( 'สวัสดีชาวโลก!' ) ;
Serial.print() ไม่เพิ่มการขึ้นบรรทัดใหม่หรือการขึ้นบรรทัดใหม่เมื่อสิ้นสุดข้อมูล ดังนั้นข้อมูลจะถูกพิมพ์อย่างต่อเนื่องในบรรทัดเดียวกัน
Serial.println()
Serial.println() เหมือนกับ Serial.print() แต่จะเพิ่มอักขระตัวแบ่งบรรทัด (\n) ที่ส่วนท้ายของข้อมูล สิ่งนี้แสดงให้เราเห็นว่าทุกครั้ง Serial.println() ฟังก์ชันถูกเรียกใช้ คำสั่งพิมพ์ถัดไปจะเริ่มในบรรทัดใหม่ ตัวอย่างเช่น รหัสที่กำหนดส่งสตริง “ สวัสดีชาวโลก! ” และเพิ่มตัวแบ่งบรรทัด:
Serial.println ( 'สวัสดีชาวโลก!' ) ;
สิ่งนี้จะพิมพ์“ สวัสดีชาวโลก! ” บนขั้วต่ออนุกรมของ Arduino
ความแตกต่างระหว่าง Serial.print() และ Serial.println()
ความแตกต่างหลักระหว่าง Serial.print() และ Serial.println() คือว่า Serial.print() ส่งข้อมูลเป็นกระแสต่อเนื่องในขณะที่ Serial.println() ส่งข้อมูลโดยมีตัวแบ่งบรรทัดที่ส่วนท้าย
ตอนนี้เราจะครอบคลุมโค้ดตัวอย่างที่อธิบายการทำงานของฟังก์ชันทั้งสองนี้
Serial.print() ตัวอย่าง
ต่อไปนี้เป็นรหัสที่อธิบายการใช้งานของ Serial.print() :
การตั้งค่าเป็นโมฆะ ( ) {Serial.begin ( 9600 ) ; // เริ่มต้นการสื่อสารแบบอนุกรมที่ 9600 อัตราบอด
}
วนเป็นโมฆะ ( ) {
int สุ่มค่า = สุ่ม ( 0 , 1023 ) ; // สร้างค่าสุ่มระหว่าง 0 และ 1023
Serial.print ( 'ค่าสุ่ม: ' ) ; // พิมพ์ฉลาก
Serial.print ( ค่าสุ่ม ) ; // พิมพ์ค่าสุ่มในบรรทัดใหม่
ล่าช้า ( 2543 ) ; // รอ สำหรับ 500 มิลลิวินาทีก่อนพิมพ์อีกครั้ง
}
รหัสนี้เริ่มต้นการสื่อสารแบบอนุกรมด้วยอัตราบอด 9600 ในฟังก์ชัน setup() จากนั้น ฟังก์ชัน loop() จะสร้างค่าจำนวนเต็มแบบสุ่มระหว่าง 0 ถึง 1023 โดยใช้ฟังก์ชัน Random() และเก็บไว้ในชื่อตัวแปร ค่าสุ่ม .
เดอะ Serial.print() จากนั้นใช้ฟังก์ชันในการพิมพ์ฉลาก “ ค่าสุ่ม: ” ไปยังจอภาพอนุกรม ตามด้วยค่าสุ่มจริง ซึ่งพิมพ์บนบรรทัดเดียวกันโดยไม่ต้องใช้อักขระบรรทัดใหม่ Serial.print() .
เดอะ ล่าช้า() ฟังก์ชันใช้เพื่อหยุดการทำงานของลูปชั่วคราวเป็นเวลา 2,000 มิลลิวินาที (2 วินาที)
เอาต์พุต
ในเอาต์พุต เราสามารถเห็นค่าทั้งหมดถูกพิมพ์ในบรรทัดเดียวโดยไม่มีการขึ้นบรรทัดใหม่
Serial.println() ตัวอย่าง
รหัสที่กำหนดแสดงให้เห็นถึงการใช้งานของ Serial.println() ฟังก์ชั่นใน Arduino
การตั้งค่าเป็นโมฆะ ( ) {Serial.begin ( 9600 ) ; // เริ่มต้นการสื่อสารแบบอนุกรมที่ 9600 อัตราบอด
}
วนเป็นโมฆะ ( ) {
int สุ่มค่า = สุ่ม ( 0 , 1023 ) ; // สร้างค่าสุ่มระหว่าง 0 และ 1023
Serial.print ( 'ค่าสุ่ม: ' ) ; // พิมพ์ฉลาก
Serial.println ( ค่าสุ่ม ) ; // พิมพ์ค่าสุ่มในบรรทัดใหม่
ล่าช้า ( 2543 ) ; // รอ สำหรับ 500 มิลลิวินาทีก่อนพิมพ์อีกครั้ง
}
รหัสสำหรับ Serial.println() จะคล้ายกับข้างต้น Serial.print() รหัส. ข้อแตกต่างเพียงอย่างเดียวคือค่าสุ่มที่สร้างขึ้นและพิมพ์ด้วยตัวแบ่งบรรทัดซึ่งขาดหายไปใน Serial.print() รหัส.
เอาต์พุต
ค่าทั้งหมดจะถูกพิมพ์ในบรรทัดใหม่ตามที่เราเคยใช้ Serial.print() แทน Serial.println() :
บทสรุป
การสื่อสารแบบอนุกรม เป็นส่วนสำคัญของการเขียนโปรแกรม Arduino เดอะ Serial.print() และ Serial.println() ฟังก์ชันต่างๆ มีประโยชน์สำหรับการแสดงข้อมูลบนเทอร์มินัล Arduino Serial การทำความเข้าใจความแตกต่างระหว่างสิ่งเหล่านี้และการใช้อย่างเหมาะสมสามารถช่วยคุณดีบักโค้ดและสื่อสารกับอุปกรณ์ภายนอกได้