arduino คืออะไร ไมโครคอนโทรลเลอร์คืออะไร

arduino คืออะไร arduino

ไมโครคอนโทรลเลอร์ (Microcontroller)

arduino

รูปภาพจาก https://www.arduino.cc/en/hardware

เป็นไมโครคอนโทรลเลอร์ (Microcontroller) หรือที่เรียกกันสั้นๆ ว่า MCU นั้นเปรียบเสมือนสมองกลขนาดเล็กที่ถูกออกแบบมาให้ควบคุมอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ได้อย่างอิสระหรืออัตโนมัติ โดยภายในตัวไมโครคอนโทรลเลอร์นั้นจะประกอบไปด้วยส่วนประกอบสำคัญที่คล้ายๆกับคอมพิวเตอร์อย่างครบถ้วน ไม่ว่าจะเป็น หน่วยประมวลผลกลาง (CPU), หน่วยความจำ (Memory) และ พอร์ตสำหรับเชื่อมต่ออุปกรณ์ภายนอก (I/O Ports) ทั้งหมดถูกบรรจุอยู่บนชิปตัวเดียวทำให้มีขนาดเล็ก กินพลังงานน้อย และเหมาะสำหรับการใช้งานในอุปกรณ์อิเล็กทรอนิกส์หลากหลายชนิด กล่าวคืออุปกรณ์อิเล็กทรอนิกส์ชนิดหนึ่งที่มีการรวมฟังก์ชันต่างๆ ของคอมพิวเตอร์ไว้ในชิปขนาดเล็ก โดยมีส่วนประกอบหลักดังนี้


pulseIn() ใน arduino ทำงานอย่างไร ?

การใช้งานฟังก์ชัน pulseIn() ใน Arduino

การใช้งานฟังก์ชัน pulseIn() ใน Arduino เพื่อวัดสัญญาณพัลส์อย่างละเอียด และตัวอย่างโครงงาน


บทนำ: เมื่อการวัดสัญญาณพัลส์กลายเป็นเรื่องสำคัญ

ในงานด้านไมโครคอนโทรลเลอร์หรือการประยุกต์ใช้ Arduino นั้น “สัญญาณพัลส์” (Pulse) ถือเป็นหัวใจสำคัญของการอินเทอร์แอคต์ระหว่างฮาร์ดแวร์และซอฟต์แวร์ ตั้งแต่การวัดระยะทาง การวัดความเร็ว ไปจนถึงการควบคุมอุปกรณ์ และหนึ่งในฟังก์ชันที่มีบทบาทสำคัญที่ Arduino จัดเตรียมให้ก็คือ pulseIn() ฟังก์ชันตัวนี้ช่วยให้นักพัฒนาสามารถวัดความยาว (ความกว้าง) ของช่วงสัญญาณพัลส์ที่กำลังเกิดขึ้นได้โดยไม่ต้องเขียนโค้ดซับซ้อน การใช้งานก็ไม่ยุ่งยาก แถมยังทรงพลังมากพอที่จะให้เรานำไปสร้างสรรค์โครงงานได้มากมาย

เซนเซอร์ Ultrasonic HC-SR04 ตัวอย่าง

การทำงานของ HC-SR04 กับ Arduino ตัวอย่างการทำงาน

สิ่งประดิษฐ์เกิดจากกระบวนการคิดเพื่อแก้ปัญหาใดๆ และเรามักจะพบกับปัญหาที่เกี่ยวข้องกับระยะทางในช่วงสั้นๆที่มีความแม่นยำ หากความต้องการที่กล่าวมาข้างต้นเราจะพิจารณาเอาอุปกรณ์ตัวนึงเข้ามาแก้ปัญหาเหล่านี้ เป็นอุปกรณ์ที่ได้รับความนิยมเป็นอย่างมากเพราะใช้งานง่ายการเชื่อมต่อสื่อสารไม่ซับซ้อนและมีโปรแกรมตัวอย่างให้ใช้งานมากมายนั้นคือ HC-SR04 เป็นเซ็นเซอร์วัดระยะทางด้วยอัลตราโซนิก (Ultrasonic Sensor) ที่ทำงานโดยการปล่อยคลื่นเสียงความถี่สูงและรับสัญญาณสะท้อนกลับมาเพื่อคำนวณระยะทาง วัดจากระยะเวลาที่เสียงใช้ในการเดินทางจากตัวปล่อย (transmitter) ไปยังวัตถุและสะท้อนกลับมาที่ตัวรับ (receiver)

การทำงานของ HC-SR04

  1. Trigger Signal: ใช้ขาสัญญาณ Trigger เพื่อส่งพัลส์สั้น ๆ ให้กับเซ็นเซอร์ โดยต้องส่งสัญญาณที่มีความกว้าง 10 ไมโครวินาที
  2. Sound Emission: เมื่อรับสัญญาณจาก Trigger ขา Echo จะเริ่มทำงาน โดยเซ็นเซอร์จะปล่อยคลื่นเสียงที่มีความถี่ 40 kHz ออกไปจากตัวปล่อย

