ผู้เขียน หัวข้อ: งานครั้งที่ 31 เขียนโปรแกรมตอบสนองอินเตอร์รัพท์ (จับเวลา)  (อ่าน 7089 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 505
    • ดูรายละเอียด
    • อีเมล์
เขียนโปรแกรมตอบสนองอินเตอร์รัพท์ (จับเวลา)แสดงผลตัวเลขบน 7 segment MAX7219
ฟังก์ชั่นอยู่ในกลุ่ม Interrupts http://arduino.cc/en/Reference/Interrupts
-attachInterrupt() http://arduino.cc/en/Reference/AttachInterrupt
-detachInterrupt() http://arduino.cc/en/Reference/DetachInterrupt
-noInterrupts() http://arduino.cc/en/Reference/NoInterrupts

ฟังก์ชั่นทั่วไป
-pinMode() http://arduino.cc/en/Reference/PinMode
-delay() http://arduino.cc/en/Reference/Delay
-delayMicroseconds() http://arduino.cc/en/Reference/DelayMicroseconds
-analogRead() http://arduino.cc/en/Reference/AnalogRead

ไลบารี่เพิ่มเติม
-LedControl.h https://github.com/wayoda/LedControl/releases

ฟังก์ชั่นในไลบารี่ LedControl.h
-LedControl lc=LedControl(dataPin,clkPin,csPin,numDevices);
-lc.shutdown(addr,false);         // Enable display
-lc.setIntensity(addr,value);     // Set brightness level (0 is min, 15 is max)
-lc.clearDisplay(addr);             // Clear display register
-lc.setDigit(addr, digit, value, point_decimal)  //display number 0-9
-lc.setChar(addr, digit, character, false)          //display character etc. A,b,c,d,E,F,H,L,P,-,_
-lc.setRow(addr, digit,value)                          //display part of segment

รายละเอียดเพิ่มเติมของไลบารี่ http://playground.arduino.cc/Main/LedControl

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


วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้บอร์ด Arduino


วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้ไอซี ATmega328 (ที่มี Boot Loader Arduino)


บริเวณใช้งานบอร์ดทดลอง


โมดูลสำเร็จรูปเพิ่มเติม
 MAX7219 7 Segment

http://www.arduinoall.com (คลิก)
« แก้ไขครั้งสุดท้าย: มิถุนายน 27, 2017, 08:30:10 PM โดย admin »