MCU4Fun

Drive your idea

Your Shopping Cart




รถเข็นของท่านยังไม่มีรายการสินค้า

   

You are here: Home บทความ Arduino รวม Error ของ Arduino ตอนที่ 2

รวม Error ของ Arduino ตอนที่ 2

อีเมล
User Rating: / 0
แย่ดีที่สุด 

     จากครั้งที่แล้ว MCU4Fun ได้นำเสนอบทความ รวม Error ของ Arduino ตอนที่ 1 ซึ่งโดยรวมจะพูดถึงปัญหาที่เกี่ยวข้องกับการโหลด .pde ไปยังบอร์ด Arduino ไม่ได้ซะเป็นส่วนใหญ่ ในครั้งนี้จะมาพูดถึง Error ที่เกิดขึ้นจากการติดต่อสื่อสารระหว่างบอร์ด Arduino กับคอมพิวเตอร์ผ่านทางพอร์ทอนุกรม (Serial Port) กันบ้างนะครับ ว่าจะมีการแสดงผลอย่างไรและเกิดมาจากสาเหตุใดได้บ้าง พร้อมทั้งการตรวจสอบและแก้ไขปัญหาเบื้องต้น ทุกการแก้ไขอาจจะใช้ไม่ได้กับทุกท่าน ซึ่งอยู่กับสิ่งแวดล้อมอื่นๆด้วย

 

 อาการ Error  

1. การแสดงผลที่เป็นภาษาต่างดาวหลังจากทำการเชื่อมต่อผ่านพอร์ทอนุกรม (Serial Port) ทั้งนี้MCU4Fun จะขอนำเสนอแนวทางการแก้ไขไว้ดังต่อไปนี้โดยแยกแยอะตามสาเหตุ

 

 arduino serial error-1

 

 สาเหตุที่ 1 การกำหนดค่า Baudrate ของบอร์ด Arduino กับอุปกรณ์อุปกรณ์ USB to Serial หรือ Serial port เองนั้นอาจจะไม่ตรงกัน โดยปกติแล้วที่บอร์ด Arduino จะกำหนดไว้ที่ 19200 ไว้เป็นค่า Default สามารถดูได้ที่ boards.txt ที่อยู่ในโฟล์เดอร์ arduino-0016\hardware หรืออาจจะขึ้นอยู่กับเวอร์ชั่นของตัวโปรแกรม IDE ของ Arduino นั้นๆด้วย ดังรูปสังเกตุในกรอบสีน้ำเงิน

 

 arduino baudrate set

 

แนวทางการแก้ไขก็แค่กำหนดค่า Baudrate ให้ตรงกันคือที่ 19200 จากรูปเดิมเป็น 9600

 

serial baudrate set 

 

 สาเหตุที่ 2 กำหนดค่า Baudrate ไม่ตรงกันระหว่างตัวโปรแกรมที่เขียนไว้แล้วทำการโหลดไปยังบอร์ด Arduino กับตัวโปรแกรมที่ใช้ติดต่อกับพอร์ทอนุกรม ดังรูปในตัวโปรแกรมที่เราเขียนขึ้นใน Arduino กำหนดอยู่ที่ 19200 แต่ในตัวโปรแกรมที่ใช้ติดต่อกับพอร์ทอนุกรมกำหนดเป็น 9600 

 

 arduino baudrate set 9600

 

แนวทางการแก้ไขก็แค่กำหนดค่า Baudrate ให้ตรงกันระหว่างพอร์ทอนุกรมที่เข้ากับบอร์ด Arduino แล้วเชื่อมต่อใหม่อีกครั้งจะเห็นได้ว่าไม่เป็นภาษาต่างดาวอีกต่อไปแล้วดังรูป

 

 arduino baudrate set 19200

 

 จากรูปจะเห็นได้ว่าในกรอบสีน้ำเงินเป็นการกำหนด Baudrate ที่ Arduino IDE ในกรอบสีเขียวเป็นการกำหนด Barudrate ที่โปรแกรม Hyper Terminal ที่ใช้ติดต่อกับบอร์ด Arduino ผ่านทางพอร์ทอนุกรม ส่วนในกรอบสีแดงคือการแสดงผลที่ได้

