Serial.print() กับ Serial.println() ใน Arduino

Serial Print Kab Serial Println Ni Arduino



Arduino เป็นบอร์ดไมโครคอนโทรลเลอร์ยอดนิยมที่ใช้กันทั่วไปสำหรับโครงการ DIY หุ่นยนต์ และอุปกรณ์ IoT คุณสมบัติที่สำคัญประการหนึ่งของ Arduino คือการแลกเปลี่ยนข้อมูลกับคอมพิวเตอร์ผ่านการสื่อสารแบบอนุกรม

Serial.print() และ Serial.println() เป็นสองคำสั่งที่ใช้บ่อยที่สุดสำหรับการสื่อสารแบบอนุกรมใน Arduino บทความนี้จะกล่าวถึงความแตกต่างระหว่าง Serial.print() และ Serial.println() และส่งผลต่อโครงการ Arduino ของคุณอย่างไร

สารบัญ







การสื่อสารแบบอนุกรมคืออะไร

ก่อนที่เราจะดำดิ่งสู่ความแตกต่างระหว่าง 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 การทำความเข้าใจความแตกต่างระหว่างสิ่งเหล่านี้และการใช้อย่างเหมาะสมสามารถช่วยคุณดีบักโค้ดและสื่อสารกับอุปกรณ์ภายนอกได้