Подключение динамика к rrd-102v2.0 (FM радио)

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Максим B, 4 май 2016.

  1. Максим B

    Максим B Гуру

    Всем привет. Могу ли я подключить напрямую динамик 8 Ом, 0,5W от старого ПК (правда почему-то динамик прозвыанивается - так и должно быть?) к данному модулю напрямую без усилителя и как это правильно сделать??? Спасибо
     
    Последнее редактирование: 4 май 2016
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    нет, в модуле нет усилителя.
     
  3. Максим B

    Максим B Гуру

    может поможете правильно подключить? спасибо.
     
  4. Максим B

    Максим B Гуру

  5. Tomasina

    Tomasina Сушитель лампочек Модератор

    берете любой усилитель с линейным входом, на вход усилителя подаете выход с радиомодуля, на выход усилителя подключаете динамик.
     
  6. Максим B

    Максим B Гуру

    У меня есть усилитель PAM8403 - но опять же пока не знаю как его подключать праивльно
     
  7. Максим B

    Максим B Гуру

    Нашел такое видео, но пока не понятно что-куда подключать

     
  8. Tomasina

    Tomasina Сушитель лампочек Модератор

  9. Максим B

    Максим B Гуру

    а длина антены какой должна быть?
     
  10. Максим B

    Максим B Гуру

    В динамике только треск (((
     
  11. Максим B

    Максим B Гуру

    На выходах должен присутствовать шум??? Просто я подключил наушники напрямую к выходам tda5807 - и тишина, напряжение показывает на данный момент 0,11В , на одном и 2-м канале. Что не так я делаю? Кучу скетчей перепробовал - толку 0
     
  12. Максим B

    Максим B Гуру

  13. Максим B

    Максим B Гуру

    Подключил наушники через конденсаторы 100 мкФ, 6,3V - в наушниках еле-еле слышен стреск и все, напряжение на выходе 0,18V (нашел косяк с канифолью). Ни один из кодов не запускается

    Код (Text):

    #define  RDA5807_adrr 0x60      
    #define RDA5807_SDA A1
    #define RDA5807_SCL A0


    #define  ARDUINO_PORT(a)        ((a<8)?PORTD:(a<14?PORTB:PORTC))
    #define  ARDUINO_PIN(a)           ((a<8)?PIND:(a<14?PINB:PINC))
    #define  ARDUINO_DDR(a)          ((a<8)?DDRD:(a<14?DDRB:DDRC))
    #define  ARDUINO_PIN_NUM(a)  ((a<8)?a:(a<14?(a-8):(a-14)))


    #define SDA_OUT_HAL(sda)     void  SDA_OUT  (void){bitSet(ARDUINO_DDR(sda), ARDUINO_PIN_NUM(sda));}    
    #define SDA_IN_HAL(sda)      void  SDA_IN   (void){bitClear(ARDUINO_DDR(sda), ARDUINO_PIN_NUM(sda));}
    #define SDA_HIGHT_HAL(sda)   void  SDA_HIGHT(void){bitSet(ARDUINO_PORT(sda), ARDUINO_PIN_NUM(sda));}
    #define SDA_LOW_HAL(sda)     void  SDA_LOW  (void){bitClear(ARDUINO_PORT(sda), ARDUINO_PIN_NUM(sda));}
    #define SCL_HIGHT_HAL(scl)   void  SCL_HIGHT(void){bitSet(ARDUINO_PORT(scl), ARDUINO_PIN_NUM(scl));asm volatile ("nop");}
    #define SCL_LOW_HAL(scl)     void  SCL_LOW  (void){bitClear(ARDUINO_PORT(scl), ARDUINO_PIN_NUM(scl));asm volatile ("nop");asm volatile ("nop");}
    #define SCL_OUT_HAL(scl)     void  SCL_OUT  (void){bitSet(ARDUINO_DDR(scl), ARDUINO_PIN_NUM(scl));}
    #define WITE_HIGHT_SDA_HAL(sda)  void WITE_HIGHT_SDA (void){loop_until_bit_is_clear(ARDUINO_PIN(sda), ARDUINO_PIN_NUM(sda));}

    #define _i2c(scl,sda)  \
      SDA_OUT_HAL(sda)   \
      SDA_IN_HAL(sda)    \
      SDA_HIGHT_HAL(sda) \
      SDA_LOW_HAL(sda)   \
      SCL_HIGHT_HAL(scl) \
      SCL_LOW_HAL(scl)   \
      SCL_OUT_HAL(scl)   \
      WITE_HIGHT_SDA_HAL(sda)
     
    _i2c(RDA5807_SCL, RDA5807_SDA);

    void _i2cWriteByte(byte v)          
    {                                            
        SDA_OUT();                      
        for (byte i=8;i;i--)  { if (v & 0x80)   SDA_HIGHT();  else  SDA_LOW();SCL_HIGHT();  v <<=1; SCL_LOW(); }                
      SDA_IN();SDA_HIGHT(); SCL_HIGHT(); WITE_HIGHT_SDA(); SCL_LOW();        
    }
       enum                                                                                
        {
           OPERATION_SEND_START,
           OPERATION_SEND_STOP,
           OPERATION_SEND_ACK,
           OPERATION_INIT
        } I2C_OPERATION;                                                                                            


       void _i2cBusOperation(byte OperationID)        
        {                                                                                                
           switch (OperationID)                                                              
           {                                                                                            
              case  OPERATION_SEND_START:                  
                 SDA_OUT(); SDA_HIGHT();SCL_HIGHT();SDA_LOW();SCL_LOW(); _i2cWriteByte(RDA5807_adrr<<1);break;                                
              case  OPERATION_SEND_STOP:                    
                 SDA_OUT();    SDA_LOW();    SCL_HIGHT();    SDA_HIGHT();    SDA_IN(); break;
              case  OPERATION_SEND_ACK:                      
                 SDA_OUT();    SCL_LOW();    SDA_LOW();    SCL_HIGHT();    SCL_LOW();    SDA_IN();  break;
              case  OPERATION_INIT:  SCL_OUT();break;  
           }  
        }



    double f_ini=95.6;

    void setFrequency(double fmhz)  // Функция загрузки частоты настройки в модуль EM5807M.
    {
      int  frequencyB = 4 * (fmhz * 1000000 + 225000) / 32768;
      char frequencyH = frequencyB >> 8;     // Старший байт.
      char frequencyL = frequencyB & 0XFF;   // Накладываем маску 0xFF на младший байт.
     
       _i2cBusOperation(OPERATION_SEND_START);
       _i2cWriteByte(frequencyH);
       _i2cWriteByte(frequencyL);
       _i2cWriteByte(0xB8);
       _i2cWriteByte(0x10);
       _i2cWriteByte(0x00);
       _i2cBusOperation(OPERATION_SEND_STOP);
    }

    // the setup routine runs once when you press reset:
    void setup()
    {
      SCL_OUT();
      setFrequency(f_ini);
       pinMode(13, OUTPUT);
    }

    byte vol=0;
    void loop()
    {
      digitalWrite(13,HIGH);
       vol++;
      delay(300);
      digitalWrite(13,LOW);
      delay(2000);
    f_ini=f_ini+0.1;
    setFrequency(f_ini);
    }
     
    В данном коде я ставил частоту 103.7 - на этой у нас есть стабильно радио. Заказывать новый модуль???