اصنع راديو باستخدام اردوينو اونو ووحدة (TEA5767 FM)

مبتدئ

image_pdf

البرمجة

بالبداية ستحتاج إلى تحميل مكتبة (TEA5767 FM) و من ثم تثبيتها في بيئة تطوير الاردوينو (اردوينو IDE) يمكنك الاطلاع على الدرس الأول -تنصيب برنامج اردوينو  لمعرفة كيف يتم تثبيت المكتبات

 

#include<Wire.h>

#include <TEA5767Radio.h> 

#include <LiquidCrystal.h>

TEA5767Radio radio = TEA5767Radio();            
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);              
float frequency = 0;                            
int fUP = A0;                                   
int fDOWN = A1;                                
int count = 0;                                   
void setup()
{
  delay(1000);
  Wire.begin();
  frequency = 91.1;                       //starting frequency
  radio.setFrequency(frequency);
  lcd.begin(16,2);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("FM: ");
  lcd.setCursor(0, 1);
  lcd.print(frequency);
}void loop()
{
  
  if(digitalRead(fUP))                      
  {
    count=0;
    while (digitalRead(fUP))
    {
      count++;
      if(count > 0 && count <= 6)          
      {
        frequency += 0.1;
        frequencyUpdate();
        delay(200);
      }
      else if (count > 6 && count <= 2)   
      {
        frequency += 0.1;
        frequencyUpdate();
        delay(80);
      }
      else                                
      {
        frequency += 0.1;
        frequencyUpdate();
        delay(5);
      }
    }}
  
  
  
   if(digitalRead(fDOWN))                   
   {
     count = 0;
    while (digitalRead(fDOWN))            
    {
      count--;
      if(count < 0 && count >= -6)
      {
        frequency -= 0.1;
        frequencyUpdate();
        delay(200);
      }
      else if (count < -6 && count >= -12)
      {
        frequency -= 0.1;
        frequencyUpdate();
        delay(80);
      }
      else                                 
      {
        frequency -= 0.1;
        frequencyUpdate();
        delay(5);
      }
    }
   }  
  
}
void frequencyUpdate()                    
{
  frequency = constrain(frequency, 88.0, 108.0);
  lcd.setCursor(0,0);
  lcd.print("ESTACION DE FM:");
  lcd.setCursor(0,1);
  lcd.print(frequency);
  radio.setFrequency(frequency);
}

شرح الكود البرمجي

بالبدية سيتم استدعاء المكتبات الضرورية في المشروع

#include<Wire.h>
#include <TEA5767Radio.h> 
#include <LiquidCrystal.h>

نعرف كائن باسم (radio)

TEA5767Radio radio = TEA5767Radio();

نعرف منافذ الشاشة الكرستالية

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

نعرف متغيرات تشيل إلى التردد و منفذ ضغاط التحكم لزيادة و تنقيص قيمة التردد
يمثل ضغاط التحكم الموصل مع المنفذ A0 مفتاح التحكم بزيادة التردد بقيمة 0.1
و يمثل ضغاط التحكم الموصل مع المنفذ A1 مفتاح التحكم بتنقيص التردد بقيمة 0.1

float frequency = 0; 
int fUP = A0; 
int fDOWN = A1; 
int count = 0;

في دالة التهيئة نهيئة الاتصال و الشاشة الكرستالية

void setup()
{
delay(1000);
Wire.begin();
frequency = 91.1; //starting frequency
radio.setFrequency(frequency);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FM: ");
lcd.setCursor(0, 1);
lcd.print(frequency);
}

في دالة ال(void loop) نبرمج دوال التحكم زيادة ونقصان قيمة التردد بناء على مدخلات مفاتيح التحكم

void loop()
{

if(digitalRead(fUP)) 
{
count=0;
while (digitalRead(fUP))
{
count++;
if(count > 0 && count <= 6) 
{
frequency += 0.1;
frequencyUpdate();
delay(200);
}
else if (count > 6 && count <= 2) 
{
frequency += 0.1;
frequencyUpdate();
delay(80);
}
else 
{
frequency += 0.1;
frequencyUpdate();
delay(5);
}
}}



if(digitalRead(fDOWN)) 
{
count = 0;
while (digitalRead(fDOWN)) 
{
count--;
if(count < 0 && count >= -6)
{
frequency -= 0.1;
frequencyUpdate();
delay(200);
}
else if (count < -6 && count >= -12)
{
frequency -= 0.1;
frequencyUpdate();
delay(80);
}
else 
{
frequency -= 0.1;
frequencyUpdate();
delay(5);
}
}
} 

}

في دالة (frequencyUpdate) يتم تحديث قيم التررد بناء على المدخلات من المفاتيح

void frequencyUpdate() 
{
frequency = constrain(frequency, 88.0, 108.0);
lcd.setCursor(0,0);
lcd.print("STACION FM:");
lcd.setCursor(0,1);
lcd.print(frequency);
radio.setFrequency(frequency);
}

 

X
Product added to the cart