Page 46 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 46

เอกสารประกอบการเรียนวิชาไมโครคอนโทรลเลอร์เบื้องต้น    13


























                                       รูปที่ 10.12 ช่วง LOW และ HIGH ของ Response Bit
                                (ที่มา www.Cpre.kmutnb.ac.th/esl/learning/index.php?article)

               โปรแกรมที่ 10.2 Arduino Sketch 2
                       วิธีสร้างอินเทอร์รัพท์ EINT0 และเขียน ISR (Interrupt Service Routine) เพื่อใช้ในการอ่านข้อมูลที่ถูกส่ง

               มาจากไอซี DHT22

               Sourcecode: dht22_eint0_reading.ino
                              // Author: RSP @KMUTNB

                              // Date: 22-April-2014
                              // Target Board: Arduino Uno (ATmega328P, 5V, 16MHz)

                              // Arduino IDE: version 1.0.5

                              // Description:
                              //   This Arduino Sketch demonstrates how to read data from DHT22 (AM2302)

                              //   -- a digital relative humidity and temperature sensor manufactured by

                              //   Aosong Electronics Co.,Ltd.
                              //   It utilizes the EINT0 interrupt and the corresponding ISR to read

                              //   data bits from the IC after sending the start bit.

                              const byte DATA_PIN = 2; // connected to the DATA pin of DHT22 (AM2302)
                              volatile boolean flag = false;

                              volatile uint8_t data[5];
                              volatile uint8_t bit_count = 0;

                       void eint_isr() { // ISR for EINT0

                              static uint32_t tH, tL = 0L;
                              if ( digitalRead( DATA_PIN ) ) { // HIGH




               หน่วยที่ 10  การใช้งาน Arduino กับไอซีวัดอุณภูมิและโมดูลตรวจจับสัญญาณอินพุต                 เรียบเรียงโดยครูทันพงษ์  ภู่รักษ์
   41   42   43   44   45   46   47   48   49   50   51