Eletrônica Silveira
Olá, Seja Bem-Vindo ao Fórum Eletrônica Silveira!!!!
Para você poder ver os mais variados Projetos do nosso Fórum, você precisa fazer o cadastro!

Depois de se Cadastrar, não se esqueça de ler as regras do fórum!

http://eletronicasilveira.forumeiros.com/t3-regras-do-forum#3


Administrador do Fórum,
Rafael Silveira
HOMENAGEM

Na vida tudo passa tudo acontece mas alguém igual a você a gente jamais esquece




★ 22 de novembro de 1991

† 12 de março de 2016

Nosso eterno amigo, administrador e fundador deste fórum
Quem está conectado
39 usuários online :: 7 usuários cadastrados, Nenhum Invisível e 32 Visitantes :: 2 Motores de busca

Alessandro Moreira, deus efiel, Ercilio, Idemar, ismaelsc, s@ndro2014, TRenesto

[ Ver toda a lista ]


O recorde de usuários online foi de 264 em Seg 18 Mar 2013 - 11:54
Últimos assuntos
» Fonte Chaveada 2000W SG3525 & IR2110
Hoje à(s) 21:29 por ialvega

» esquema modulo Pre Amplificador Studio R z2400
Hoje à(s) 20:00 por ismaelsc

» YIROSHI super driver 1500w
Hoje à(s) 16:00 por ialvega

» FONTE CHAVEADA 800W COM PROTEÇÃO CONTRA CURTO - IR2153
Hoje à(s) 9:06 por wandows

» Amplificador Classe D Fullbridge
Ontem à(s) 23:43 por vanessa Farias

» PI POLONÊS
Qui 21 Fev 2019 - 21:43 por silvanomucuge

» amplificador mpa 800 bom de grave
Ter 19 Fev 2019 - 12:29 por matos nascimento

» Alteração no crossover ativo do videorockola - 3 vias
Ter 19 Fev 2019 - 11:31 por Diagoo

» Lista de componentes
Seg 18 Fev 2019 - 23:17 por Gildo Freitas

» Temporizador com ADC pic 12f675
Seg 18 Fev 2019 - 16:19 por joaquimseixo

» Amplificador XLH-4 Advance
Dom 17 Fev 2019 - 22:43 por JuniorFilho1001@gmail.com

» Projeto fonte automotiva chaveada 14.4v
Dom 17 Fev 2019 - 21:54 por elementoex

» IRS900 Fullbridger
Dom 17 Fev 2019 - 13:50 por louroimortaldotempo

» esquema studio r z7/ z8
Sab 16 Fev 2019 - 9:53 por Nando Som

» Vu bargraph PA1800
Sex 15 Fev 2019 - 23:15 por ciertec

CURSOS ONLINE VIP
Top dos mais postadores
Rafael Silveira (7816)
 
Caca Silva (6018)
 
renatoscp (3877)
 
CMeletronica (3218)
 
michel chagas (2791)
 
Railson (2119)
 
alexsandro rodrigues de a (1827)
 
naldo santos (1599)
 
ablacon64 (1222)
 
gilvantexas (1061)
 

Medidor de Velocidade

Publicidade

Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Ir em baixo

Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Mensagem por Caca Silva em Qui 25 Jan 2018 - 21:30

Pessoal boa noite. Meu problema é o seguinte cismei de criar um analisador de spectro como parte de um outro projeto, pra isso usarei um display alfanumérico de 16x2 e um microcontrolador pic16F877a. Para captar o áudio usei os canais analógicos AN0 e AN1 para ser R e L do analisador. Para isso criei duas variáveis do tipo int para que ambas armazenem o valor de ADC_read 0 e 1.
Até aí, moleza. Criei um caractere customizado com tudo "cheio" para o display. No display na linha de cima escrevi já de início a letra L e um traço (L-) e na linha de baixo a mesma coisa mudando somente o L para (R-). Criei uma função que chamei de void tela, nela dividi as variáveis de contagem dos ADC_read de 10 bits em 14 partes e atribui um valor da variável pra cada parte assim quando a variável atinge um certo valor usando customchar eu acendo em cada coluna do display o caractere criado até chegar ao valor de 1023 (10 bits) e chegar ao último caractere do display. Até aí também tudo certo.



A questão é como faço para limpar os caracteres do display quando diminuir o sinal analógico? Ele acende até o último caractere mas ele permanece aceso mesmo que o sinal em ADC diminua, fiz de tudo pra apagar tentei vários comandos mas sem sucesso, alguém tem alguma ideia?
Estou usando o Mikroc.

_________________
Caca Silva
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 6018
Data de inscrição : 30/01/2011
Idade : 38
Localização : Ritápolis MG

Voltar ao Topo Ir em baixo

Re: Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Mensagem por Caca Silva em Sab 27 Jan 2018 - 11:36

Up

_________________
Caca Silva
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 6018
Data de inscrição : 30/01/2011
Idade : 38
Localização : Ritápolis MG

