[TH] I2C Bus/Wire.h

บทความนี้เป็นการอธิบายเมธอดต่าง ๆ ของ Wire.h ซึ่งเป็นคลาสสำหรับสื่อสารกับอุปกรณ์ผ่านบัสประเภท I2C ที่ใช้สายสัญญาณ 2 เส้นเรียกว่า SDA และ SCL สำหรับรับส่งข้อมูลระหว่างกัน ศึ่งพวกเรามีบทความเกี่ยวกับการสื่อสารประเภทนี้ค่อนข้างเยอะ และใช้เป็นบัสหลักในการพัฒนาอุปกรณ์ขึ้นมาเองแล้วเรียกใช้งานผ่านบัส เข่น บทความการใช้ esp8266 เชื่อมต่อกัย Arduino Uno หรือ การใช้ esp8266 กับ stm32f030f4p6 เป็นต้น

Read More

[TH] Arduino : DHT Sensor

บทความนี้เป็นการอธิบายการใช้งานไลบรารี DHT Sensor ของ Adafruit ที่รองรับกับทุกสถาปัตยกรรมที่ใช้กับ Arduino ได้ ทำให้สามารถประยุกต์การใช้งานเซ็นเซอร์ DHT ซึ่งใช้สำหรับอ่านค่าความชื้นและอุณหภูมิได้สะดวกและกับหลายแพลตฟอร์มได้ง่ายขึ้น โดยบทความนี้ได้ทดสอบกับ ESP32, ESP8266, Arduino UNO และ stm32f103c แล้วพบว่าสามารถใช้งานได้โดยไม่ต้องปรับแก้ไขโค้ดในส่วนของการทำงานหรือต้องเข้าไปแก้ไขรหัสต้นฉบับเพื่อให้ใช้งานได้กับแพลตฟอร์มที่ใช้งาน

ภาพที่ 1 dht22 Sensor กับ BluePill
Read More

[TH] Arduino : RTC DS1302

จากบทความการเขียนโปรแกรมภาษาไพธอนบน Micropython เพื่อใช้งาน RTC เบอร์ DS1302 ในคราวนี้เปลี่ยนภาษาการเขียนโปรแกรมเป็น C++ สำหรับ Arduino โดยใช้ไมโครคอนโทรลเลอร์ Cortex-M0 เบอร์ STM32F030F4P6 / esp8266 และ Arduino Mega เป็นตัวทำงานแทน ESP32 ดังภาพที่ 1, 2 และ 6 โดยรายงานการทำงานออกทางพอร์ต RS232 เพื่อแสดงวันและเวลาตามตัวอย่างผลลัพธ์ในภาพที่ 4

ภาพที่ 1 การทดลอง DS1302 กับ STM32F30F4_6
Read More

[TH] Arduino: JoyStick Shield

บทความนี้แนะนำการใช้ Game Pad/Joystick กับบอร์ด Arduino Uno หรือ Arduino Mega เนื่องจากเป็นโมดูลที่ออกแบบเป็น Shield ของบอร์ดทั้ง 2 เมื่อนำมาประกอบจะได้เกมแพดน่ารัก ๆ 1 ชิ้นดังภาพที่ 1 โดยในบทความอธิบายเพิ่มเติมเกี่ยวกับข้อมูลของการเชื่อมต่อระหว่างอุปกรณ์แต่ละชิ้นกับ GPIO พร้อมตัวอย่างการใช้งาน ซึ่งเนื้อหาเกี่ยวกับโมดูลจอยสติกอ่านได้จากบทความก่อนหน้านี้

ภาพที่ 1 Joystick Shield
Read More

[TH] Arduino: Joystick Module

บทความนี้เป็นการเขียนโปรแกรมเพื่อใช้งานโมดูลจอยสติก (Joystick) ดังภาพที่ 1 ซึ่งตัวโมดูลสามารถบอกข้อมูลการเคลื่อนที่ในแกน X การเคลื่อนที่ในแกน Y และสถานะการกดสวิทตช์ที่ตัวจอยสติก โดยตัวอย่างการใช้งานโมดูลนี้เป็นการใช้กับบอร์ด esp32 โดยใช้ภาษา C++ เพื่อเชื่อมต่อกับ GPIO ด้วยคำสั่งที่เคยกล่าวไปแล้วในบทความนี้

ภาพที่ 1 โมดูลจอยสติกกับ esp32
Read More

[TH] Arduino: STM32F030F4P6

