Bonjour à tous,
Je suis étudiant en prépa, et cette année j'ai choisi de réaliser un thermocouple, dispositif qui nécessite un convertisseur analogique numérique. J'ai opté pour la CAN 10 bit de la carte Easypic avec laquelle je me suis familiarisé.
Grâce à l'aide des certains membres du forum j'ai pu élaborer un programme qui convertit la tension analogique aux bornes du potentiomètre et qui l'affiche. Ce programme marche plutôt bien, (juste un problème de puissance de dix ).
Mon problème aujourd'hui est d'établir la liaison entre la CAN et la véritable tension à mesurer. J'ai relié le port à une source de tension qui peut varier entre 0 et 5v et je voulais faire ma conversion. Seulement voila, le hic, c'est que cela ne fonctionne pas j'ai comme l'impression que le port que j'utilise n'est pas en entrée même si je l'ai déclaré comme tel.
Voici mon programme (j'ai donc relié la tension que je voulais mesurer au Port A.3.)
Merci d'avance pour vos tuyaux,Code:sbit LCD_RS at RD2_bit; sbit LCD_EN at RD3_bit; sbit LCD_D4 at RD4_bit; sbit LCD_D5 at RD5_bit; sbit LCD_D6 at RD6_bit; sbit LCD_D7 at RD7_bit; //le lcd est sur le portD sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; char txt[15]; // on déclare un tableau du type char unsigned int temp_res; float tension; // result est une variable decimale de type float. void main() { ADCON1=0X80; TRISA=0xFF; //on met le portA en entrée car les deux potentiomètres sont situés sur le PortA TRISD=0; //LCD en sortie Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); do{ //on lit la valeur du potentiomètre relié à l'entrée A3 tension=Adc_Read(3)*(0,48828125/100); FloatToStr(tension, txt); // conversion d'un entier non signe en chaine de caracteres Lcd_Out(1,1,txt); Delay_ms(100); } while(1); }
En vous souhaitant une bonne journée,
Cordialement, Arthur.
-----