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

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



                              uint16_t dist_mm; // distance in mm.

                              char sbuf[32];    // used for sprintf()
                              uint16_t read_ultrasonic_sensor() {

                              digitalWrite( LED_PIN, HIGH );

                              digitalWrite( TRIG_PIN, HIGH );
                              delayMicroseconds( 12 );

                              digitalWrite( TRIG_PIN, LOW );
                              pulse_width = 0;

                       while (pulse_width == 0 ) {}  // wait until pulse_width > 0
                              digitalWrite( LED_PIN, LOW );

                              return DURATION_TO_DISTANCE( pulse_width );

                              }
                       void loop() {

                              d_ultrasonic_sensor();

                              if ( dist_mm > MAX_DISTANCE_IN_MM ) {
                              Serial.println( "Out of range." );

                       } else {

                              sprintf( sbuf, "Distance: %d.%1d cm", (dist_mm/10), (dist_mm%10) );
                              Serial.println( sbuf );

                              }
                              delay( 200 );

                              }

                              volatile uint32_t timestamp;
                       void eint_isr() { // ISR for Ext. Interrupt

                              timestamp = micros();  // read the timestamp (in microseconds)
                              if ( digitalRead( ECHO_PIN ) ) { // HIGH

                              tH = timestamp;

                              } else { // LOW
                              tL = timestamp;

                              pulse_width = (tL-tH);

                              }}






               หน่วยที่ 10  การใช้งาน Arduino กับไอซีวัดอุณภูมิและโมดูลตรวจจับสัญญาณอินพุต                 เรียบเรียงโดยครูทันพงษ์  ภู่รักษ์
   56   57   58   59   60   61   62   63   64   65   66