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
25 usuários online :: 7 usuários cadastrados, Nenhum Invisível e 18 Visitantes :: 2 Motores de busca

amozuo, Andrew Lebon, Carlos Pereira, prensario, rgb audio, surachit, WR-ELETRONICS

[ Ver toda a lista ]


O recorde de usuários online foi de 264 em Seg 18 Mar 2013 - 11:54
Últimos assuntos
» FONTE SIMÉTRICA SEM CI - 280W - PROTEÇÃO CONTRA CURTO
Hoje à(s) 3:10 por surachit

» Presiso de esquema de ampli 5kwrms em 2homs, classe H.
Ontem à(s) 22:24 por inacioalberes5@gmail.com

» Projeto fonte automotiva chaveada 14.4v
Ontem à(s) 19:04 por elementoex

» fonte chaveada ir2156s diodo
Ontem à(s) 18:55 por EdyGuitar

» Detectar cabos e canos em uma parede.
Ontem à(s) 14:07 por Carioquenho

»  NS450 - FONTE CHAVEADA PARTE 2
Sab 19 Maio 2018 - 23:46 por Giovani Musician

» ligacao em ponte no bx
Sab 19 Maio 2018 - 22:58 por djanderson

» placa de fonte para amplificador
Sex 18 Maio 2018 - 14:21 por alex sandro f santos

» SMPS 2500W QUEIMANDO FET
Sex 18 Maio 2018 - 12:21 por foxeletronic

» Ajuda ESQUEMA fonte JFA TURBO 800
Qui 17 Maio 2018 - 22:07 por WR-ELETRONICS

» TRASMISSOR 30W troca transistor
Qui 17 Maio 2018 - 18:33 por oscartec

» Amplificador com TIP 105
Qui 17 Maio 2018 - 11:49 por Sander

» DETECTOR DE METAIS IDX-PRO
Qui 17 Maio 2018 - 9:44 por wagner poltronieri

» Dois Medidores de ESR!!!
Qua 16 Maio 2018 - 14:57 por adriano8959

» ajuda com auto trafo
Qua 16 Maio 2018 - 12:59 por Barsa

Top dos mais postadores
Rafael Silveira (7816)
 
Caca Silva (5986)
 
renatoscp (3862)
 
CMeletronica (3199)
 
michel chagas (2791)
 
Railson (2119)
 
alexsandro rodrigues de a (1798)
 
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.

_________________
avatar
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 5986
Data de inscrição : 30/01/2011
Idade : 37
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

_________________
avatar
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 5986
Data de inscrição : 30/01/2011
Idade : 37
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.
avatar
Dierson Silva
Nível 1
Nível 1

Mensagens : 92
Data de inscrição : 04/02/2014
Idade : 29
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

_________________
avatar
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 5986
Data de inscrição : 30/01/2011
Idade : 37
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);
            }

_________________
avatar
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 5986
Data de inscrição : 30/01/2011
Idade : 37
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);
avatar
Dierson Silva
Nível 1
Nível 1

Mensagens : 92
Data de inscrição : 04/02/2014
Idade : 29
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