Como usar simples programas do tipo ‘pisque um led’ para testar um gravador de microcontrolador? E para testar se os ports do PIC funcionam ou se queimaram por algum acidente?
Encontramos na Internet vários programas de testes que fazem piscar uma determinada porta do microcontrolador. Para que servem?
Primeiro, podemos testar se o nosso programador de PIC está funcionando corretamente e segundo, se o PIC está funcionando. Para fazer isto, abrimos o arquivo .hex no programador e damos um comando de ‘gravar pic’. Se ao colocarmos o PIC gravado no circuito de teste ele piscar um led, então o programador está ‘ok’ e o PIC também.
Foram preparados 3 versões de teste, sendo para os modelos: PIC 12F675, PIC16F628A e PIC16F676.
Caso queira para outros modelos, além de mudar o arquivo de cabeçalho para o modelo escolhido, fique atento quanto aos periféricos adicionais que precisam receber inicialização para permitir uso das portas por eles dominados e também os próprios ‘ports’. Alguns usam ‘porta’ e ‘portb’. Outros pequenos usam o ‘Gpio’ e outros ainda ‘portc’, ‘portd’, ‘porte’, etc. O mesmo deve ser dito sobre os respectivos registradores de sentido das portas ou seja, dos ‘trisios’, ‘trisa’,trisb’,etc. Use um datasheet do modelo escolhido para facilitar esta operação. Logicamente, o esquema de teste também mudará na questão das pinagens de vcc, reset, gnd,etc.
Veja os vários esquemas de testes abaixo:
Nas versões de teste ‘pisca_led’ aqui apresentadas, não somente um pino irá piscar, mas todos os que podem ser programados como saída. Isto favorece testar se cada bit do ‘PORT’ não sofreu algum ‘acidente’. A escolha do led ao vcc foi proposital, visto que algum pic’s tem saída em modo ‘open colector’, e não fornecem sinal positivo , exceto se houver um resistor de ‘pull up’.
Assim, com um único led com um resistor limitador de 470 ohms ao +5v (vcc) e um fio, podemos ir testando cada pino de saída, um a um, sendo que todos devem piscar.
Nunca é demais lembrar que os pic’s que tem byte de calibração, se este for perdido, não irá funcionar estes programas de testes (no caso o 16f628a não tem este byte, mas o pic12f675 e pic16f676 tem).
Leia com o seu programador a Flash do pic e procure no último endereço se tem um valor começando com 0x34xx. Se tiver, este é o byte de calibração e tudo irá funcionar. Se encontrar um 0x3ff, você terá perdido este byte. Leia o artigo ‘como calibrar a frequência do oscilador interno do pic 12f675/629’ para mais detalhes do principio para se fazer a recuperação deste byte.
Segue pasta com os arquivos ‘C’ e ‘HEX’ para os respectivos modelos:
Manuais:
PIC12F675
PIC16F676
PIC16F628A
Curiosidades:
Seis maneiras de proteger a saúde
Esses resistentes microorganismos — como reaparecem?
Como ensinar seu filho a usar a internet com segurança
Navegando com o mar, o céu e o vento
Os alimentos transgênicos são seguros?
Os elementos químicos surgiram por acaso?
Criação
Tingatinga — pinturas que fazem você sorrir
O sistema de navegação da tartaruga marinha
Os desafios para resolver o “problema da longitude”
Como ajudar pessoas com transtornos de ansiedades
Galileu confronta a Igreja
Outros assuntos:
Um site para você
Quando seu filho tem uma deficiência
Como controlar o estresse
Aprenda a perdoar
Como acabar com a tática do silêncio
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?
Como saber se alguém é a pessoa certa para você?
Até o próximo artigo!!!
Olá, Claudio, seria como um sensor de presença, ou um sensor com interruptor para que pisque os leds e toque o buzzer em uma sala, com muito barulho, só que a bateria 9 volts e que se não tiver disparo ou o temporizador ele entra em sleep, para economizar a bateria, dei uma olhada nos seus projetos, seria meio que parecido com a luz de cortesia, só acrescentando mais esses detalhes que falei.
Obrigado pela atenção !
Olá Carlos!
Parece interessante. Seria algum tipo de sinalizador? Se você tiver algum conhecimento de programação, mesmo que limitada, poderá tentar fazer a modificação que tenciona.
Claudio
Olá Claudio, vamos ver se você pode me ajudar, irei escrever por passos, precisava de um programa para pic, que…
1- piscasse 2 leds ao mesmo tempo, quando receber nível alto em uma porta,
2- essa mesma porta que recebe nível alto iria também acionar um buzzer em outra porta, esse buzzer seria já com oscilador
3- ainda na mesma porta iria fazer com que o circuito ficasse ligado por 40 segundos, ou seja nível alto fica ligado constante mente e parou de mandar nível alto ele conta 40 segundos e desliga ficando em (stand by) até que aja outro acionamento em nível alto, para que economize bateria, seria uma 9volts.
4- e se possível colocar um led bicolor para indicar o nível da bateria, que também só será possível ver quando o circuito estiver com o nível alto ou com a contagem dos 40 segundos.
obs: esse nível alto que falo pode ser um botão para acionar o sistema para que funcione ou algum tipo de sensor de presença.
obrigado
Carlos Henrique.
Ola Carlos!
Você está deixando todos nós curiosos para saber o objetivo deste seu projeto. Poderia compartilhar onde você pretende usa-lo?
Cláudio
Saudações Claudio.
Claudio eu gostaria de saber se voce ou algum leitor teria um programa de leds sequenciais com pic.
Na net há muitos mas sao com cis, simples, gostaria de um em que eu pudesse regular o tempo com precisao, tipo, 100ms a 10 segundos, a qtd de led seriam só 10.
Agradeco desde já..
Fique na paz de Deus.
Olá Carlos! Eu não tenho no momento este programa. Mas não é difícil faze-lo com pic. Os intervalos entre o acendimento do próximo led tem que ser regulado? Porque ? Poderia compartilhar conosco suas intenções de uso?
Cláudio