Arduino : การติดต่อสื่อสารผ่านทางพอร์ทอนุกรม (Serial Port)
Arduino : การติดต่อสื่อสารผ่านทางพอร์ทอนุกรม (Serial Port)
ใช้ไมโครคอนโทรลเลอร์เป็นบอร์ด Arduino
Uno R3 โดย Arduino Uno R3
จะทำหน้าที่เป็นทั้งตัวรับ และ ตัวส่งข้อมูล
การทำงานคือ Arduino Uno R3
จะคอยรับข้อมูลจากอุปกรณ์ภายนอกมาทางขา 10 (Rx) โดยกระบวนการทำงานภายในคือจะรับเป็นตัวอักขระมาทีละตัว
แล้วนำอักขระ(char) มาต่อๆกัน ให้เป็นข้อความ(String) จากนั้นก็ทำการส่งข้อความออกไปทางขา
11 (Tx) เพื่อทำการส่งไปให้คอมพิวเตอร์
การทดสอบการใช้งาน
ในการรับส่งข้อมูลโดยใช้โปรแกรม
- X-CTU (ฝั่งซ้าย) เป็นตัวส่งข้อมูลให้กับ Arduino
Uno R3 โดยทำการส่งข้อมูลด้วย tool Assamble
Packet
- X-CTU (ฝั่งขวา) เป็นตัวรับข้อมูล(คอมพิวเตอร์)
ดาวน์โหลดโปรแกรม X-CTU ได้จาก
http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/xctu
แสดงการต่อวงจร
แสดงโค๊ดโปรแกรม
อธิบายโปรแกรม
บรรทัดที่ 1 เรียกใช้ไลบราลี่ SofewareSerail
บรรทัดที่ 3 ตั้งชื่อพอร์ตสือสารว่า mySerial (จะตั้งชื่อว่าอะไรก็ได้)
และระบุขาที่ใช้ในการรับ-ส่งข้อมูล
ในที่นี้ใช้ ขา 10
เป็นขารับข้อมูล (Rx) และ ใช้ขา 11
เป็นขาส่งข้อมูล (Tx)
บรรทัดที่ 4 ประกาศตัวแปร inputString เป็นตัวแปรชนิดสตริง
กำหนดค่าเริ่มต้นให้มีเท่ากับค่าว่าง
บรรทัดที่ 6 ประกาศตัวแปร c เป็นตัวแปรชนิดจำนวนเต็ม
กำหนดค่าเริ่มต้น ให้มีค่าเท่ากับ 0
บรรทัดที่ 10 กำหนดความเร็วในการ รับ-ส่งข้อมูล (buadrate)
ให้มีค่าเท่ากับ 9600
บรรทัดที่ 14 ฟังก์ชั่น void loop เป็นฟังก์ชั่นการทำงานในลักษณะ
วนซ้ำๆ
บรรทัดที่ 16 คำสั่ง ในเงื่อนไข while ทำหน้าที่ตรวจเช็คข้อมูลที่เข้ามาทางขารับข้อมูล(Tx)
บรรทัดที่ 18 ประกาศตัวแปร inChar เป็นตัวแปรชนิดอักขระ
โดยข้อมูลที่รับเช้ามาทางขา Rx(mySerial.read)
จะถูกนำไปเก็บไว้ในตัวแปร inChar
บรรทัดที่ 19 นำข้อมูลที่เก็บอยู่ในตัวแปร inChar มาเก็บไว้ในตัวแปร
inputString ซึ่งเป็นการนำอักขระมาต่อๆกัน ให้เป็นข้อความ
บรรทัดที่ 20 กำหนดให้ตัวแปร c เพิ่มค่าทีละ
1
บรรทัดที่ 23 ทำการตรวจเช็คเงื่อนไขว่า c มีค่ามากกว่า
1 หรือไม่ ถ้าใช่ทำในบรรทัดถัด 25-28
ถ้าไม่ใช่ก็จะไม่เข้าไปทำในบรรทัดที่ 25-28
บรรทัดที่ 25 สั่งให้นำข้อความที่เก็บอยู่ในตัวแปร inputString
+\r ส่งออกไปทางขาส่งข้อมูล (Tx)
บรรทัดที่ 26 ทำการเคลียข้อมูลหรือข้อความที่เก็บอยู่ในตัวแปร
inputString ให้มีค่าทำกับค่าว่าง
บรรทัดที่ 27 ทำการกำหนดตัวแปร c ให้มีค่าเท่ากับ
0
บรรทัดที่ 30 ปิดฟังก์ชั่น loop
ปล. “\r” หรือในฐานสิบหก(0D) หรือ
Carriage return ใช้ตัวย่อว่า CR ในทางคอมพิวเตอร์
ถือเป็นตัวอักขระตัวหนึ่งที่มองไม่เห็น ใช้เมื่อสิ้นสุดการพิมพ์แต่ละบรรทัด
และทำให้ตัวชี้ตำแหน่ง (cursor) ลงไปอยู่เป็นตำแหน่งแรกของบรรทัดถัดลงมา
โดยปกติ จะกำหนดให้กดแป้น <RETURN> หรือ <ENTER>
ข้อมูลจาก :: http://dictionary.sanook.com/search/dict-computer/carriage-return
การใช้งานโปรแกรม X-CTU เบื้องต้นสุดๆ
ฝั่งส่งข้อมูล
1.เปิดโปรแกรมขึ้นมา ในแท็ป PC Setting ทำการเลือกคอมพอร์ต
และ ทำการกำหนด baud rate
2. คลิกแท็ป terminal กดปุ่ม
Show Hex
2.1เลือก Assamble Packet จะปรากฏกล่องข้อความ
ให้เราสามารถส่งข้อมูลออกไปได้ ซึ่งสามารถเลือกส่งข้อมูลได้ทั้ง Ascii และ
Hex
ฝั่งรับข้อมูล
1.เปิดโปรแกรมขึ้นมา ในแท็ป PC Setting ทำการเลือกคอมพอร์ต
และ ทำการกำหนด baud rate
2. คลิกแท็ป terminal กดปุ่ม
Show Hex
ปล.ฝั่งรับข้อมูล ถ้าไม่ต้องการส่งข้อมูลกลับไป
ก้ไม่ต้องเลือก Assamble Packet
ทดสอบส่งข้อมูล
ฝั่งส่ง ฝั่งรับ
เอกสารฉบับนี้ แจกฟรีโล๊ดดด...
Coppy , Edit , Share ตามอัธยาศัยเลยจร้า
ผิดพลาดประการใด แจ้งมาได้ที่ dekbandonza@hotmail.com
ปล.ผู้จัดทำก็มั่วๆเอาเหมือนกัน ฮ่าๆๆ
1 ความคิดเห็น:
ขอบคุณมากเลย
แสดงความคิดเห็น
สมัครสมาชิก ส่งความคิดเห็น [Atom]
<< หน้าแรก