Bonjour, je suis actuellement Etudiant en BTS Systeme numérique et je doit réaliser en fin d'année un projet.
Dans ce projet il y a une partie ou je doit récupérer un tension image du courant qui varie entre 0V et 0.2V
Donc j'amplifie cette tension de manière à avoir 0V/5V qui est ensuite envoyer sur mon MCP3202 CH0
Le problème c'est que mon MCP3202 me donne des valeurs vraiment aléatoire.
Par exemple quand je règle 0.130V, il va m'afficher 1305uA et ensuite il va m'afficher 850uA, ensuite 1800uA alors que la tension d'entrée reste fixe.
Pourquoi uA car il ya une résistance de mesure de 100ohm
Je passe le programme, en espérant recevoir une aide.
Code:// //SPI #include<18F4580.h> #device ICD=TRUE #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay (clock=20000000) #define cs pin_B3 #define Din pin_C4 #define clk pin_C3 #include<LCD.C> void main() { int8 msb, lsb; int16 value; float N; float q; lcd_init(); lcd_putc("\f"); q=0.2/4095; while(true) { setup_spi(SPI_MASTER | SPI_H_TO_L | SPI_CLK_DIV_16); output_low(cs);//Selectionne le CAN spi_write(0x01);//start bit msb=spi_read(0b10000000);//selectionne le ch0 et lecture du premier bit lsb=spi_read(0x00);//Lecture du deuxieme bit output_high(cs); value=value & 0x0fff;//Force les 4 premiers bits à 0 value=make16(msb,lsb); //convertit en 16bit N=(q*value)*10000; printf(lcd_putc,"\fIbloc=%4.0f",N);//Affiche la valeur du courant en µA lcd_putc(228); //Affiche le caractere Micro lcd_putc("A"); delay_ms(1000); } }
-----