Ir ao conteúdo
  • Cadastre-se

Bruno Régis Cardozo

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

  1. Aleluia descobri, o problema é que a porta estava configurada como input low, ai eu colocava ela em nível lógico 0, e no mesmo momento ela recebia 2,5 volts...gastando pilha... { output_low(pin_a5); OUTPUT output_low(pin_a4); OUTPUT output_low(pin_a1); OUTPUT //output_low(pin_a2); INPUT esta porta esta como entrada analogica e // colocando ela como saída low consome muita pilha...... }
  2. no hardware físico não liguei, coloquei um de 360 ohms...
  3. segue abaixo: adicionado 1 minuto depois o que esta diferente ai, é que esta na an2 e na programação esta na an1, mudei para fazer teste... adicionado 7 minutos depois o que esta diferente ai, é que esta na an2 e na programação esta na an1, mudei para fazer teste... explicar melhor, tenho duas leituras no an1 e an0, quando a lógica esta ok não acontece nada, porém se ha alguma variação de tensão, vai para uma outra parte da programação que é um alarme...
  4. Boa tarde a todos, estou com esse código de programação abaixo, porém a dúvida, estou usando pilhas, se deixo a leitura só em um sensor no caso AN0 ele não consome quase nada de pilha, agora se coloco o AN1 cai praticamento um volt por minuto, já fiz o teste trocando as portas continua sempre a mesma coisa, alguém pode me ajudar ou ter alguma ideia do que seja??? leitura do AD do PIC: if (analogico-5 > pilha/2 || analogico+5 < pilha/2) {inicio: { setup_adc_ports(sAN0|sAN1); setup_adc(ADC_CLOCK_INTERNAL); { while(TRUE) { set_adc_channel(0); delay_us(15); analogico = read_adc(); delay_ms(100); set_adc_channel(1); delay_us(15); pilha = read_adc(); delay_ms(100); } if (analogico-5 > pilha/2 || analogico+5 < pilha/2) goto alarme1;
  5. Boa tarde a todos, descobri o problema, meu PIC era de 8 bits e estava na programação como se fosse de 10 bits ficou assim, #device adc=10 antes.... #device adc=8 depois
  6. Bom dia Isadora reescrevi!!! Acho que o problema esta em declarar isto abaixo???? #device adc=10 >>>no caso como estou usando a porta 0 e 1 seria #device adc=01 ? #include<12F683.h> int analogico; int pilha; int val_pilha; int val_analogico; int val_analogico1; #use delay(clock=4000000) // Frequência do micro. #fuses INTRC_IO, // isso é indicado de acordo com o micro e a freq nesse caso (4000000). #fuses NOWDT, // no Wath Dog Timer, #fuses NOPROTECT, // para proteger a programação( acho q de cópia). #fuses NOPUT, // #fuses BROWNOUT, // isso serve para verificar se programa esta ok, se alim. esta ok, clok ok se estiver nok reset o micro. #fuses NOMCLR // esso serve para um reset no programa como reset externo. void main() { setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(sAN1); setup_adc_ports(sAN0); enable_interrupts(GLOBAL); while(TRUE) { set_adc_channel(0); delay_us(15); analogico = read_adc(); val_analogico=analogico-3; val_analogico1=analogico+3; delay_ms(100); set_adc_channel(1); delay_us(15); pilha = read_adc(); val_pilha=pilha/2; delay_ms(100); if val_analogico > val_pilha) || val_analogico1 < val_pilha for (contador = 1; contador <= 7; contador = contador + 1) { output_high(pin_a5); output_high(pin_a2); delay_ms(250); /////////temp 1/1 output_low(pin_a5); output_low(pin_a2); delay_ms(250); } else { output_low(pin_a5); output_low(pin_a4); output_low(pin_a1); output_low(pin_a2); } }
  7. Bom dia, alguém pode me ajudar? Qual o problema neste código que não consigo de jeito nenhum ler dois sensores analógicos? #include<12F683.h> #use delay(clock=4000000) // Frequência do micro. #fuses INTRC_IO, // isso é indicado de acordo com o micro e a freq nesse caso (4000000). #fuses NOWDT, // no Wath Dog Timer, #fuses NOPROTECT, // para proteger a programação( acho q de cópia). #fuses NOPUT, // #fuses BROWNOUT, // isso serve para verificar se programa esta ok, se alim. esta ok, clok ok se estiver nok reset o micro. #fuses NOMCLR // esso serve para um reset no programa como reset externo. //// 8 bits = 256; ##256/5 = 51mv; ##3*1,5 = 4,5; ##4,5/2 = 2,25 ##97/51=1,90v; ##118/51 = 2,31 void main() { long analogico, pilha, val_pilha, val_analogico, val_analogico1; setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(sAN1); setup_adc_ports(sAN0); enable_interrupts(GLOBAL); while(TRUE) { set_adc_channel(0); delay_us(15); analogico = read_adc(); val_analogico=analogico-3; val_analogico1=analogico+3; delay_ms(100); set_adc_channel(1); delay_us(15); pilha = read_adc(); val_pilha=pilha/2; delay_ms(100); if val_analogico > val_pilha) || val_analogico1 < val_pilha for (contador = 1; contador <= 7; contador = contador + 1) { output_high(pin_a5); output_high(pin_a2); delay_ms(250); /////////temp 1/1 output_low(pin_a5); output_low(pin_a2); delay_ms(250); } else { output_low(pin_a5); output_low(pin_a4); output_low(pin_a1); output_low(pin_a2); } }
  8. Ola Devair, foi a primeira coisa que pensei, mas isso funciona quando a máquina fica ligada, o problema é quando desliga a máquina antes do tempo final, o alarme continua até o fim, mais if´s não funciona com precisão pois as vezes pega a onda senoidal abaixo do 125 estou agora tentando fazer assim!!! if((analogico - tres) > (pilha /2)) || ((analogico + tres) < (pilha /2))) goto alarme1; pilha é a tensão das pilhas, no analógico entra a metade da tensão das pilhas pois esta em um divisor de tensão, esse numero 2,5 foi para expressar aqui pois as pilhas juntas são 4,5 e metade 2,25.. ai a leitura seria acima de 2,8 e abaixo de 2,2... mas essa escrita esta errada..
  9. Boa noite pessoal, estou com um problema que não consigo resolver, estou fazendo um alarme de máquina bem simples, quando ligo a máquina ela conta um certo tempo (2 minutos e emite um som, depois mais 2 minutos e outro som É assim sucessivamente até 6 minutos), isso feito com 3 pilhas de 1.5 total de 4,5, um pic 12g683, um divisor de tensão para deixar a tensão de 0 a 5 volts e um tc, problema é o que quando a máquina liga da o primeiro alarme pois está em um loop, mas quando vai para o segundo if, não dispara, as vezes sim é as vezes não, pois coloquei assim, if (analogico > 125) 125 porque tem q ler acima de 2,5 por ser divisor de tensão Output_high (pin_a2) Delay_ms (5000) Output_low (pin_a2) Aí depois repete isso só que outro alarme que sairia em outras portas... Alguém tem algumA ideia do que pode ser feito?

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