บอร์ด Arduino มีด้วยกันหลากหลายเช่น Arduino Uno R3, Arduino nano, Arduino mega2560 เป็นต้น แต่ละบอร์ดจะมีขาใช้งาน Digital (ดิจิตอล) ต่างๆกัน เช่น Arduino Uno และ Arduino mega2560 โดย Arduino Uno จะมีขาใช้งานดิจิตอลที่ขา 0 – 13 และ Arduino mega2560 จะมีมากถึง 53 ขา และในบทความนี้จะมาสอนการทำงานและใช้งาน 3 ฟังก์ชันดังนี้
วิธีการใช้ Arduino IDE
รายการอุปกรณ์
1. pinMode
เป็นฟังก์ชันที่ใช้กำหนดขาของบอร์ด Arduino ให้เป็น OUTPUT ในการส่งสัญญาณดิจิตอลออกไป หรือเป็น INPUT เพิ่มรับสัญญาณดิจิตอลเข้ามา การสั่งให้ขาดิจิตอลเป็น OUTPUT นั้นจะต้องใช้งานร่วมกับฟังก์ชัน digitalWrite และการสั่งให้ขาดิจิตอลเป็น INPUT นั้นจะต้องใช้งานร่วมกับฟังก์ชัน digitalRead
2. digitalWrite
เป็นฟังก์ชันที่ใช้ควบคุมสัญญาณเอาต์พุตของขาดิจิคอลที่กำหนดว่าต้องการปล่อยสัญญาณออกไปเป็นสัญญาณลอจิก 0 (LOW) หรือสัญญาณลอจิก 1 (HIGH)
ในการใช้งานฟังก์ชัน digitalWrite จะต้องมีการกำหนดตัวแปรภายในดังนี้ digitalWrite(ชื่อขาดิจิตอล, สถานะลอจิก 0 หรือ 1)
เปิดตัวอย่างซอร์สโค้ดจาก Example
ภายในบอร์ด Arduino ทุกรุ่นจะมี LED ถูกติดตั้งไว้กับขา 13 ของตัวบอร์ดและมีชื่อเรียกใช้ว่า LED_BUILTIN หรือหมายถึง LED ที่ติดตั้งกับขา 13 เราสามารถกำหนดใน pinMode ได้ 2 แบบ คือ pinMode(13, OUTPUT); หรือ pinMode(LED_BUILTIN, OUTPUT); ซึ่งมีความหมายเหมือนกัน และสามารถต่อวงจร LED เองได้ดังรูป
จากนั้นทำการเลือกบอร์ด Arduino ที่ใช้งานในบทความนี้จะใช้งานบอร์ด Arduino Uno R3 และทำการเลือก Port ให้ถูกต้องดังรูป
ทำการอัปโหลดไฟล์ตัวอย่างลงบอร์ด Arduino โดยการเลือกปุ่มลูกศรขวา ที่มุมบนซ้ายใต้แถบเมนูบาร์ เมื่อทำการอัปโหลดเสร็จแล้วให้สั่งเกตุที่บอร์ด Arduino ของเรา จะมีไฟ LED บนบอร์ดมีการกระพริบนั้นเอง
ต่อมาให้ทดลองโดยการลบคำสั่งในบรรทัดที่ 28 ออก หรือนำเมาส์ไปวางที่บรรทัด 28 แล้วกด Ctrl + / (ภาษาการพิมพ์ต้องอยู่ในโหมด English เท่านั้น) ก็ได้เช่นกันจะเป็นการใส่เครื่องหมาย comment โดยโปรแกรมจะไม่อ่านคำสั่งในบรรทัดนี้ เมื่อดำเนินการเสร็จแล้วให้กดปุ่มอัปโหลดอีกครั้ง แล้วสังเกตที่ LED บนบอร์ด Arduino ของเรา LED บนบอร์ดจะมีแสงเพียงเล็กน้อยหรือไม่มีแสงเลย
3. digitalRead
เป็นฟังก์ชันที่ใช้ในการอ่านค่าสัญญาณดิจิตอลที่ส่งเข้ามาที่ขาดิจิตอลของบอร์ด Arduino ซึ่งจะรับสัญญาณเป็นลอจิก 0 และลอจิก 1
ในการใช้งานฟังก์ชัน digitalRead จะต้องมีการกำหนดตัวแปรภายในดังนี้ digitalRead(ชื่อขาดิจิตอล);
ต่อใช้งานอุปกรณ์ตามรูป
ซอร์สโค้ดตัวอย่างที่ 2
ต่อวงจรตามรูปและทำการอัปโหลดซอร์สโค้ดตัวอย่าง หลังจากอัปโหลดเสร็จแล้วจะทำให้ LED สว่างตลอด และเมื่อทำการกดสวิตช์จะทำให้ LED ดับตลอด
จากซอร์สโค้ดตัวอย่างที่ 2 ให้ทำการลบคำสั่งในบรรทัดที่ 2 หรือใส่ comment ไว้ และทำการอัปโหลดโปรแกรมอีกครั้ง ทดสอบกดสวิตช์ และสังเกต LED จะเห็นว่าโปรแกรมยังสามารถทำงานได้ตามปกติ ในการกำหนด pinMode(2, INPUT); เป็นการบอกให้รู้ว่าจะมีการอ่านค่าลอจิกที่ขาดิจิตอล 2 ไม่จำเป็นที่จะต้องประกาศใช้งานก็ได้เช่นเดียวกัน
ในการใช้งานอินพุตนั้นสามารถกำหนดได้อีก 1 ชนิดคือ INPUT_PULLUP จะเป็นการกำหนดขาดิจิตอลให้มีสถานะลอจิก 1 ตลอด หรือมีความหมายว่าฟังก์ชัน digitalRead(2) จะให้ return ค่ากลับมาเป็น 1 ตลอด จนกว่าจะมีการต่อขาดิจิตอล 2 ลง GND ฟังก์ชันจะ return ค่า 0 กลับมา และการใช้ INPUT_PULLUP ไม่จำเป็นที่จะต่อตัวต้านทานที่สวิตช์ดังรูป และแก้คำสั่งบรรทัดที่ 2 จาก INPUT เป็น INPUT_PULLUP
หน้าที่เข้าชม | 7,125,349 ครั้ง |
ผู้ชมทั้งหมด | 2,822,247 ครั้ง |
เปิดร้าน | 15 ก.ย. 2557 |
ร้านค้าอัพเดท | 6 ก.ย. 2568 |