rodrigo2019
Mensagens : 2 Data de inscrição : 12/10/2010 Localização : Curitiba
| Assunto: Como receber sinal do RX? Qua 13 Out 2010, 20:00 | |
| Bom gente, recentemente eu comecei um projeto cujo objetivo é interpretar o sinal do RX (o RX que estou usando é da Spektrum), mas eu estou com dificuldades, em teoria o projeto funcionaria assim: o RX manda o sinal e um PIC recebe esse sinal e liga varios LED's fazendo piscar de diferentes formas o meu último teste foi o mais bem sucedido porém foi o que não entendi mais nada, eu conectei um cabo no pino que manda o sinal do canal GEAR e quando eu acionei ele nada aconteceu mas quando eu mechi o canal do motor quando estava em +/- uns 70% os LED's acenderam conforme o programado Como que funciona o sinal do RX? PWM, PPM ou mix dos dois? o que estou errando? meu código ficou assim: - Código:
-
#include<16F84A.h> #use delay(clock=20000000) #fuses HS,NOWDT
#define Rx_Input1 Pin_A2 #define Rx_Input2 Pin_A3 #define LED1 Pin_A1 #define LED2 Pin_A0 #define LED3 Pin_B7 #define LED4 Pin_B6 #define LED5 Pin_B5 #define LED6 Pin_B4 #define LED7 Pin_B3 #define LED8 Pin_B2 #define Safe1 PIN_B1
void main() { int x; set_rtcc(0); setup_counters(RTCC_INTERNAL,RTCC_DIV_64); output_high(Safe1); while(1) {
while(input(Rx_Input1)) // espera não ter sinal para não pegar pulso pela metade { } while(!input(Rx_Input1)) // Espera subida do pulso { } set_rtcc(0); //reset Timer0 while(input(Rx_Input1)) // espera descida do pulso { } x=get_rtcc(); if(x<150){ output_low(LED1); output_low(LED2); output_low(LED3); output_low(LED4); } else{ output_high(LED1); output_high(LED2); output_high(LED3); output_high(LED4); } while(input(Rx_Input2)) // espera não ter sinal para não pegar pulso pela metade { } while(!input(Rx_Input2)) // Espera subida do pulso { } set_rtcc(0); // reset Timer0 while(input(Rx_Input2)) // espera descida do pulso { } x=get_rtcc(); if(x<117){ output_low(LED5); output_low(LED6); output_low(LED7); output_low(LED8); } else{ output_high(LED5); output_high(LED6); output_high(LED7); output_high(LED8); delay_ms(100); output_low(LED6); output_low(LED7); delay_ms(50); output_high(LED6); output_high(LED7); delay_ms(100); output_low(LED6); output_low(LED7); delay_ms(150); output_low(LED8); delay_ms(1000); }
} }
|
|