ข้ามไปที่เนื้อหาหลัก

Arduino Project 4CH Relay Timer #02


Arduino Project 4CH Relay Timer #02

    หลังจากอุปกรณ์อะไรพร้อมหมดแล้ว เราต้องมาทำการเพิ่ม Library กันก่อนนะครับ Library ที่ต้องเพิ่มเข้ามาคือ RTClib.h นะครับ ให้หา download มาไว้ที่เครื่อง แล้วแตกไฟล์เก็บไว้ใน “Libraries” ใน Folder โปรแกรมของ Arduino นะครับ



จากนั้นให้เปิดโปรแกรม Arduino แล้วเข้าไปที่ “Sketch>Include Library>Add .ZIP Library”

จากนั้นให้ทำการเลือก Folder ที่เราได้ copy ไว้ใน Libraries ได้เลย
ก็จะเห็นรายการ Library ที่เราได้เพิ่มขึ้นมาใน List นะครับ

อ้อ! Library ที่ต้องใช้ทั้งหมดก็มี
RTClib.h    >>Library นี้ทำงานกับ RTC shield นะครับ
Wire.h      >>เกี่ยวกับการส่งข้อมูลระหว่าง Arduino และ Computer ไว้สำหรับตั้งเวลาให้ RTC shield
LiquidCrystal.h   >>การแสดงผล LCD shield
EEPROM.h   >>การเขียนข้อมูลลงใน EEPROM (หน่วยความจำที่ไม่หายไปแม้ไฟจะดับลง คล้าย ๆ พวก Hard disk )

ที่ให้เพิ่ม RTClib.h เพราะตัวอื่นมันติดมากับโปรแกรม Arduino แล้วนะครับ เลยเพิ่มแค่ตัวนี้ 

ถึงตอนนี้เราก็ได้เตรียมพร้อมแล้วนะครับ มาดูลักษณะการทำงานของ Arduino ที่เราต้องการคร่าว ๆ กันก่อนนะครับ

จากรูปจะเห็นได้ว่าเราจะสร้างตัวแปรเพื่อเก็บค่าสถานะของโปรแกรม เพื่อใช้ในการแสดงผลและกำหนด Out put เมื่อมีการกดปุ่มนะครับ
เช่นในกรณีเปิดเครื่องใหม่ โปรแกรมจะทำงานลักษณะดังนี้

เมื่อไม่มีการกดปุ่มโปรแกรมจะข้ามในส่วน Keypress ไป
และหากมีการกดปุ่ม ทำให้มีการเปลี่ยนค่า สถานะของโปรแกรม ดังนี้

จากรูปเช่นเรากำหนดว่า เมื่อกดปุ่ม “Up” ให้เปลี่ยนสถานะเป็น State2
ในรอบต่อไปโปรแกรมก็จะไปทำงานตาม สถานะ
ที่เปลี่ยนไปครับ

จะเห็นได้ว่าโปรแกรมวิ่งไปหาที่ State2 นะครับ
และหากมีการกดปุ่มอีกครั้งโปรแกรม ในส่วน Keypress จะวิ่งไปตรวจสอบตามสถานะของโปรแกรมในขณะนั้น ๆ ครับ

โปรแกรมของเราก็จะทำตาม Loop ข้างต้นไปเรื่อย ๆ โดยเราจะทำการเพิ่มคำสั่งการทำงานเข้าไปในส่วนต่าง ๆ อีกทีครับ

สถานะของโปรแกรมที่ผมกำลังจะทำก็จะมี      
1. การแสดงหน้าจอหลัก
(MAIN_DISPLAY)
2. ส่วนการตั้งค่า
                2.1 เลือกหมายเลข
Relay ที่จะตั้งค่า (ALARM_NO)
                2.2 หน้าเมนูในการเลือกตั้งค่าให้ Relay นั้น ๆ (ALARM_SET_MENU)
                2.3 การตั้งค่าสถานะ เปิด/ปิด Relay (SET_AL_STATE)
                2.4 การตั้งค่าเวลา ทั้งเวลาเปิด และเวลาปิด นะครับ (SET_TIME)

ลักษณะโปรแกรมคร่าว ๆ ก็จะประมานนี้ ครับ เดี๋ยวคราวหน้ามาดู Code กันเลย

Arduino tips
ในส่วนของ Setup และ Loop ของ Arduino ให้วางไว้ท้ายสุดใน Coding หรือวางไว้ให้ต่ำกว่าโปรแกรมย่อยและฟังก์ชั่นที่เราเขียนขึ้นมา
หากเราวางไว้ก่อนโปรแกรมย่อยหรือฟังก์ชั่น บางครั้งจะเกิด
Error ว่าไม่มีโปรแกรมย่อยหรือฟังก์ชั่นนั้น ๆ ได้



ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เทคนิคการสร้าง Folder ลับ (การซ่อน Folder) 2

เทคนิคการสร้าง Folder ลับ (การซ่อน Folder) 2 วันนี้ก็จะเอาเทคนิคการซ่อน Folder มาฝากกันเพิ่มเติมนะครับ จะต่างจากในบทความแรก https://lazedev.blogspot.com/2016/03/folder-folder.html ซึ่งเป็นการเก็บแบบ System file ธรรมดา โดยคราวนี้จะเพิ่มความสามารถให้ Folder ที่เราซ่อนไว้ให้เข้ายากขึ้นไปอีกนิด (ซ่อนได้เนียนขึ้น) นะครับ มาดูขั้นตอนกันเลย

Make BIG checkbox in Excel

ทำ Checkbox ขนาดใหญ่ใน Excel ในบางครั้งเมื่อเราต้องการทำฟอร์มเอกสารให้คนอื่นกรอก ก็มักจะมีตัว Checkbox เพื่อให้คลิ๊กเลือกในรายการที่เรากำหนดไว้ โดยจะเพิ่มจากตัว ActiveX control ที่มีอยู่แล้วใน Excel แต่ปัญหาคือเจ้าตัว checkbox นี้มันปรับขนาดไม่ได้ พอเราปรับขนาดหน้าจอเล็กลง เจ้าตัว checkbox นี่ก็จะเล็กลงตาม ทำให้ความไฮโซของแบบฟอร์มลดลงไป

เอา Password Excel VBA ออก

พอดีว่ากำลังทำโปรเจ็คฐานข้อมูลเกี่ยวกับ Excel VBA แต่ทำ ๆ ไปดันลืม พาสเวิดที่ตัวเองใส่ไว้ซะงั้น เลยต้องลำบากลำบนไปค้นหาวิธีการเอาพาสเวิดนั้นออก ดูไปแล้วก็พอมีวิธีอยู่ ก็เลยทำเป็นบทความเก็บไว้ดีกว่า มาดูกันเลย **เป็นการเอารหัสของ VBA ใน Excel ออกนะครับ ไม่ใช่รหัสของ Excel