Ajuda PIC Concatenar - Teclado Matricial 4x4 - CCS compiller

Boa tarde!
Ola pessoal, estou aqui com uma grande duvida, estou desenvolvendo uma fonte variavel, utilizando um teclado matricial, que ao digitar a tensao ele regule na saida, até ai OK, mas nao estou conseguindo criar a variavel a partir do valor digitado no teclado, nunca trabalhei com esse tipo de condiçao, se aguem puder me ajudar ou até mesmo criar essa parte do Código eu agradeço, logo apos tudo funcionando eu postarei videos e tutoriais para criaçao desta fonte!

Estarei disponibilizando o codigo para quem puder me ajudar.

Caso queira entrar em contato por email: ldp.dalla@gmail.com

Desde já Obrigado!
Abraço 

Exibições: 1645

Anexos

Respostas a este tópico

Olá Leonardo, blz?

O seu programa depende muito de seu circuito drive.

Eu não sei como vc está o projetando.

Pra te ajudar, precisaria analisar ó seu esquema elétrico. Pode postá-lo aqui?

E completando, na minha opinião o jeito mais fácil de desenvolver este circuito é utilizando conversor DAC.

Sendo que cada bit de entrada corresponde a uma tensão analógica de saída. Daí só transferir para o Pic que  irá ler esse sinal e convertê-lo em dados para o lcd ou display de sete segmentos.

na verdade meu problema é somente no código, e os pinos eu tenho mencionado no código, por enquanto eu nao fiz esquema algum somente utilizando os dados dos codigos, no cabeçalho voce pode ver os pinos do teclado

Esse programa que vc enviou só irá aparecer o que vc digitará no teclado.

Mas é uma fonte variável vc precisa trabalhar primeiro  o sinal.

Vamos lá:

Que tensão sua fonte utilizará?

Como o circuito dará os sinais para o Pic?

Está entendendo?

Cara vou utilizar um trafo de 25v por 20a mas assim vou usar um amplificador operacional, e um lm317 e uns 4 3055, vou determinar a tensao do 317 chaveando um transistor, parece que nao mas sim, vai dar certo hehe, mas o que eu realmente preciso é somente como montar a variavel através dos dados recebidos do teclado, eu entendo bastante do hardware, eu sofro bastante com o código mas quando eu conseguir montar essa variavel a partir dos dados recebidos do teclado eu vou conseguir facilmente fazer o resto!

Certo. Também já fiz e consertei fontes assim. M as vc não me respondeu o principal.

O sinal que o Pic trabalhará é analógico ou digital?

Bom, se seu problema somente é a variável, vamos ver:

Se o sinal for digital, ou seja, seu circuito já está convertido e codificado só usar funções simples como o :

int aux=0;

if(input(pin_c3)) // pino que recebe um nível digital alto

{

  output_high(pin_b1); // pino que ativa o nível alto na saída

   aux=1; // quando isso ocorrer, a variável aux recebe o valor 1.

}

Se o sinal for analógico, que é o jeito mais comum de se usarem em fontes desse tipo:

float aux= 0;

aux = read_adc();// inicia conversão AD
delay_ms(10);
aux = (aux * 5); // faz regra de 3 para converter o valor,
aux = (aux / 1023); // das unidades de AD em Volts.

Com isso, você conseguirá receber dados flutuantes e ativar outras portas de entrada ou saída.

Claro que vc terá que configurar no programa o canal analógico que vc utilizará e algumas outras coisas que vc já deve estar ciente.

Qualquer coisa entre no fórum do CCS:

http://www.ccsinfo.com/forum/

Ou no site do Microcontrolandos, porém, esse é utilizando o Mikro C:

http://microcontrolandos.blogspot.com.br/

Boa sorte com o projeto cara!

Cara acho que voce ainda nao me entendeu, ahshhahsah, eu preciso concatenar os valores recebidos do teclado, por exemplo, para 12 volts eu aperto 1, 2, 0, 0 o que vai gerar pra mim a variavel 1200....

Bom dia. Se postar o esquema ajudaria a entender melhor. Mas eu imagino o seguinte: Você poderia ter 255 níveis para alterar a tensão de saída. Então teria que disponibilizar 8 pinos do PIC, cada pino ligado à um transistor ,que numa sequencia binária alteraria a tensão do LM317.

Com o valor lido no teclado, você faria uma tabela, por exemplo: b'00000000' = 0V (todos os pinos em 0);  b'11111111' = 12V - tensão máxima (todos os pinos em 1), e os valores intermediários, através de regra de três, e testes práticos.

Ou seja, digitar no teclado: 0, equivale à variável ter 0x00 ; digitar no teclado: 12, equivale à variável ter 0xFF.

Abç

Pessoal, acho que voces ainda nao estao me entendendo, eu preciso concatenar os valores recebidos do teclado, tipo eu recebo uma tecla por vez, por exemplo eu aperto o um e o dois e eu quero que a variavel fique igual a 12 c.o.n.c.a.t.e.n.a.r!!!

eu entendi,

vc pode montar este valor assim 1x1000 + 2x100 + 0x10 + 0x1

vc cria o codigo de entrada dos digito individualmente.

espero ter iniciado alguma idea.

Isso mesmooo!!! Huhu, cara nao saberia se a funçao de atribuiçao += nao daria certo tbm?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço