0 Membros e 1 Visitante estão a ver este tópico.
o sensor QTR 8RC têm as saídas são digitais.. mas funcionam de maneira difente do que a leitura digital normal, acho que têm haver com comprimento de impulso por condensadores, (no post que mensionates têm um código que eu fiz para efectuar a leitura dos sensores, tens de usar a biblioteca que a pololu fornece).. para que funcionalidade queres esses sensores? seguidor de linhas?, se for, que posso disponibilizar te um código que já tenho feito usando o controlo PID..,
# O pino do micro vira saída e carrega o condensador# o pino vira entrada, reset do temporizador, e espera até o condensador descarregar# qd o condensador descarrega, o estado lógico da entrada muda
asena podias dar um exemplo em C de como fazer isso?Citação de: asena em Maio 25, 2010, 18:09# O pino do micro vira saída e carrega o condensador# o pino vira entrada, reset do temporizador, e espera até o condensador descarregar# qd o condensador descarrega, o estado lógico da entrada muda
#include <16F84.h>#fuses hs,noprotect,nowdt#use delay (clock=4000000) // igual ao cristal#use RS232(baud=2400, bits=8, parity=N, xmit=pin_a1, rcv=pin_a0)int TMR0_lido;main(){while (1){ set_TRIS_B(11111110); //torna o RB0 uma saída, e não mexe nos outros pinos output_high(pin_B0); //saida a 1, para carregar o condensador Delay_Us(10); //espera 10us set_TRIS_B(00000001); //TRISB = TRISB | 0b00000001; set_timer0(0); //TMR0 = 0; //limpa o contador while (input(PIN_B0)); //enquanto o pino estiver a nivel lógico 1, mantém-se aqui TMR0_lido=get_timer0(); //TMR0_lido = TMR0; //guarda o valor do tempo passado printf("HiThere");//só para escrever alguma coisa printf(get_timer0());//para ver se escrevia desta forma printf(TMR0_lido); Delay_ms(1000);}}