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 >>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 จะวิ่งไปตรวจสอบตามสถานะของโปรแกรมในขณะนั้น ๆ ครับ
และหากมีการกดปุ่มอีกครั้งโปรแกรม ในส่วน Keypress จะวิ่งไปตรวจสอบตามสถานะของโปรแกรมในขณะนั้น ๆ ครับ
สถานะของโปรแกรมที่ผมกำลังจะทำก็จะมี
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)
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 ว่าไม่มีโปรแกรมย่อยหรือฟังก์ชั่นนั้น ๆ ได้
ในส่วนของ Setup และ Loop ของ Arduino ให้วางไว้ท้ายสุดใน Coding หรือวางไว้ให้ต่ำกว่าโปรแกรมย่อยและฟังก์ชั่นที่เราเขียนขึ้นมา
หากเราวางไว้ก่อนโปรแกรมย่อยหรือฟังก์ชั่น บางครั้งจะเกิด Error ว่าไม่มีโปรแกรมย่อยหรือฟังก์ชั่นนั้น ๆ ได้
ความคิดเห็น
แสดงความคิดเห็น