J'ai un projet dans le cadre de mes etudes ou je dois moderniser une machine.
Voila j'ai une machine qui m'envoie des données numérique pour un affichage sur 7 chiffres. Je dois exploiter ces infos sur excell, on m a dit que c'etait possible avec un module usb arduino.
Mon niveau de programmation est réduit à quelques notions... pour pas dire un vrai novice
Bref je peux chopper les infos à 2 niveaux sur le circuit :
1_codage BCD indépendant sur chacun des 7 chiffres sur 4bits \ 7x4= 28 entrées nécessaires. Sur le module vendu il n y en a pas autant y aurait il une solution? sinon:
2_codage sur 3bits pour définir la décade à traiter puis sur 4bits pour le chiffre de la décade soit 3+4=7 éntrées nécessaires. Mais est il possible de programmer de cette facon?
Est ce que le module peut me faire ca (je pensais plutot que c etait un automate plutot qu une interface PC).
2_codage sur 3bits pour définir la décade à traiter puis sur 4bits pour le chiffre de la décade soit 3+4=7 éntrées nécessaires. Mais est il possible de programmer de cette facon?
C'est possible mais pas élémentaire en raison de la nécessité de synchroniser l'Arduino sur les changements de valeur du nombre de 3 bits représentant le n° du digit actif.
L'idéal serait de récupérer (si accessible sur la machine d'origine) un 8ème fil qui est très probablement l'horloge d'un compteur de 3bits. (rang du digit)
Envoyée sur une entrée d'interruption de l'Arduino cette horloge éventuelle indiquerait le moment ou le n° de digit change. L'Arduino pourrait alors au bon moment récupérer les 3 bits (rang du digit) et les 4 bits (valeur du digit)
Le schéma de la partie affichage de la machine est-il disponible et publiable ?
PS : le sujet du fil de discussion ne reflète pas au mieux le contenu. Du poinr de vue 'électronicien' le sujet actuel parait être : "récupération des informations sur un affichage multiplexé"
A la réflexion , pas besoin de rechercher et ajouter un 8e fil d'horloge , il suffit de repérer le poids faible dans le nombre de 3 bits et synchroniser l'Arduino sur les changements de valeur de ce bit (attach interrupt CHANGE) Chaque changement de valeur de ce bit déclencherait la lecture du nombre de 3 bits (rang) et du nombre de 4 bits (valeur du digit)
Je suppose que le but est donc de lire ces 7 valeurs et de les envoyer sur le PC pour les ajouter à une liste de valeurs qui sera enregistrée dans un fichier excel ?
Dans ce cas, il y a une question importante, c'est la cadence à laquelle ces chiffres sont envoyés par la machine, et la fréquence à laquelle il faut les collecter.
Est-ce que par exemple, la machine balance ces 7 chiffres en boucle à toute vitesse mais que tu ne dois les récupérer qu'une fois par minutes, ou est-ce qu'il faut au contraire choper toutes les valeurs ?
La solution 2 semble la plus pratique à programmer,
Pour détecter le digit en cours d'affichage et faire la syncro il suffit de mettre une interruption CHANGE sur le bit de poid faible (LSB) comme le précisé al1fch.
Avec ce câblage par exemple (codage 3bits du digit -> digit(x), donnée bcd sur 4bits -> bcd(x)) :
digit(0) -> D2 // PORTD.2 (INT0)
digit(1) -> D3 // PORTD.3
digit(2) -> D4 // PORTD.4
bcd(0) -> D8 // PORTB.0
bcd(1) -> D9 // PORTB.1
bcd(2) -> D10 // PORTB.2
bcd(3) -> D11 // PORTB.3
Il suffit de faire :
byte digit = (PORTD & 28) >> 2;
pour récupérer l'index du digit en cours d'affichage, puis :
byte bcd = (PORTB & 15);
pour récupérer la valeur bcd.
Si on faisait un début de sketch arduino ça donnerai :
Merci de votre aide...
En fait la carte aldruino mega possede plus de 28 entrees numériques, je m'étais planté ce sont des signaux numériques pas analogiques. Donc il serait possible de se brancher au premier étage et comme ca pas de problème de multiplexage.
Voila le scéhma et les explications, a vrai dire j'ai pas tout compris dans le détail...
Salut
Me revoila après un petit temps d'absence, maintenant j ai acheté la carte méga. J'ai lu le petit livret trés bien fait traduit sur arduino de Jean-Noël Montagné,mais c'est des opérations trés basiques (clignoter led...).
Aprés avoir defini les varaiables d'entrées comment je fais pour
1 convertir les 4bits en un chiffre décimal
2 le coordonner avec une décade du multiplexage (3bits)
si multiplexage pas possible, je peux toujours utiliser les données de chaque décade et les convertir en décimal une par une
3 envoyer le tout sur excell pour m afficher le nombre dans une case
J'ai un début de réponse de skywodd
mister-jigle:
Désolé skywodd j'avais pas vu la fin du programme que t avais fait tu pourrais me faire un petit récapitulatif de ce passage j'ai pas compris:
(...)
a quoi ca correspond les ','
Je pars du principe que tu veut faire un fichier csv "standard", soit un fichier formaté comme ceci :
valeur, valeur, (...) <\n>
valeur, valeur, (...) <\n>
(...)
La boucle affiche 7 valeurs séparé par une virgule puis à la fin de la 7eme itération ajoute un retour ligne à la place d'une virgule.