• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

David Pintassilgo

Programa em C e respectivo HEX para pequeno teste com 16f84A

16 mensagens neste tópico

Boas.

Fiz agora um pequeno programa sem nada de especial, mas decido partilhar pois é algo que pode dar jeito para alguem que tambem se esteja a iniciar (como eu) no assunto.

O programa simplesmente faz ligar os 2 led's do circuito ao clic no botão, e ao fim de 5 clices executa a parte final do codigo (liga e desliga os led's 2 vezes)

#include <16f84A.h>
#fuses xt, nowdt, noprotect
#use delay(clock=4000000)
main()
{
   int var;
   int var_1;
   int contador;
   contador = 0;
   var_1=1;
   output_high(PIN_A2); //liga os 2 led's no inicio só para testar, eles apagam logo no else mais a baixo
   output_high(PIN_A3);
   while(var_1=1)
   {
      var=input(PIN_B1);
      if(var==0)
      {
         output_high(PIN_A2);
         output_high(PIN_A3);
         contador = contador + 1;
         delay_ms(100); //não sei se é a melhor forma de resolver a questão do deboucing mas desenrasca
      }
      else
      {
         output_low(PIN_A2); //não clicando ficam desligados
         output_low(PIN_A3);
      }
      if(contador==5)
      {
       output_high(PIN_A2);
       output_high(PIN_A3);
       delay_ms(500);
       output_low(PIN_A2);
       output_low(PIN_A3);
       delay_ms(500);
       output_high(PIN_A2);
       output_high(PIN_A3);
       delay_ms(500);
       output_low(PIN_A2);
       output_low(PIN_A3);
       delay_ms(500);
       contador = 0;
      }
   }
}

Usei para os led's o porto A2 e A3

Para o botão o B1

O esquema da parte electrónica é bastante simples, se quiserem depois logo ai meto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:cheesygrin: Finalmente !!! Decidiste meter mãos ao trabalho. :thumbsup:

Porreiro pá  :P, parabéns pela filhota ;).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu até á data tinha muitas duvidas de que a parte de electronica estava bem, e depois causava-me muitos problemas, quando não funcionava, "o problema é do código, ou do hardware?" :S

Agora é sempre a bombar! :D

:thumbsup::P;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

muito bem, vejo que andas a empenhar-te nisto  :P  continua  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mete aí o esquema e mais uma info que possa ser útil.

:D

PS: daqui a uma semanita chego a Portugal, quero começar a curtir electrónica. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

foi mesmo isto.

2ledsem16f84alteradokk0.jpg

Orientei a coisa com a ajuda da malta la do outro forum.

Mas ATENÇÃO!!!! Aquele condencador que está no botão NÂO tem polaridade como ali está,. eu é que feito cromo da 1ª vez meti um de 100 micros em vez de 100 nanos.

E tb não usei propriamente esses valores que lá estão no resto das coisas, é que usei um desenho de outra cena pq ainda não me entendo lá muito bem com os programas de desenho disso...:S :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

BOM DIA!!

DESCULPE MAIS O SEU ESQUEMA ESTÁ ERRADO.

DO JEITO QUE ESTÁ VOCE NÃO VAI CONCEGUIR  MUDAR O NIVEL LOGICO NO RB1 (PINO 7), ONDE ESTÁ O BOTÃO.

COMO EU FAÇO PARA MANDAR UM FOTO DO ESQUEMA CERTO ?

ESSA É UMA CRITICA CONSTRUTIVA, SÓ QUERO AJUDAR, POIS VOU PRECIZAR MUITO DA AJUDA DE VOCES...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Para enviar imagem usa o box.net por exemplo, ou o imageshack .

Relativamente ao esquema, pode haver forma mais correcta de o fazer (pq eu nem sou entendido nisto) mas que está a trabalhar está! :) Isso é certo!

Mostra ai como é que estas a dizer para fazer.  :D

PS:Não uses CAPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema é o condensador de 100nf que colocas-te um condensador com corrente DC funciona como um corte, não passa nada, basta remover e funciona.   :ipool:

já agora no MCLR não precisas usar o condensador e ligar ao GND, usa apenas a resistência ligada aos +5V e mais nada, não estou a ver razões para haver sinusóides a passar no circuito por isso não fazem falta lá condensadores para filtragem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas ATENÇÃO!!!! Aquele condencador que está no botão NÂO tem polaridade como ali está,. eu é que feito cromo da 1ª vez meti um de 100 micros em vez de 100 nanos.

E não é electrolítico mas sim cerâmico.

edit:

(...)basta remover e funciona.

mas isto ESTÁ a funcionar NA PRATICA ali na bancada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E não é electrolítico mas sim cerâmico.

edit:

mas isto ESTÁ a funcionar NA PRATICA ali na bancada.

mas não faz falta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois,.. isso ai já não sei, sei que me indicaram a utilização dele para prevenir erros.

E eu como sou um rapazinho muito bem mandado ( eheh :) ) meti-o lá! :D

(...)para encaminhar algum spike que tenha na fonte. Os microcontroladores se tiverem spikes que são ruidos podem dar erro na execução do código. Mas, o 84 é muito robusto e passa por cima disso tudo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

espero ter 1 ou duas horas livres nos proximos dias e vou colocar um hardware para testes que desenvolvi com base no 16F84A, simples.

vão-me lembrando  :D que é tanta coisa ao mesmo tempo  :cheesygrin: que as vezes perco-me

agora estudar que amanhã frequencia  :bye2:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PELA A LEI DE FARADERS O CAPACITOR ESTÁ CERTO :D, POIS QUANDO UM BOTÃO É ACIONADO, EM MICROSEGUNDO ACONTECE UM RUIDO MUITO RÁPIDO QUE O PIC PODE ENTENDER ERRADO. :cheesygrin:

E O CAPACITOR 100nF CERÂNICO OU DE POLIESTER CONSERTA ESSE ERRO NA SENOÍDE CRIADA PELO BOTÃO. :)

VOU ENVIAR OUTRA FOTO PARA VC ENTENDER MELHOR.

colocandocapacitorus8.th.jpg

MUITO OBRIGADO.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora