صفحه 1 از 3 123 آخرینآخرین
نمایش نتایج: از 1 به 10 از 23
Like Tree15 لایک

موضوع: رادیو fm با ماژول tea5767 همراه با نمایشگر

  1. #1
    Member
    تاریخ عضویت
    Aug 2015
    محل سکونت
    ایران اسلامی
    نوشته ها
    67

    رادیو fm با ماژول tea5767 همراه با نمایشگر

    سلام دوستان، راستش من خیلی دنبال ساخت یه رادیو خوب و دیجیتال بودم ، این رادیو با نمایشگر NOKIA5110 بسیار دقیقه و حتی میزان انتن و حساسیت گیرندگی و قابلیت قطع صدا لاظ شده، اول نیاز به ماژول TEA5767 هست که در فروشگاه موجوده ساخت شرکت فیلیپس هست بسیار قدرتمنده ، فقط باید یک برد تبدیل واسش درست کنید برای نصب بر روی برد برد چون خود ماژول حالت اس ام دی داره و چاپی هست، لازم به ذکره جهت رفاه حال خودتون فرکانس شروع رو به فرکانس دلخواه میتونید تو کد تغییر بدین مثلا تو فرکانس 88 مگاهرتز روشن بشه یا همین طور کنتراست اگه نتونستید بگید راهتنمایی کنم. به نظر خودم با وجود مقدار گیرندگی و حساسیت و کیفیت پخش این رادیو فوق العاده هست! (دوستان متاسفانه وقت ندارم وگرنه پروژه های عالی دارم بعدی که میخام بذارم سنسور دنده عقب آلارم و ال ای دی دار برای خودرو هست).

    لینک اقلام استفاده شده در این پروژه:
    ال سی دی : نمایشگر NOKIA 5110 84MM X 84MM دارای نور زمینه
    ماژول رادیو : ماژول گیرنده FM استریو TEA5767
    برد برد : برد بورد 165x 55x10 میلیمتری شفاف - MB 102 BreadBoard
    کلید فشاری مینیاتوری : کلید فشاری مینیاتوری - میکرو سوئیچ
    سیم برد بردی : بسته سیم برد بردی نری به نری در سایز های مختلف
    ماژول امپلیفایر : ماژول آمپلی فایر استریو 3 وات PAM8403
    بلندگو: اسپیکر 8 اهمی 1 وات با قطر 28 میلی متر
    منبع تغذیه برد بردی : http://shop.aftabrayaneh.com/Power_S...er_Supply.html

    و چند قلم ریز دیگه مثل آنتن که خودم فقط واسه قشنگی و الزاما برای گیرندگی بالا نیست چرا که عالیه حساسیت ماژول .

    نحوه تبدیل و بیرون کشیدن پایه های چیپ رادیو TEA5767

    Безымянный.jpg
    111113.jpg
    DSCF3383.jpgDSCF3349.jpgFertiges-Adapterboard-FM-Radio-TEA5767-blog.simtronyx.de.jpg

    نحوه مونتاژ و ادرس پایه ها:

    22.jpg

    111111.jpg1111112.jpg

    کد پروژه :

    کد:
    // TEA5767 und Nokia 5110 LCD Display
    
    #include <SPI.h>
    
    #include <Adafruit_GFX.h>
    #include <Adafruit_PCD8544.h>
    
    // D7 - Serial clock out (CLK oder SCLK)
    // D6 - Serial data out (DIN)
    // D5 - Data/Command select (DC oder D/C)
    // D4 - LCD chip select (CE oder CS)
    // D3 - LCD reset (RST)
    Adafruit_PCD8544 lcd = Adafruit_PCD8544(7, 6, 5, 4, 3);
    
    #include <Wire.h>
    
    #define button_frequency_up     13
    #define button_frequency_down   12
    #define button_mute             11
    
    #define TEA5767_mute_left_right  0x06
    #define TEA5767_MUTE_FULL        0x80
    #define TEA5767_ADC_LEVEL_MASK   0xF0
    #define TEA5767_STEREO_MASK      0x80
    
    
    int old_frequency=-1;
    int frequency=10260;
    
    byte old_stereo=0;
    byte stereo=1;
    
    byte old_mute=1;
    byte mute=0;
    
    byte old_signal_level=1;
    byte signal_level=0;
    
    unsigned long last_pressed;
    
    void setup(void) {
      
      pinMode(button_frequency_up, INPUT);
      pinMode(button_frequency_down, INPUT);
      pinMode(button_mute, INPUT);
      
      Wire.begin();
      
      TEA5767_set_frequency();
    
      lcd.begin();
      lcd.setContrast(60);
      lcd.clearDisplay();
       
      set_text(1,2,"FM Radio",BLACK,1);  
      //set_text(14,147,"blog.simtronyx.de",BLACK,1);
      
    }
    
    
    void loop() {
    
        if(frequency!=old_frequency){
          set_text(old_frequency>=10000?6:14,17,value_to_string(old_frequency),WHITE,2);
          set_text(frequency>=10000?6:14,17,value_to_string(frequency),BLACK,2);
          old_frequency=frequency;
        }
        
        TEA5767_read_data();
          
        if(old_stereo!=stereo){ 
            set_text(old_stereo?22:28,39,old_stereo?"Stereo":"Mono",WHITE,1);
            set_text(stereo?22:28,39,stereo?"Stereo":"Mono",BLACK,1);
            old_stereo=stereo;
        }
        
        if(old_signal_level!=signal_level){
            set_text(old_signal_level<10?76:70,39,String((int)old_signal_level),WHITE,1);
            set_text(signal_level<10?76:70,39,String((int)signal_level),BLACK,1);
            old_signal_level=signal_level;
            show_signal_level(signal_level);
        }
        
        if(old_mute!=mute){
            set_text(1,39,old_mute?"M":"S",WHITE,1);
            set_text(1,39,mute?"M":"S",BLACK,1);
            old_mute=mute;
        }
          
        delay(50);
        
      
      if(digitalRead(button_frequency_down)==HIGH){
        
        frequency=frequency-5;
        if(frequency<8750)frequency=10800;
        TEA5767_set_frequency();
      }
      if(digitalRead(button_frequency_up)==HIGH){
        
        frequency=frequency+5;
        if(frequency>10800)frequency=8750;
        TEA5767_set_frequency();
      }
    
      if(digitalRead(button_mute)==HIGH){
        
        TEA5767_mute();
      }
      
      delay(50);
      
    }
    
    unsigned char frequencyH = 0;
    unsigned char frequencyL = 0;
    
    unsigned int frequencyB;
    
    unsigned char TEA5767_buffer[5]={0x00,0x00,0xB0,0x10,0x00};
    
    void TEA5767_write_data(byte data_size){
       
      delay(50);
      
      Wire.beginTransmission(0x60);
      
      for(byte i=0;i<data_size;i++)
        Wire.write(TEA5767_buffer[i]);
      
      Wire.endTransmission();
      
      delay(50);
    }
    
    void TEA5767_mute(){ 
      
      if(!mute){   
        mute = 1;   
        TEA5767_buffer[0] |= TEA5767_MUTE_FULL;
        TEA5767_write_data(2);
    //    TEA5767_buffer[0] &= ~TEA5767_mute;
    //    TEA5767_buffer[2] |= TEA5767_mute_left_right;
      }   
      else{
        mute = 0;   
        TEA5767_buffer[0] &= ~TEA5767_MUTE_FULL;
        TEA5767_write_data(2);
    //    TEA5767_buffer[0] |= TEA5767_mute;
    //    TEA5767_buffer[2] &= ~TEA5767_mute_left_right;
      }
        
    //  TEA5767_write_data(3);
    }
    
    void TEA5767_set_frequency()
    {
      frequencyB = 4 * (frequency * 10000 + 225000) / 32768;
      TEA5767_buffer[0] = frequencyB >> 8;
      if(mute)TEA5767_buffer[0] |= TEA5767_MUTE_FULL;
      TEA5767_buffer[1] = frequencyB & 0XFF;
      
      TEA5767_write_data(5);
    }
    
    int TEA5767_read_data() {
      
      unsigned char buf[5];
      memset (buf, 0, 5);
      
      Wire.requestFrom (0x60, 5); 
    
      if (Wire.available ()) {
        for (int i = 0; i < 5; i++) {
          buf[i] = Wire.read ();
        }
            
        stereo = (buf[2] & TEA5767_STEREO_MASK)?1:0;
        signal_level = ((buf[3] & TEA5767_ADC_LEVEL_MASK) >> 4);
        
        return 1;
      } 
      else return 0;
    }
    
    void show_signal_level(int level){
      
      byte xs=68;
      byte ys=8;
      for(int i=0;i<15;i++){
        if(i%2!=0)lcd.drawLine(xs+i,ys,xs+i,ys-i/2,level>=i?BLACK:WHITE);
      }
    }
    
    void set_text(int x,int y,String text,int color,int textsize){
      
      lcd.setTextSize(textsize);
      lcd.setTextColor(color); 
      lcd.setCursor(x,y);     
      lcd.println(text);      
      lcd.display();         
    }
    
    
    String value_to_string(int value){
      
      String value_string = String(value / 100);
      value_string = value_string + '.' + ((value%100<10)?"0":"") + (value % 100);
      return value_string;
    }
    کتابخانه ها :

    https://github.com/adafruit/Adafruit...10-LCD-library

    https://github.com/adafruit/Adafruit-GFX-Library


    اینم عکس کامل پروژه دوستان توجه کنن چقدر فشرده کردم رادیو رو همینطوز کلید برای بک لایت گذاشتم و شما میتونید یه مقاومت نوری هم به جاش استفاده کنید .

    photo1449948007675.jpgphoto1449948007821.jpgphoto1449948007961.jpgphoto1449948008024.jpg

    (نظرررررررررر یادتون نره احیانا سوالی داشتید سعی میکنم در سریعترین وقت ممکن جواب بدم)
    ویرایش توسط sina2sms@yahoo.com : 12-24-2015 در ساعت 11:04 PM

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,807
    دم شما حسابی گرم
    لایک کردن

  3. #3
    Member
    تاریخ عضویت
    Aug 2015
    محل سکونت
    ایران اسلامی
    نوشته ها
    67
    سلام داداش گل، خیلی مخلصیم، اگر درست کردی جون داداش عکسش رو بذار دلگرم بشیم ، داداش واقعا قویه کیفیت صدا محشر ، راستی الان اون فرکانس شروع و کنتراست رو هم میزارم واسه دوستان داداش اینقدر انرژی دادی با کامنتت شب هم سنسور دنده عقب الارم و ال ای دی دار رو میزارم . خیلی گلی
    لایک کردن

  4. #4
    Member
    تاریخ عضویت
    Aug 2015
    محل سکونت
    ایران اسلامی
    نوشته ها
    67
    دوستان برای تغییر فرکانس اولیه از 102/60 مگاهرتز کافیه تو کد این خط int frequency=10260 که همونطور که میبینید روی 102/60 تعریف شده رو کنیم مثلا 8800 اینطوری روی موج رادیو جوان روشن میشه ، یا فرکانسهای دیگه به سلیقه خودتون ، حالا برای تغییر کنتراست ال سی دی در کد خط lcd.setContrast(60); هست و همونطور که میبینید بطور پیشفرض روی 60 هست شما تا 0 و 100 جای تغییر دارید هرچند من خودم روی 60 گذاشتم و بنظرم بهترین زاویه دید رو میده البته اگر زیاد بود 53 بنظرم خوبه و دیگه سیاهی نداره ال سی دی پس باید اینطور باشه اولا برای تغییر فرکانس میشه از int frequency=10260 تغییر به int frequency=8800 و برای کنتراست از lcd.setContrast(60); به lcd.setContrast(53); مثلا ، ( دوستان توجه کنید فقط عدد ها رو تغییر بدید کاری به دستور ها نداشته باشید!\ سعی کردم به ساده ترین شکل بگم، یا حق

  5. #5
    Junior Member
    تاریخ عضویت
    Jan 2016
    نوشته ها
    2
    با سلام
    آقا سینا کارت عالیه
    مدتها در مورد راه اندازی ال سی دی های نوکیا و رادیو fm با بسکام اطلاعات جمع می کردم که به این قسمت رسیدم
    حالا به نظر شما میشه کدهای این پروژه رو به بسکام تبدیل کرد؟
    با تشکر از شما
    لایک کردن

  6. #6
    Member
    تاریخ عضویت
    Aug 2015
    محل سکونت
    ایران اسلامی
    نوشته ها
    67
    سلام دوست من نظر لطفته ، دوست من حقيقتا من امتحان نكردم ولي بنظرم بشه، اگه شما انجام دادي بهم حتما خبر بده ولي سوالم اينه چرا مگه اينجا مشكلي داري و ميخايي تبديل كني به بسكام؟

  7. #7
    Junior Member
    تاریخ عضویت
    Sep 2015
    نوشته ها
    10
    سلام بسیار عالی خیلی زحمت کشیدین ممنون یه سوال داشتم من یه پروژه دارم که قرار لز 90mhz استفاده کنم ایا میشه از این مازول استفاده کرد ؟
    دوم اینکه میخوام هرچی که رو 90 mhz دریافت میکنه رو بریزم رو پورته سریال !
    و توسط یه دیوایس دیگه بگیرم و بفرستم رو اسپیکر ایا شدنی هست ؟
    لطفا اگر هست بگید من تو این پروژه گیر کردم

  8. #8
    Junior Member
    تاریخ عضویت
    Sep 2015
    نوشته ها
    10
    بله میشه با اردینو کامپایل کنی فایل hex بریزی رو میکرو یه تبدیل hex تو بسکام سرچ کنی هم یه چیزایی هست
    لایک کردن

  9. #9
    Junior Member
    تاریخ عضویت
    Aug 2015
    نوشته ها
    10
    اقا من یکی از این ماژول ها ی رادیو داشتم با هر کدی که واسش توی اینترنت وجود داشت استفاده کردم فقط خواستم یه شبکه بگیره فقط یکی. ااااما هیچی نگرفت منم زدم با چکش پودرش کردم.

  10. #10
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,807
    نقل قول نوشته اصلی توسط mohsenzhr نمایش پست ها
    اقا من یکی از این ماژول ها ی رادیو داشتم با هر کدی که واسش توی اینترنت وجود داشت استفاده کردم فقط خواستم یه شبکه بگیره فقط یکی. ااااما هیچی نگرفت منم زدم با چکش پودرش کردم.
    کاش قبل از پود کردنش اینجا یه سوال پرسیده بودید شاید حلش می کردیم با هم

صفحه 1 از 3 123 آخرینآخرین

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO