บทความ การใช้งาน FreqMeasure Library (วัดความถี่) สำหรับบอร์ด Arduino
บริษัทรับงานวิจัย R&D/Microcontroller/ชุดควบคุม/เขียนโปรแกรม
โดยงานขนาดใหญ่ กลาง เล็ก และ งานชิ้นเดียว ใช้เวลาทำต้นแบบให้ทดสอบภายใน3-7 วัน ต้นแบบราคาเริ่มต้นที่ 1500฿(ขึ้นอยู่กับงาน) สามารถสอบถามเพิ่มเติมได้ทาง e-mail
ขอความกรุณาอ่านข้อความส่วนนี้อย่างละเอียดให้เข้าใจ
สินค้าจะส่งออกจากร้านในทุกวันพุธและศุกร์ โดยต้องแจ้งโอนเงินให้แล้วเสร็จก่อน 8.00น. ของวันพุธ,ศุกร์ มูลค่าสินค้ารวมต่ำกว่า 5000 บาท ไม่มีบริการรับสินค้าเองที่บริษัทให้สั่งซื้อ online เท่านั้นรายละเอียดดูได้จากเมนู How to buy

  การใช้งาน FreqMeasure Library (วัดความถี่) สำหรับบอร์ด Arduino

การใช้งาน FreqMeasure Library (วัดความถี่) สำหรับบอร์ด Arduino

 1. Hardware requirement บอร์ดทดลองและ PIN ที่สามารถใช้กับไลบรารี่นี้ได้มีดังนี้

Board Frequency
Input Pin
Pins Unusable
with analogWrite()
Arduino Uno 8 9, 10
Arduino Duemilanove 8 9, 10
Arduino Mega 49 6, 7, 8
Sanguino 14 12, 13


2. ฟังก์ชันการใช้งานมีดังนี้

         FreqMeasure.begin();                
                              ใช้ในฟังก์ชัน setup() เพื่อเปิดใช้งาน ( Enable) ไลบรารี่ FreqMeasure Library

         FreqMeasure.available();          
                              ใช้สำหรับตรวจสอบว่ามีความถี่เข้ามาและพร้อมที่จะอ่านค่าหรือไม่ หากค่าที่อ่านได้เป็น 0 (false) หมายถึงไม่มีความความถี่เข้ามาหรือไม่พร้อมที่จะอ่าน

         FreqMeasure.read();                  
                              ใช้สำหรับอ่านค่าความถี่

         FreqMeasure.end();                   
                               ปิดการใช้งานไลบรารี่ FreqMeasure Library และคืนค่า PIN กลับไปสู่ PWM (analogWrite) function


 3. หลักการทำงานของ FreqMeasure Library ในโหมดวัดจะใช้การวัดช่วงเวลาของ 1 รอบคลื่นที่เข้ามา จากนั้นนำเวลาทีได้ไปคำนวนเป็นความถี่

frequency input at specific pin

         ___         ___         ___         ___         ___         ___        
        |       |       |       |       |       |       |       |       |       |       |       |       
        |       |       |       |       |       |       |       |       |       |       |       |       
 ___|       |___|       |___|       |___|       |___|       |___|       |___
                                                                                                        
                        ------|               |------- 
              Measure time in a single cycle
 

 

Ex. Measurement time =0.001s in 1 cycle. 
                      f=1/t
                      f=1/0.001
                      f=1000Hz

4. ตัวอย่างโปรแกรมมีดังนี้

#include <FreqMeasure.h>

void setup() {
  Serial.begin(57600);
  FreqMeasure.begin();
}

double sum=0;
int count=0;

void loop() {
  if (FreqMeasure.available()) {
    // average several reading together
    sum = sum + FreqMeasure.read();
    count = count + 1;
    if (count > 30) {
      double frequency = F_CPU / (sum / count);
      Serial.println(frequency);
      sum = 0;
      count = 0;
    }
  }
}
//

Please visit to webboard topic=318 for ask more infomation

  Related

สามารถสอบถามข้อมูล และ ถาม/ตอบ ปัญหาได้ที่นี่
โดยเนื้อหาของบทความจะอยู่ที่
http://www.ec.in.th/index.php?route=cms/article&article_id=36
ถ้าจะใช้ water flow sensor ประมาณ5ตัว ใช้บอร์ดmega2560 นอกจาก pin49 จะใช้pin ไหนได้อีกบ้างคับ หรือมีวิธีแก้แบบไหนได้บ้างคับ ขอบคุณคับ
ใช้ timer และ interrupt แทนการใช้ library ครับ

  Categories

  CMS Categories

 Login


 

  Information

  Live Chat