สาเหตุที่ 3 เป็นการรวมกันระหว่างสาเหตุที่ 1 และ 2 นำมารวมกันเพื่อทดสอบผลที่ได้ คือกำหนด Baudrate ที่พอร์ทอนุกรมหรือ USB to Serial ไว้ที่ 9600 แล้วกำหนด Baudrate ที่ Arduino IDE ไว้ที่ 19200 ส่วนที่โปรแกรมที่ติดต่อกับพอร์ทอนุกรมกำหนดไว้ที่ 9600 จะได้ผลดังรูป

 

 serial baudrate set 9600

 แนวทางการแก้ไขก็แค่กำหนดค่า Baudrate ให้ตรงกันระหว่างพอร์ทอนุกรมที่เข้ากับบอร์ด Arduino แต่ยังคงกำหนด Baudrate ที่พอร์ทอนุกรมหรือ USB to Serial ไว้ที่ 9600แล้วเชื่อมต่อใหม่อีกครั้งผลที่ได้เป็นดังรูป

 serial baudrate set 19200

สรุปว่าสาเหตุที่ 1 อาจจะเกิดขึ้นเฉพาะครั้งแรกที่ทำการเชื่อมต่อ USB to Serial กับบอร์ด Arduino เท่านั้น หลังจากที่สามารถติดต่อสื่อสารกันได้แล้วก็สามารถที่เปลี่ยนไปใช้ค่าอื่นได้แต่คงไม่ได้ทุกค่า แต่ที่สำคัญที่มีผลต่อการที่ทำให้เป็นภาษาต่างดาวคือสาเหตุที่ 2 มากกว่า คือ Baudrate ไม่ตรงกันระหว่างบอร์ด Arduino กับพอร์ทอนุกรมมากกว่า

2. ไม่มีการแสดงผลใดๆเลยหลังจากติดต่อกับบอร์ด Arduino ผ่านทางพอร์ทอนุกรม ดังรูป

 now work

 สาเหตุที่ 1 การต่อกลับขั้วกันระหว่างขา Rx, Tx ของบอร์ด Arduino กับพอร์ทอนุกรม 

 arduino-serial

 

 

แนวทางแก้ไขให้ตรวจสอบขา Rx, Tx ของบอร์ด Arduino กับอุปกรณ์นั้นต่อถูกต้องหรือไม่ โดยปกติที่ Arduino ขา Digital0 (Rx) ต้องต่อกับ Tx ของพอร์ทอนุกรมส่วนขา Digital1 (Tx) ต้องต่อกับ Rx ของพอร์ทอนุกรม หากต่อผิดไปจากนี้ก็ดำเนินต่อให้ถูกต้อง ผลที่ได้จะเป็นดังรูป

 

now work 

สาเหตุที่ 2 การเสียหายของพอร์ทอนุกรมหรือ USB to Serial ที่ใช้ติดต่อกับบอร์ด Arduino

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

สาเหตุที่ 3 สายที่ต่อจากพอร์ทอนุกรมมีบางสายหลุดหรือมีการชำรุด (สายขาดใน)

แนวทางการแก้ไขให้ทดสอบว่ามีสายไหนที่มีการขาดให้เปลี่ยนใหม่ การทดสอบทำได้หลายวิธีเช่นอาจจะใช้มัลติมิเตอร์วัด

 

พอหอมปากหอมคอกับ Error ของ Arduino กับ serial port แค่นี้ก่อนนะครับ โปรดติดตามตอนที่ 3

 

 

 

เพิ่มคอมเมนต์ใหม่


รหัสป้องกันความปลอดภัย
รีเฟรช


?>