Constants หรือ ค่าคงที่ คือ นิพจน์ที่กำหนดไว้ล่วงหน้าในโปรแกรม Arduino IDE ใช้เพื่อทำให้โปรแกรมอ่านง่ายขึ้น จำแนกค่าคงที่เป็นกลุ่มใหญ่ได้ 4 กลุ่ม
วิธีการใช้ Arduino IDE
รายการอุปกรณ์
1. Defining Logical Levels: true and false (Boolean Constants)
มีด้วยกัน 2 ค่าคงที่ ที่ใช้เพื่อแสดงความจริงและความเท็จในโปรแกรม Arduino IDE : true และ false
false จะถูกกำหนดให้เป็นค่า 0 เสมอ
true มักถูกนิยามว่าเป็น 1 ซึ่งถูกต้อง แต่ true มีคำจำกัดความที่กว้างกว่า 1 จำนวนเต็มใดๆ ที่ไม่ใช่ศูนย์นั้นเป็นจริงในแง่ของบูลีน ดังนั้น -1, 2 และ -200 จึงถูกกำหนดเป็นจริงเช่นเดียวกัน
ตัวอย่างซอร์สโค้ดที่ 1
ทำการอัปโหลดซอร์สโค้ดตัวอย่าง และเปิดหน้าจอ Serial monitor ขึ้นมาโดยการกด Ctrl + Shift + M สั่งเกตุผลการทดลองจากหน้าจอ Serial monitor
2. Defining Pin Levels: HIGH and LOW
เมื่ออ่านหรือเขียนพินดิจิทัล มีเพียงสองค่าที่จะต้องใส่เพื่อกำหนดเอาต์พุต คือ : HIGH และ LOW
HIGH จะมีความหมายเป็น 1 เช่นเดียวกับ true เพียงแต่ HIGH จะเป็นประกาศแบบจำนวนเต็มหรือ int โดย true จะเป็น Boolean
LOW จะมีความหมายเป็น 0 เช่นเดียวกับ false
ตัวอย่างใช้งาน เช่น digitalWrite(13, HIGH) ความหมายคือส่งออกพินดิจอตอล 13 ให้เอาต์พุตเป็น 1, digitalWrite(13, LOW) ความหมายคือส่งออกพินดิจิตอล 13 ให้เอาต์พุตเป็น 0, digitalRead(13) ควายหมายคือให้อ่านค่าสถานะของขา 13 ว่าอยู่ในสถานะลอจิกเป็น 0 หรือ 1
ตัวอย่างซอร์สโค้ดที่ 2
ทำการอัปโหลดซอร์สโค้ดตัวอย่างและเปิดหน้าจอ Serial monitor ขึ้นมา สั่งเกตุผลการทดลองจากหน้าจอ Serial monitor
3. Defining Digital Pins modes: INPUT, INPUT_PULLUP, and OUTPUT
พินดิจิตอลสามารถใช้เป็น INPUT, INPUT_PULLUP หรือ OUTPUT โดยการใช้ฟังก์ชัน pinMode() จะเปลี่ยนพฤติกรรมทางไฟฟ้าของพิน
กำหนดพินเป็น INPUT พิน Arduino ที่กำหนดค่าเป็น INPUT ด้วย pinMode() นั้นจะอยู่ในสถานะอิมพีแดนซ์สูง พินที่กำหนดค่าเป็น INPUT จะส่งผลกับวงจรที่ต่อใช้งานอยู่น้อยมาก เทียบเท่ากับตัวต้านทานแบบอนุกรม 100 เมกะโอห์มที่ด้านหน้าพิน
ทำให้เหมาะสำหรับการอ่านค่าเซ็นเซอร์ หากมีการกำหนดค่าพินเป็น INPUT และใช้อ่านค่าสวิตช์ เมื่อสวิตช์อยู่ในสถานะวงจรเปิด พินอินพุตจะลอย และจะส่งผลให้ส่งค่าผิดพลาดได้ เพื่อให้แน่ใจว่าการอ่านค่านั้นถูกต้องเมื่อวงจรเปิด ต้องใช้ตัวต้านทานแบบ pullup หรือ pulldown 10 K ohm เนื่องจากเป็นค่าที่ต่ำพอที่จะป้องกันอินพุตแบบลอยตัวได้ และในขณะเดียวกันก็มีค่าสูงพอที่จะไม่ดึงกระแสไฟมากเกินไปเมื่อสวิตช์อยู่ในสถานะวงจรเปิด
กำหนดพินเป็น INPUT_PULLUP ไมโครคอนโทรลเลอร์ ATmega บน Arduino มีตัวต้านทานแบบดึงขึ้นภายใน (ตัวต้านทานที่เชื่อมต่อกับพลังงานภายใน) โดยใช้อาร์กิวเมนต์ INPUT_PULLUP ใน pinMode() พินที่กำหนดค่าเป็นอินพุตด้วย INPUT หรือ INPUT_PULLUP อาจเสียหายหรือถูกทำลายได้ หากต่อเข้ากับไฟฟาลบเมื่อเทียบกับ 5V หรือ 3V แล้วมีค่ามากกว่า 5V เช่น หากนำขาสวิตช์อีกขาที่ต่อกับพินดิจิตอลไปต่อกับแรงดันไฟฟ้า -5V ก็จะทำให้ศักย์ไฟฟ้าเท่ากับ 10V
กำหนดพินเป็น OUTPUT พินที่กำหนดค่าเป็น OUTPUT ด้วย pinMode() จะอยู่ในสถานะอิมพีแดนซ์ต่ำ ซึ่งหมายความว่าสามารถจ่ายกระแสไฟให้กับวงจรอื่นได้เป็นจำนวนมาก พิน ATmega สามารถจ่ายกระแสไฟฟ้าได้ถึง 40 mA ไปยังอุปกรณ์อื่น
ตัวอย่างซอร์สโค้ดที่ 3
การต่อวงจร
คลิ๊กที่บรรทัดที่ 7 แล้วกด Ctrl + / (เปลี่ยนแป้นพิมพ์เป็น English ก่อน) เป็นการใส่คอมเม้น ทำการอัปโหลดซอร์สโค้ดตัวอย่าง และเปิดหน้าจอ Serial monitor ขึ้นมา กดปุ่มสวิตช์ 2 – 3 ครั้ง สั่งเกตุผลการทดลองที่หน้าจอ Serial monitor จะแสดงตัวเลข 0 และ 1 สลับกันมั้ว ทั้งที่หยุดกดสวิตช์แล้ว เนื่องจากการกำหนดพิมแบบ INPUT เราจะต้องต่อตัวต้านทาน pullup ด้วย หากกำหนดเป็น INPUT
จากซอร์สโค้ดตัวอย่างที่ 3 ให้ปลดคอมเม้นที่บรรทัดที่ 7 และใส่คอมเม้นที่บรรทัดที่ 8 ทำการอัปโหลดซอร์สโค้ดอีกครั้ง เปิด Serial monitor และสังเกตผลการทดลองอีกครั้ง ที่หน้าจอ Serial monitor จะแสดงเลข 1 ตลอด เนื่องจากมีตัวต้านทาน pullup ภายในถูกใช้งานที่พิน 2
4. Defining built-ins: LED_BUILTIN
บอร์ด Arduino ส่วนใหญ่มีพินที่เชื่อมต่อกับ LED ออนบอร์ดแบบอนุกรมพร้อมตัวต้านทาน LED_BUILTIN จะหมายถึงพิน 13 ของบอร์ด Arduino
ซอร์สโค้ดตัวอย่างที่ 4
ทำการอัปโหลดซอร์สโค้ดตัวอย่างและเปิดหน้าจอ Serial monitor ขึ้นมา สั่งเกตุผลการทดลอง
หน้าที่เข้าชม | 7,125,349 ครั้ง |
ผู้ชมทั้งหมด | 2,822,247 ครั้ง |
เปิดร้าน | 15 ก.ย. 2557 |
ร้านค้าอัพเดท | 6 ก.ย. 2568 |