Ir ao conteúdo
  • Cadastre-se

Otavio Pessini Bini

Membro Pleno
  • Posts

    34
  • Cadastrado em

  • Última visita

Reputação

6
  1. @aphawk @Isadora Ferraz , Não tive tempo para dar um feedback pra vocês, mas só tenho a agradecer mesmo.. Vocês nao tem a noção de como pequenas e grandes dicas passadas aqui me ajudaram a entender melhor o funcionamento do mc e também me despertaram o forte interesse no assunto.. Agora estou focado em programar o módulo gsm para integrar o funcionamento que eu quero.. E no mais, continuem assim, passando conhecimento adiante, pois tal atitude só vem a engrandecer ambas as partes! Forte abraço, e nos vemos em algum outro post.. hahahaha
  2. @Isadora Ferraz , consegui de novo!!! Depois de voltas e voltas, refazer todas as ligações e etc.. adivinha? Acredito que meu gravador estava bichado.. gravei de novo reiniciei o pc e tchumba, tudo OK.. Sei que não vem ao caso, mas aproveitando: Estava querendo adicionar uma rotina de interrupção 2, para quando a entrada RX/TX recebesse dados fizesse a mesma coisa.. é possível duas interrupções em um único MC? Isa, nem tenho como te agradecer, só Deus mesmo!!! Manda a conta que pago umas brejas hahahahahhahahahaha
  3. @Isadora Ferraz Outra pergunta besta: A saída RC4 precisa ter uma fonte de alimentação nela? Ou o próprio PIC alimenta a mesma? Valeu!
  4. Tentei realizar o teste do pisca pisca simples, e agora a saída simplesmente não sai do nivel baixo.. ta difícil... adicionado 32 minutos depois @Isadora Ferraz , tira umas duvidas? 1. Os capacitores do cristal, são ligados ao negativo certo? 2. Como saber se o cristal está ok? 3. Se está alimentado no MCLR/RESET 5V, quer dizer que está ok certo ? Que testes posso fazer? estou entrando em colapso.. kkk
  5. Fala pessoal, Achando que tinha cabado, fui passar pra placa, até que... 1. RB5 se encontra em pullup (alimentado), porém com uma tensão bem abaixo da alimentação.. 2. RC4 (saída) está setado em nível lógico quando RB5 está em nível alto, e quando desco o nivel do RB5, RC4 vai para quase 0 (deveria ser ao contrario, WTF?) 3. Mesmo assim, depois q joguei na placa, a tensão na saída está muito baixa, a ponto de não acender o relé.. Alguem sabe porque essa perca, já que quando meço o pino de laimentação do PIC está em 5V, e os outros abaixo? 4. Estou usando um soquete na placa, será que pode ser isso ? Não consigo concluir issooooooooo.... E precisava pra hoje,.. hahaha apanhando feito criança para algo simples!
  6. @aphawk Cara, acredita em mim.. Ja tinha feito tudo que foi mencionado, inclusive para tirar o efeito bouncing, o cap, enfim, tudo.. Mas não sei qeu diabos com o led acontecia isso, eu ein.. Agora no relé, tchumba, perfeito.. Enfim, vitória na guerra! hahahahaha
  7. @Isadora Ferraz , descobri sem querer o que estava de errado.. Testei ligando ao invés do LED, o proprio relé... e tcharam, funcionou perfeitamente como eu queria.. Acredito que o LED deva precisar de qualquer escape de tensão para acuionar, algo q o relé acredito que não... Agora você me deixou com uma curiosidade.. Ativando esse pullup interno, descartaria o uso do externo teoricamente? porque na pratica, com o detecctor de tensão (que funcionará como o interruptor/button), acredito ser mais interessante.. Outra perguntinha: Nesse caso, se a corrente está sendo suficiente para acionar o relé, não se faz necessário um transistor depois do resistor certo?! isso só derrubaria a tensão nesse caso, right? Valeu meus amores!
  8. @Isadora Ferraz Bom, fiz o que voce falou (tirar o interrupt no delay).. e notei algo.. Pode ser besteira, mas por exemplo, quando está em nivel alto a entrada, agora está apagada a saída.. Só de chegar proximo(encostar) no push button para direcionar a 0 a entrada, a saida faz o processo certo (vai p 1 no tempo do delay, e retorna a 0). Se eu fico segurando o button, sem apertar para fechar p 0 a entrada, a saida ja identifica a mudança, ai fica em 1 intermitente.. Ai preciso segurar o push button (que joga p 0), e soltar p a saida desligar de novo.. Algo que possa fazer para tirar essa sensibilidade?
  9. @Isadora Ferraz Bom, vamos lá. Isso será para controlar uma solenoide.. como? Por exemplo, a entrada no caso (RB5), será ligado um detector de tensão. O que eu quero é que, caso o detector de tensão está apontado que está em 1 (alimentado), vai para 0 (queda de tensão), quero que acione a saída RC4, ddurante 2 segundos, e depois desligue a saída RC4.. Quando essa entrada que caiu a tensão, se reestabelecer (ir para 1), quero que de novo a saida RC4 acione, durante 2 segundos, e desligue novamente.. Esse processo inifinito. Por que?! Veja, a saída RC4 será ligada a um relé de estado sólido, e esse relé será ligado a um pistão eletromagnetico.. O pistão precisa só de um pico de 2 segundos para acionar e ter a força que precisamos.. Entendeu? Vamos ver como se comporta desabilitando a interrupt durante o delay. Valeu!
  10. @Isadora Ferraz , Eis meu codigo atual : unsigned char temp; void interrupt (void) { if(INTCON.RBIF == 1) { RBIE_bit = 0x00; RBIF_bit = 0x00; RC4_bit = 0x01; temp = PORTB; RBIE_bit = 0x01; } } void main() { CMCON = 0x07; // Desabilita Comparadores; RBIE_bit = 0x01; // Habilita a interrupção por mudança do PORTB <7:4> RBIF_bit = 0x00; PEIE_bit = 0x01; // Desabilita Periféricos GIE_bit = 0x01; // Habilita a interrupção global TRISB = 0b00100000; // PORTB configurado como entrada digital TRISC = 0xEF; // Apenas usaremos RC4 como saída digital RC4_bit = 0x00; while(1){ if(RC4_bit) { delay_ms(2000); RC4_bit = 0x00; } } } Bom, coloquei o cap conforme mencionou, na entrada do RB5, e ligado ao resistor e ao pushbutton. Porém, agora o que acontece é que quando RB5 está em nivel logico alto, RC4 também fica, por alguns mtos segundos, e depois desliga. Quando nesse estagio que está RB5 em nivel alto e RC4 em nivel alto tb, se eu mando p nivel baixo a entrada, RC4 vai para 0 (desliga LED), e quando volto p nivel 1 a entrada ele acende de novo, porém nao por tantos segundos e desliga.. ainda está meio confuso.. Eu ein......
  11. @Isadora Ferraz , Sim, eu entendi .. Mas foi o que falei, direcionando só a RB5 como entrada e as outras como saída, indifere se elas ficam alimentadas então, é isso ? Vou colocar o cap conforme mencionado, e testar esse código que você está citando.. Posto já para não perder-lo de vista kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk E to tentando epgar no tranco, mas tá difícil..
  12. @Isadora Ferraz , bom dia. Realmente houve uma melhora.. Mas ainda continua estranho.. A saída fica ligada (LED ACESO), quando eu corto a alimentação de RB5, o LED apaga, porém quando volto a alimentação ele acende (mas não fica 3 segundos e desliga de novo).. Percebi que as outras entradas RB ainda estão sendo alimentadas (não sei porque).. Não teria um jeito de simplesmente desativar elas para teste? Não colocando apenas como saída? Outra coisa que pensei, na interrupt, não daria apenas para monitorar a porta que eu quero para acionamento da saída, ao invés de monitorar o PORTB inteiro? No aguardo, e com prazo esgotando.. hahahaha
  13. @Isadora Ferraz , sim, venho com good news! Agora funcionou, apenas desabilitando o GIE e as outras interrupções.. Nem precisei pullup em todo o portB.. Como podemos continuar pra ir eliminando o que pode estar errado ?
  14. @Isadora Ferraz hahaha sem erro com as brincadeiras.. rs agora a bad news, usando: for(;;) { RC4_bit=1; delay_MS(3000); RC4_bit=0; delay_MS(3000); //2º delay } O LED NÃO PISCA! que diabos ser isso ? Ele fica aceso full time.. Sério, nao da p entender! o cristal de 16 usa-se p gravar o HS esmo né ?
  15. @aphawk Paulo, boa tarde. Seguindo seu conselho, conforme pode ver na imagem abaixo, utilizei so os pinos a direita para alinmentação, e recoloquei o cristal colado ao PIC.. @Isadora Ferraz , o pino RB5 agora está em 5V sem o interruptor pressionado, porém quando pressiono, vai para 0V absoluto, só que não faz nenhuma diferença na saída RC4.. A saída RC4 está setada sempre em 5V agora (alimentando o LED), nada nas entradas consegue mudar a tensão nessa saída.. Vi que as outras entradas RB estavam em 5V.. pensei que como a gente estava analisando o PORTB, poderia dar algum conflito só alterando a RB5 e as outras não.. Portanto, setei o PORTB para iniciar em 0V, e agora fica assim: Apenas RB5 em 5V, e as todas as outras RB e RC com exceção da RC4 ficam em 0.54V mais ou menos... Estou gravando com cofig HS, pois o cristal é de 16MHz.. Seguindo seu conselho, tentei usar esse código abaixo para testar um led piscando a cada 3 sregundos apenas: void main() { CMCON = 0x07; // Desabilita Comparadores; RBIE_bit = 0x01; // Habilita a interrupção por mudança do PORTB <7:4> RBIF_bit = 0x00; PEIE_bit = 0x01; // Desabilita Periféricos GIE_bit = 0x01; // Habilita a interrupção global TRISB = 0xFF; // PORTB configurado como entrada digital TRISC = 0xEF; // Apenas usaremos RC4 como saída digital RC4_bit = 0x00; for(;;) { RC4_bit=1; delay_MS(3000); RC4_bit=0; } } Porém ele a RC4 fica sempre ligada (LED aceso), porém não pisca.. Sabem o que estou fazendo errado ? Estou desesperado.. tenho 2 dias para concluir esse projeto..

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...