قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 05-03-2020, 05:29 PM المشاركة 1   
افتراضي مقياس تردد باستخدام الاردوينو Twitter FaceBook Google+



مقياس تردد باستخدام الاردوينو :
الدائرة الكهربية




يحتوي الاردوينو على دالة خاصة pulseIn ، والتي تمكننا من تحديد مدة duration الحالة الموجبة أو مدة الحالة السالبة لموجة مستطيلة معينة :

كود:
Htime = pulseIn(8,HIGH);
Ltime = pulseIn(8, LOW);

تقيس الدالة الوقت الذي يوجد فيه المستوى المرتفع High أو المنخفض Low الموجود على الطرف 8 من الاردوينو . لذلك في دورة واحدة من الموجة ، سيكون لدينا مدة للمستوى الموجب Htime ومدة للمستوى السالب Ltime بالميكروثانية . الدالة pulseIn تقيس الوقت بالميكروثانية . في إشارة معينة ، نفترض أن لدينا وقت مرتفع Htime وليكن 10ms ووقت منخفض Ltime وليكن 30ms ويكون زمن الدورة 10+30=40ms ، ويكون التردد 1000/40 = 25 Hz . سيتم تخزين 30000 في العدد الصحيح Ltime و 10000 في Htime. عندما نضيفهم معًا ، سنحصل على مدة الدورة ، ومن خلال المعكوس (المقلوب) سنحصل على التردد.

البرنامج :


كود:
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int Htime;              //integer for storing high time
int Ltime;                //integer for storing low time
float Ttime;            // integer for storing total time of a cycle
float frequency;        //storing frequency
void setup()
{
    pinMode(8,INPUT);
    lcd.begin(16, 2);
}
void loop()
{
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Frequency : ");
    Htime=pulseIn(8,HIGH);      //read high time
    Ltime=pulseIn(8,LOW);        //read low time
    
    Ttime = Htime+Ltime;
    frequency=1000000/Ttime;    //getting frequency with Ttime is in Micro seconds
    lcd.setCursor(0,1);
    lcd.print(frequency);
    lcd.print(" Hz");
    delay(500);
}

احصائية الشكر والاعجاب - 2 شكراً, 1 عدم اعجاب, 2 اعجاب
شكراً سعيد قادر, عبدالله حجازى ( شكر العضو على هذه المشاركة )
عدم اعجاب منى حسين ( لم تعجبه المشاركة )
اعجاب سعيد قادر, عبدالله حجازى ( أعجبته المشاركة )
اعلانات

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 09-03-2020, 12:12 AM المشاركة 2   
افتراضي


عمل متميز جداا ومجهود كبير شكراا جزيلا لك مهندسا الفاضل " F.Abdelaziz "

افكر في تطوير هذا المشروع ليكون قارئ أشارة موجة مربعة وموجة مثلثة
بستخدام شاشة جرافيك


احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً F.Abdelaziz, سعيد قادر ( شكر العضو على هذه المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 06:32 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025