Bonjour,
Je m’appelle Guylllaume et je suis actuellement dans les systèmes numériques.
j'ai donc un projet de fin d'étude qui consiste à lire une broche analogique,
pour ainsi faire commuter ou non un relai,
J'utilise pour ceci un potentiomètre pour simuler un capteur de pression et un relais ( j'ai aussi une led que j'active en même temps que le relais pour un contrôle visuel, celle ci s'active à l'état bas ).
j'ai pour le traitement un PIC 18F26K40 : http://ww1.microchip.com/downloads/e...S40001816F.pdf (doc technique)
suite à ceci j'ai déjà réalisé quelques tests:
la led peut clignoter (ici PIN_A0) , le relai commute aussi (PIN_C0), et la broche analogique (PIN_A1).
Le but étant de faire commuter le relai quand le Capteur (PIN_A1) dépasse un seuil (4.5V)
le relais doit rester commuté pendant 2 mins
Le processus de commutation ne doit pas occupé le microcontrôleur, donc l'utilisation de timer me semble obligatoire.
voici le code testé dernièrement mais qui ne fonctionne pas :
Code:#include <18F26K40.h> #device ADC=10 #FUSES NOWDT //No Watch Dog Timer #use delay(internal=4MHz) #use FIXED_IO(C_outputs=PIN_C0) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1) #define DELAY 2000 #define MPX5004 PIN_A1 #define Relai PIN_C0 #define LED PIN_A0 int compteur; int16 lecturempx; void timer1_isr(void) { compteur=compteur++; if ( > 3436 ) { output_low(Relai); //relai non commuté output_high(LED); //LED éteinte disable_interrupts(INT_TIMER1); disable_interrupts(GLOBAL); compteur=0; } } void main(void) { setup_timer_1(T1_INTERNAL|T1_DIV_BY_4); // 1us overflow enable_interrupts(GLOBAL); setup_adc_ports(sAN3); setup_adc(ADC_CLOCK_INTERNAL); output_low(Relai); output_high(LED); while(TRUE) { setup_adc_ports(sAN1); lecturempx = read_adc(); if (lecturempx > 920 ) { output_high(Relai); output_low(LED); enable_Interrupts(INT_TIMER1); } delay_ms(DELAY); } }
J'ai aussi besoin de la conversion ADC pour pouvoir faire une comparaison.
je ne pense pas que le problème vienne de la convertion mais plutôt du timer.
J'en viens à vous demander votre aide puisque voilà maintenant 2 semaines que je suis bloqué.
-----