Bonjour à tous !
je suis élève en 1ere S sciences de l'ingénieur, et pour mon projet on doit, mon camarade et moi s'occuper de programmer un écran LCD capable d'afficher la vitesse instantanée en m/s et
la distance parcourue d'un vélo, utilisant un capteur à effet Hall, c'est à dire sensible aux champs magnétiques, pour cela on met un aimant sur un rayon de la roue arrière. (fonctions d'un tachymètre)
On dispose d'une carte électronique, avec un microcontrôleur PIC18F4520, d'un afficheur LCD, de leds, d'un buzzer,de multiples connecteurs... enfin bref, elle est vraiment complète.
Elle fonctionne sur du 15 V pour info.
Venons au problème. Au niveau de la programmation, on a appris à programmer l'écran LCD.
En gros, pour le capteur c'est simple, s'il ne reçoit rien, en sortie il n'y rien. Or quand il reçoit un champ magnétique, (quand l'aimant passe devant ce capteur), il fait un retour +5V, c'est à dire en sortie il y aura un signal = 5V
Voilà notre programme pour le moment :
program tachymetre
dim tours as byte
RB0avf, RB0apf as boolean ' c'est à dire la conversion analogique / numérique
txt as string[5] ' texte variable au cours du temps
main:
'(Interrupteur Inter_RB0 et RB, Afficheur LCD):
TRISB = %00000011 ' PORTB en entrée de RB0 à RB1 : Inter_RB0 et Inter_RB1
' PORTB en sortie de RB2 à RB7 : Afficheur LCD
tours = 0
Lcd_Init(PORTB)
ADCON1 = 0x0F
Debut:
Lcd_Out(1,1, "tours") ' Ecriture du texte sur la ligne 1 et la colonne 1
byteToStr(tours, txt)
Lcd_Out(2,1, txt) ' Ecriture du texte sur la ligne 2 et la colonne 1
do
RB0avf = PORTB.1 'Contrôle de l'état de RB1
delay_ms(100)
RB0apf = PORTB.1 'Contrôle de l'état de RB1 100 ms après, ce qui rend le compteur précis avec un petit rafraîchissement.
delay_ms(100)
loop until (not(RB0avf) and (RB0apf))
tours = tours + 1 ' Incrémentation compteur
goto debut
end.
Donc le voilà, à quoi ça ressemblais. Mais le seul problème, c'est qu'on a jugé bon de rajouter 3 autres aimants pour avoir la mesure la plus précise possible, ce qui corresponds à 4 signaux reçus = 1 tour.
Bon voilà en gros c'est pas l'application électronique qui m'intéresse, je voudrais juste obtenir de l'aide concernant la programmation d'un tachymètre, en gros les boucles que vous aurez utilisé, ou un indice n'importe quelle aide serait la bienvenue.
merci d'avance,
Hamza.
-----