Voltar ao Topo Ir em baixo

Re: Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Mensagem por Dierson Silva em Seg 29 Jan 2018 - 20:27

Basta colocar para escrever um carácter em branco toda vez que diminuir, para ajudar melhor só com o código.
Dierson Silva
Dierson Silva
Nível 2
Nível 2

Mensagens : 103
Data de inscrição : 04/02/2014
Idade : 30
Localização : Recife

Voltar ao Topo Ir em baixo

Re: Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Mensagem por Caca Silva em Dom 4 Fev 2018 - 13:49

Vou tentar

_________________
Caca Silva
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 6018
Data de inscrição : 30/01/2011
Idade : 38
Localização : Ritápolis MG

Voltar ao Topo Ir em baixo

Re: Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Mensagem por Caca Silva em Dom 4 Fev 2018 - 13:54

O código é esse só que apaguei as tentativas de tentar contornar o problema

Código:
/********************************************************************************
 Analisador de Spectro com o 16F877a
 Criado por Cacá Silva 26/12/2017 as 16:24
 
 *********************************************************************************/




//Configura a saída dos Pinos do LCD.
sbit LCD_RS at RD1_bit;
sbit LCD_EN at RD0_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D4 at RD4_bit;

//Configura a direção dos pinos do LCD.
sbit LCD_RS_Direction at TRISD1_bit;
sbit LCD_EN_Direction at TRISD0_bit;
sbit LCD_D7_Direction at TRISD7_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD4_bit;


int valor1, valor2;
const char character[] = {31,31,31,31,31,31,31,0};




void CustomChar(char pos_row, char pos_char);
void tela();

void main()
{
CMCON = 0x07;
TRISA = 0xFF;
TRISC = 0x00;
lcd_Init();
lcd_cmd(_LCD_CURSOR_OFF);
lcd_out(1,5,"INICIANDO");
delay_ms(1000);
lcd_cmd(_LCD_CLEAR);


            while(1)
          {
            valor1 = ADC_read(0);
            valor2 = ADC_read(1);
            tela();
          }
}




void CustomChar(char pos_row, char pos_char) {
  char i;
    Lcd_Cmd(64);
    for (i = 0; i<=7; i++) Lcd_Chr_CP(character[i]);
    Lcd_Cmd(_LCD_RETURN_HOME);
    Lcd_Chr(pos_row, pos_char, 0);
}

  void tela()
            {
            lcd_out(1,1, "R-");
            if(valor1>=30)  CustomChar(1,3 );
            if(valor1>=70)  CustomChar(1,4 );
            if(valor1>=130) CustomChar(1,5 );
            if(valor1>=220) CustomChar(1,6 );
            if(valor1>=320) CustomChar(1,7 );
            if(valor1>=400) CustomChar(1,8 );
            if(valor1>=580) CustomChar(1,9 );
            if(valor1>=640) CustomChar(1,10);
            if(valor1>=700) CustomChar(1,11);
            if(valor1>=780) CustomChar(1,12);
            if(valor1>=850) CustomChar(1,13);
            if(valor1>=910) CustomChar(1,14);
            if(valor1>=980) CustomChar(1,15);
            if(valor1>=1000)CustomChar(1,16);


            lcd_out(2,1, "L-");
            if(valor2>=30)  CustomChar(2,3);
            if(valor2>=70)  CustomChar(2,4);
            if(valor2>=130)  CustomChar(2,5);
            if(valor2>=220)  CustomChar(2,6);
            if(valor2>=320)  CustomChar(2,7);
            if(valor2>=400)  CustomChar(2,8);
            if(valor2>=580)  CustomChar(2,9);
            if(valor2>=640)  CustomChar(2,10);
            if(valor2>=700)  CustomChar(2,11);
            if(valor2>=780)  CustomChar(2,12);
            if(valor2>=850)  CustomChar(2,13);
            if(valor2>=910)  CustomChar(2,14);
            if(valor2>=980)  CustomChar(2,15);
            if(valor2>=1000) CustomChar(2,16);
            }

_________________
Caca Silva
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 6018
Data de inscrição : 30/01/2011
Idade : 38
Localização : Ritápolis MG

Voltar ao Topo Ir em baixo

Re: Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Mensagem por Dierson Silva em Qui 15 Fev 2018 - 21:54

Cara desculpe a demora, não sei se você já resolveu seu problema. Basta colocar um else em cada if para escrever um caractere em branco.

Você só está colocando para escrever e não está apagando nada.

if(valor2>=30) CustomChar(2,3);
else caractere(2,3);
Dierson Silva
Dierson Silva
Nível 2
Nível 2

Mensagens : 103
Data de inscrição : 04/02/2014
Idade : 30
Localização : Recife

Voltar ao Topo Ir em baixo

Re: Preciso de uma ajuda, barra de progresso em display 16x2 (Analisador de Spectro)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum