Dúvia em um "Hello World"

Enviado:
28 Abr 2009 02:24
por R u s H
Olá!
Sou iniciante em PIC, estou fazendo um daqueles hello world com led. Eu pressiono um push button e dois leds ligam em sequência. A minha dúvida é a seguinte: tem um push button ligado em RA0 e 2 leds ligados em RB0 e RB1 respectivamente. O objetivo é pressionar o botão e os 2 leds piscarem em sequência, porém se eu ligo o botão diretamente em RA0, quando eu pressiono, os LEDs piscam sem parar. Se eu ligo um resistor junto desse pino funciona normal, cada LED pisca uma vez e para.
Alguém pode me explicar por que isso acontece? Está certo ligar um resistor ali?


Enviado:
28 Abr 2009 08:38
por fabim
Yes guy.
Regra para eletronica digital.
Quando se trabalha em uma lógica de entrada, o qual é utilizado para medir lógica 1 ou 0.
Jamais deve-se deixar a porta flutuando.
Deve-se garantir um nivel, inverso ao esperado, até que o mesmo aconteça.
Por exempriu.
FOR(;;){
IF(PORTA.F0){ // SE BOTÃO PRECIONADO FAZ
// LÓGICA DO BOTÃO É 0 NÃOPRES 1 SIMPRES
PORTB.F0 = 1;
DELAY_MS(100);
PORTB.F0 = 0;
PORTB.F1 = 1;
DELAY_MS(100);
PORTB.F1 = 0;
} }
Se você deixar a porta flutuando, sem a garantia de um nivél, que atenda sua lógica.
Spurios de fonte, ruidos, etc. Vão fazer com que sua porta fique alternando entre 0 e 1, como o uC é extremamente rápio e a impedância de entrada da porta chega a casa de MH, ele vai aparentemente ficar doidão, mais na verdade ele esta funcionando corretamente, pois esta medindo o ruido que hora 1 hora 0.
SANOU ?
fabim

Enviado:
28 Abr 2009 08:51
por fabio_pic
Rush,
Não sei se há problema nos valores dos resistores mas sempre uso para os push button resistores de 10k e para leds 1k. A posição está correta.
Como você está setando os pinos (entradas e saídas)?
Verifique as configurações iniciais pra você não tomar "derrubada".
Abraços,
Fábio.
Re: Dúvia em um "Hello World"

Enviado:
28 Abr 2009 13:01
por Djalma Toledo Rodrigues
R u s H escreveu:....Está certo ligar um resistor ali?...
Esta certo sim . O motivo o Fabim (ou Fabim filho ? rsrs) já explicou.
Só que o convencional é ligar o resistor para + 5 Vdc e push button para o comum ou Vss. Inclusive existe a possibilidade de utilisar os resistores internos do PIC , ver Pull Up.

Enviado:
29 Abr 2009 00:50
por R u s H
Valeu pessoal. Vocês escreveram algumas coisas aí que eu ainda não entendo, mas com o tempo eu aprendo. Pelo menos o porque desse resistor eu entendi.
fabim
Entendi, sim.
fabio_pic
Acho que o CCS configura as portas automaticamente, ele tem um wizard para criar o project e tem como escolher quais portas serão output e quais serão input. A principio output ele deixa high.
Djalma
Tem um exemplo no MikroC sobre button e fala sobre isso, mas não explica como usar os do PIC. Vou da uma pesquisada.
roquetti
Literalmente um Hello World.