บทความนี้เป็นการใช้งานบอร์ดไมโครคอนโทรลเลอร์ 32 บิตภายใต้สถาปัตยกรรม RISC แบบ Cortex-M0 ที่มีราคาประหยัดแต่การทำงานนับว่าดีกว่าบอร์ดที่เป็นแบบ 8 บิตพอสมควร ประกอบกับมีวิธีการใช้งานให้ศึกษาอยู่บนอินเทอร์เน็ตมากมาย แต่อย่างไรก็ดีทางทีมพวกเราก็สร้างเป็นทางเลือกหนึ่งสำหรับผู้ที่สนใจได้อ่านกัน โดยบทความเริ่มจากเนื้อหาเกี่ยวกับคุณสมบัติของไมโครคอนโทรลเลอร์ การติดตั้งบอร์ดให้ Arduino IDE รู้จัก และตัวอย่างโปรแกรมการสั่งท็อกเกิ้ลหลอดแอลอีดี การรับส่งข้อมูลผ่านพอร์ตสื่อสาร USART และการทดสอบการหา Prime number เพื่อดูความเร็วในการประมวลผลในแบบการวนรอบซ้ำ ๆ กัน

ภาพที่ 1 บอร์ด STM32F030F4P6
Read More

[TH] Arduino:ET-BASE AVR EASY4809

บทความนี้เป็นการแนะนำการใช้งานบอร์ด ET-BASE AVR EASU4809 ของบริษัท ETT ที่ใช้ไมโครคอนโทรลเลอร์ ATMEGA4809 ของบริษัท Microchip ซึ่งถูกนำมาใช้เป็นบอร์ด Arduino ที่ทำงานด้วยสัญญาณนาฬิกา 20MHz มาพร้อมกับหน่วยความจำ FLASH ROM ขนาด 40KB, EEPROM 256 ไบต์ หน่วยความจำ RAM จำนวน 6KB และมี ADC ความละเอียด10 บิต ซึ่งเรียกได้ว่ามีคุณสมบัติที่สูงกว่า ATmega 368P ที่ใช้กับ Arduino Uno หรือ Arduino Nano อย่างมาก แต่บอร์ดที่เลือกมาใช้ในครั้งนี้ยังมีคุณสมบัติที่มากกว่าบอร์ด Arduino พื้นฐานอีกหลายด้าน ซึ่งผู้อ่านสามารถเข้าไปอ่านได้จากหน้าเว็บของบอร์ดเพิ่มเติม

ภาพที่ 1 บอร์ด ET-BASE AVR EASY4809
Read More

[TH] Arduino: LGT8F328P

บทความนี้กล่าวถึงการใช้ Arduino กับไมโครคอนโทรลเลอร์ LGT8F328P ซึ่งได้ชื่อว่าเป็นไมโครคอนโทรลเลอร์ที่มีความคล้ายกับ Atmel AVR atmega328P ที่ใช้กับบอร์ด Arduino Uno และตระกูล Arduino Nano แต่มีความสามารถที่เพิ่มขึ้น เช่น ความเร็วในการทำงานที่สูงขึ้น และมีความละเอียดในการแปลงสัญญาณแอนาล็อกที่มากขึ้นพร้อมทั้งมีภาคแปลงสัญญาณดิจิทัลเป็นแอนาล็อกมาให้ด้วย ดังนั้น บทความนี้จึงไล่เรียงตั้งแต่คุณสมบัติ การติดตั้งบอร์ด และตัวอย่างการใช้งานคุณสมบัติของไมโครคอนโทรลเลอร์ตัวนี้

ภาพที่ 1 บอร์ด LGT8F328P QFP32L
Read More

[TH] Arduino : repetition

การเขียนโปรแกรมเป็นการสั่งงานให้หน่วยประมวลผลกระทำตามคำสั่งที่ได้รับ โดย ณ​ เวลาหนึ่งจะมีคำสั่งเข้าประมวลผล 1 ชุด (กรณีที่ไม่ใช่การประมวลผลแบบคู่ขนาน) และเมื่อคำสั่งประมวลผลเสร็จสิ้นจะบันทึกผลการดำเนินคำสั่งเก็บในเรจิสเตอร์สถานะการทำงานแล้วเตรียมประมวลผคำสั่งถัดไป ทำให้การทำงานเป็นการทำทีละคำสั่งจากคำสั่งแรกไปยังคำสั่งถัด ๆ ไป และผู้เขียนโปรแกรมสามารถวางการทำงานให้กระทำตามเงื่อนไขเพื่อแยกการประมวลผล เช่น เมื่อเงื่อนไขใดเป็นจริงให้กระทำ หรือเงินไขใดไม่เป็นจริงไม่ต้องกระทำหรือกระทำสิ่งใด เป็นต้น และสุดท้ายการทำงานของโปรแกรมสามารถให้ทำซ้ำได้โดยอาศัยเงื่อนไขของการกระทำซ้ำ ด้วยเหตุนี้ หลักการเขียนโปรแกรมเบื้องต้นจึงประกอบไปด้วยการทำงาน 3 ลักษณะ คือ

  • กระทำครั้งละคำสั่งจากบนลงล่าง
  • สามารถเพิ่มเติมให้เกิดเงื่อนไขของการประมวลผลคำสั่ง
  • สามารถให้เกิดการทำซ้ำคำสั่งที่ต้องการ
Read More