เริ่มต้น ESP32 บน Arduino IDE

การติดตั้ง ESP32 ใน Arduino IDE

ESP32 เป็นไมโครคอนโทรลเลอร์ที่พัฒนาโดยบริษัท Espressif Systems ในประเทศจีน โดยออกแบบมาเพื่อใช้งานในโครงการที่ต้องการการสื่อสารไร้สาย เช่น Wi-Fi และ Bluetooth ที่มีประสิทธิภาพสูงและราคาย่อมเยาทำให้เป็นที่นิยมอย่างมากสำหรับนักพัฒนา IoT (Internet of Things) และ Maker ทั้งผู้ที่เล่นอยู่แล้วและผู้เริ่มต้นใหม่ในบทความนี้เราจะแสดงถึงการใช้เริ่มต้นใช้งาน esp32 ซึ่งแน่นอนว่าการใช้งานเจ้าอุปกรณ์ตัวนี้นั้นมีเครื่องมือ และภาษาให้เลือกใช้งานได้หลากหลายตามความถนัด แต่เราจะยกตัวอย่างวิธีการหนึ่งซึ่งเป็นที่นิยมอย่างมาก คือการพัฒนา esp32 ด้วยภาษา c++ ผ่านเครื่องมือ Arduino IDE มีขั้นตอนดังต่อไปนี้.

การใช้งานคำสั่งหน่วงเวลาและจับเวลา delay() และ millis() ใน arduino

การใช้งาน millis() กับ delay() ใน Arduino Uno

การใช้งานคำสั่ง delay() millis() ใน arduino

การใช้งาน millis() กับ delay() ใน Arduino Uno

ที่มาและความสำคัญ การเขียนโปรแกรมไมโครคอนโทรลเลอร์ Arduino Uno จะมีฟังก์ชัน millis() และ delay() ให้ใช้สำหรับการจัดการเรื่องเวลา แต่ทั้งสองฟังก์ชันมีความแตกต่างกันในการใช้งานและความเหมาะสมในแต่ละสถานการณ์ หากเราเริ่มต้นศึกษาการเขียนไมโครคอนโทรลเลอร์ เรามักจะพบการเริ่มใช้งานคำสั่ง delay() เพื่อหน่วงเวลาบางอย่างเอาไว้ จนกระทั้งเราชินกับการใช้งาน delay() เพราะใช้งานง่ายไม่ซับซ้อนด้วยคุณสมบัติค้างสถานะนั้นๆไว้ขณะหนึ่งตามค่าที่กำหนด เมื่อเราสามารถเขียนไมโครคอนโทรลเลอร์ให้มีความซับซ้อนมากขึ้นเราจะพบว่า โปรแกรมของเราทำงานช้าลงอย่างเห็นได้ชัด หรืออาจจะอ่านค่าเซ็นเซอร์บ้างก็ไม่เป็นไปตามขอบเขตที่มันควรจะเป็นซึ่งอาจจะมาจากสาเหตของการใช้งานคำสั่ง delay() ก็เป็นได้เพราะเป็นการทำงานเป็นแบบ blocking

Arduino และการหา address สำหรับอุปกรณ์ที่สื่อสารกันผ่าน i2c interface

arduino i2c diagram
การหา address ของ I2C บน Arduino Uno

การหา address ของ I2C บน Arduino Uno

ที่มาและความสำคัญ. การเรียนรู้ไมโครคอนโทรลเลอร์ Arduino uno เป็นการเรียนรู้ไมโครขั้นพื้นฐานหากเราศึกษาไปเรื่อยๆเรามักจะมีองค์ประกอบของการใช้งานโมดูอื่นๆเข้ามาเกี่ยวข้อง และเป็นการสื่อสารด้วย interface แบบต่างๆ หนึ่งใน interface ที่มักนิยมใช้งานพบได้บ่อยครั้งคือ interface แบบ i2c ด้วยจุดเด่นต่างๆเช่นความง่าย,สายเชื่อมต่อน้อย,มีไรบรารี่เยอะ หากถามว่าข้อดีข้องการสื่อสารนี้มีข้อดีอย่างไรไปหาอ่านเพิ่มเติมเอาเองขี้เกียจพิมพ์ – -! เราจะข้ามมาที่กระบวนการหาตำแหน่งที่อยู่ของโมดูลหรืออุปกรณ์เลยละกัน เพราะเมื่อเราต่อโมดูลหรืออุปกรณ์นั้นๆแล้ว ลองใช้ code ที่อยู่ใน internet แล้วผลปรากฏไม่สามารถใช้งานได้ หนึ่งในปัญหาที่พบบ่อยคือการระบุที่อยู่ไม่ถูกต้องนั้นเอง เราจึงจำเป็นต้องหาตำแหน่งที่อยู่ก่อนถึงจะเริ่มการเขียน code เพื่อใช้งานกับโมดูลหรืออุปกรณ์ได้ .