Bonjour,Bonjour (première visite sur le site)
Je voudrais réaliser un compteur tout simple qui m'affiche sur un afficheur 7 segments le nombre d'impulsions générées par un bouton poussoir.
Je réalise un simulateur de pilotage de voiture sur PC et je voudrais visualiser sur quel rapport se trouve la boite de vitesses.
Déroulement du processus.
Un premier appui sur le poussoir : affichage du chiffre 1, un deuxième appui affichage du chiffre 2 etc jusqu'à 5.
Par contre se pose le problème du rétrogradage et de l'affichage en sens inverse des vitesses 5 à 1, autrement dit incrémentation du compteur à l'envers je ne sais pas s'il existe une solution.
Merci d'avance pour vos conseils.
je me suis inscrire sur le site pour pouvoir y bénéficier des connaissances des autres membres.
je suis un TS en électrique et je suis entrains de réaliser la commande d'un moteur pas à pas à travers une carte électronique qui contiens un compteur d’impulsion, un afficheur 7sigment et bien sure avec le moteur pas a pas, voila le fonctionnement on met le moteur on marche avec boutant poussoir le compteur calcule le nombre d’impulsions et l’affiche sur l’afficheur (oui c pas très complique) il s’aire a calcule la hauteur parcouru par le palpeur attache a un filin. Le problème c le compteur d’impulsion comment le réalise son schéma
en l'attente d'une réponse favorable veuille accepter mes salutations les bien distingué.
Merci.
Bonjour,
j'ai un projet sensiblement identique à celui de Latanturle mais c'est pour une moto à 6 vitesses et plutôt avec la solution de Gérard à base de PIC puisque la séquence d'affichage est Alphanumérique.
Sur une moto, la séquence est 1 n 2 3 4 5 6 dans un sens et 6 5 4 3 2 n 1 dans l'autre sens.
Et je vais utiliser 2 capteurs magnétiques commandés par un aimant fixé sur le sélecteur pour remplacer les BP + et - donc anti-rebond obligatoire.
Est-ce que quelqu'un pourrait jeter un oeil à mes modifications et me dire si je n'ai pas fait de bêtise?
;***************************** ****************************** **
; DEFINITION DU PROCESSEUR
;***************************** ****************************** **
device = 16F628
;***************************** ****************************** **
; MOT DE CONFIGURATION
;***************************** ****************************** **
;3F01h
CONFIG CP_OFF, LVP_OFF, BODEN_OFF, MCLRE_OFF, PWRTE_ON, WDT_OFF, INTRC_OSC_NOCLKOUT
;***************************** ****************************** **
; DECLARATIONS + SYMBOLES
;***************************** ****************************** **
;***************************** ****************************** **
; VARIABLES
dim BOITE as byte
;***************************** ****************************** **
;entrees
;*******
symbol BP_PLUS = portA.0
symbol BP_MOINS = porta.1
;sorties
;*******
symbol AFFICHEUR = portb
;***************************** ****************************** **
; INITIALISATIONS
;***************************** ****************************** **
INIT:
trisa = %111111 ;RA0 -->a RA5 IN
trisb = %00000000 ;RB0 --> RB7 OUT
option_reg = 0
intcon = 0
cmcon = 7 ;comparateur off
pcon = 8 ;OSCF, POR, BOR
eecon1 = 0 ;EEPROM
pie1 = 0 ;IRQ periferiques
pir1 = 0 ;flag IRQ
vrcon = 0
t2con = 0
tmr2 = 0
t1con = 0
tmr1L = 0
tmr1H = 0
boite = 1
;***************************** ****************************** **
; PROGRAMME PRINCIPAL
;***************************** ****************************** **
DEBUT:
if bp_plus = 0 then ;actif à zéro RA0
delayms 100 ;tempo 100 ms
if bp_plus = 0 then
inc Boite
endif
endif
while bp_plus = 0 : wend ;attend BP plus pressé
if bp_moins = 0 then ;RA1
delayms 100
if bp_moins = 0 then
dec boite
endif
endif
while bp_moins = 0 : wend
if boite = 8 then boite = 7 ;pour éviter les dépassements
if boite = 0 then boite = 1
gosub affichage
goto debut
;***************************** ****************************** **
; SOUS PROGRAMME AFFICHAGE
;***************************** ****************************** **
;ce sous-programme va piloter un afficheur 7 segments à cathodes communes
;un niveau 1 sur une sortie du portB allumera le segment correspondant
;ne pas oublier les résistances de limitation de courant
;RB0 --> segment a
;RB1 --> segment b
;RB2 --> segment c
;RB3 --> segment d
;RB4 --> segment e
;RB5 --> segment f
;RB6 --> segment g
;RB7 --> non utilisé
AFFICHAGE:
if boite = 1 then AFFICHEUR = $06 ;0000 0110b Affichage 1
if boite = 2 then AFFICHEUR = $54 ;0101 0100b Affichage n
if boite = 3 then AFFICHEUR = $5B ;0101 1011b Affichage 2
if boite = 4 then AFFICHEUR = $4F ;0100 1111b Affichage 3
if boite = 5 then AFFICHEUR = $66 ;0110 1101b Affichage 4
if boite = 6 then AFFICHEUR = $6D ;0110 1101b Affichage 5
if boite = 7 then AFFICHEUR = $7D ;0111 1101b Affichage 6
return
;***************************** ****************************** **
end
;***************************** ****************************** **
Merci d'avance
J'ai un peu modifié le programme de Gérard
Merci un million de fois
J'ai reçu ce matin l'afficheur venu de chine, manifestement, il est pré-programmé.
Je finis mes tests dessus ce soir et je t'envoie les caractéristiques.
Philippe
Mais pas de quoi, c'est toujours un plaisir pour moi de partager. Ma femme a beaucoup de mérite de m'écouter alors qu'elle n'y comprend rien.
C'est cool, au plaisir de te lire.