Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
janascimento

Arduino Uno + Nokia 5110 + TEA 5767

Recommended Posts

janascimento    23

Srs. 

 

Boa tarde.

Montei um circuito contendo um Arduino, um display 5110 e o TEA5767.

Quando ligo o circuito o display comporta-se bem, consigo fazer o up e o down da frequência, só que o som não sai nada.

Estou utilizando uma caixa de som esta de computador (está tudo em ordem). O que poderia ter acontecido ?

Três hipóteses: Ou na hora de soldar a pequena placa do TEA posso ter aquecido demais ??? ou a antena não está legal (se bom que o sinal no display aparece cheio quando as frequências aqui estão sintonizadas ou parte do programa não esteja funcionando.

 

Ai vai o programa, o circuito vou atachar. 

 

// TEA5767 und Nokia 5110 LCD Display
 
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <Wire.h>
 
// Software SPI (slower updates, more flexible pin options):
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
 
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
 
 
#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();
 
  display.begin();
  display.setContrast(25);
  display.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);
  
  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 = 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)display.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){
  
  display.setTextSize(textsize);
  display.setTextColor(color); 
  display.setCursor(x,y);     
  display.println(text);      
  display.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;
}

post-564920-0-93095400-1403205158_thumb.

Compartilhar este post


Link para o post
Compartilhar em outros sites
aphawk    2.452

@janascimento,

 

Bom, parece que voce seguiu exatamente este artigo :

 

http://blog.simtronyx.de/en/simple-fm-stereo-radio-with-a-tea5767-breakout-module-and-an-arduino/

 

Supondo que voce não fez nenhuma alteração.... a saída de áudio do TEA é de baixo nível, precisa ser amplificada ANTES de voce entregar a uma caixa acústica amplificada.

 

Da maneira que voce está ligando, nãi vai sair nada mesmo... eu montei algo semelhante , mas usei um módulo amplificador desses chineses de US$ 2 e funcionou perfeitamente.

 

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites
janascimento    23
  • Autor do tópico
  • Boa noite Paulo.

     

    Realmente foi dai que copiei, fiz uma pequena mudança no código uma vez que o Arduino 1.0.5 tinha um bug e não deixava compilar para o Arduino.

    O sinal do áudio apliquei nesta caixa amplificada que possui este módulo de 1W ou 3W de potência. Tenho a impressão que dei uma borrada com o ferro de solda num dos resistores SMD da placa. Amanhã olharei com a lupa contra o sol para ver se foi realmente isto.

     

    Consegui um código para testar os nokia, postarei para a galera em outro tópico.

     

    Abraços e obrigado pela resposta.

     

    JA 

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    aphawk    2.452

    @janascimento,

     

    Opa, boa noite hehehe,

     

    Olha, eu também sofrí na soldagem dos terminais de saída de áudio do módulo... deu um curto entre uma das saídas e uma trilha muito próxima que só peguei com lupa também, aí funcionou direitinho.

     

    Foi por causa de módulos como esse que eu resolví comprar um ferro de soldar que parece ferramenta de cirurgião, tem 15W de potência e uma ponta super-fina,

     

    Mas não se iluda com a sua caixa acústica amplificada. Elas possuem baixa impedância de entrada justamente por causa da saída da placa de som do computador, assim ajuda a eliminar interferências causadas por aparelhos celulares próximos. E essa saída do TEA possui alta impedância e baixa amplitude.....

     

    Se quiser dar uma bela incrementada no som, use um controle de tonalidade I2C, veja esse que eu montei :

     

    http://forum.clubedohardware.com.br/topic/937085-tutorial-de-projetos-com-avr-design-programação-em-basic-e-simulação-no-proteus/?p=5715586

     

     

    Paulo

    Editado por aphawk

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    janascimento    23
  • Autor do tópico
  • Paulo vou fazer o teste no meu Gradiente Spect 76 (veínho sim) kakakkakaka, vamos ver se funciona.

     

    Depois posto o resultado.

     

    abraços

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    janascimento    23
  • Autor do tópico
  • Paulo, 

     

    bom dia.

     

    Realmente foi a solda que fiz, observei na lupa e tinham 2 resistores SMD em curto (ocasionado pela solda). Está 100% funcional.

    As caixas estão operacional. 

     

    100%.

     

    Moderador pode fechar o tópico. Galera do Clube irei postar um circuito com o seu respectivo código para testar o display Nokia na pasta postem aqui os seus projetos.

     

    Valeu Galera.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    aphawk    2.452

    @janascimento,

     

    Opa legal !!  Foi o mesmo problema comigo....

     

    voce mesmo pode fechar , existe um botão para isso, pois este tópico foi criado por você mesmo !

     

    Paulo

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Visitante
    Este tópico está impedido de receber novos posts.





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×