Bonjour tout le monde ,
voilà j'ai besoin d'aide concernant mon projet de fin d'étude qui est la commande d'un robot par liaison UHF .
le but est donc de commander un robot pour cela j'aurai besoin de 2 PIC 18F4520 un émetteur et l'autre récepteur la communication entre les 2 pic sera faite par UART. l'émetteur doit donc envoyé trois type de commande qui vont varier la vitesse des moteurs qui se trouve au niveau du récepteur . le 1er Mode de commande est le mode indépendant chaque moteur doit tourné avec une vitesse indépendante le 2éme mode les deux moteurs doivent tourné avec la même vitesse et le 3éme c'est le mode arrêt pour arrêter les moteurs de tourné .
Ci joint le schéma sur ISIS .
j'ai réaliser les programmes de émetteur et du récepteur mais il parait que j'ai dess fautes au niveau du programme du récepteur puis que j'ai pas trop d'idée sur l'UART .
voici donc les 2 programme + le schéma .
Veillez m'aidé si possible et merci .
Récepteur :
Code:int adc1,adc2,pwm1,pwm2,uart_rd; void main() { TRISC=0x80; UART1_Init(4800); // initialize UART1 module Delay_ms(100); PWM1_Init(5000);//initialisation du pwm avec une fréquence de 37000hz PWM1_Start();//le signal commence à s'afficher PWM2_Init(5000); PWM2_Start(); while(1){ while (!UART1_Data_Ready());// { // If data is received, uart_rd = UART1_Read(); // read the received data, UART1_Write(uart_rd); // and send data via UART adc1=uart_rd; while (!UART1_Data_Ready());// { // If data is received, uart_rd = UART1_Read(); // read the received data, UART1_Write(uart_rd); // and send data via UART adc2=uart_rd; pwm1=adc1/4; pwm2=adc2/4; if(uart1_data_ready()==1){ PWM1_Set_Duty(pwm1); PWM2_Set_Duty(pwm2); if (uart1_data_ready()==0) PWM1_Set_Duty(0); PWM2_Set_Duty(0); } } } Emetteur int adc1 , adc2 ; void main() { TRISC=0x80; TRISA=0xFF; UART1_Init(4800); delay_ms(100); while(1) { adc1=ADC_Read(0); adc2=ADC_Read(1); if(PORTA.RA2==0) { UART1_write_text("MD:"); UART1_Write(adc1); // and send data via UART UART1_Write(10); UART1_Write(13); UART1_write_text("MG:"); UART1_Write(adc2); // and send data via UART UART1_Write(10); UART1_Write(13); } else{ UART1_write_text("MD:"); UART1_Write(adc1); // and send data via UART UART1_Write(10); UART1_Write(13); UART1_write_text("MG:"); UART1_Write(adc1); // and send data via UART UART1_Write(10); UART1_Write(13); } if(PORTA.RA3==0){ UART1_write_text("MD:"); UART1_Write(0); UART1_Write(10); UART1_Write(13); UART1_write_text("MG:"); UART1_Write(0); UART1_Write(10); UART1_Write(13); } } }
-----