Página 1 de 1

Dúvia em um "Hello World"

MensagemEnviado: 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?


Imagem

MensagemEnviado: 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

MensagemEnviado: 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"

MensagemEnviado: 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.

Re: Dúvia em um "Hello World"

MensagemEnviado: 28 Abr 2009 21:55
por roquetti
Eu fiz um Hello World,
segue link

http://www.youtube.com/watch?v=2FyBNSfn2-g

MensagemEnviado: 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. :o