Pages: 1 [2] 3   Go Down
Author Topic: récupérer valeur digits d'un autre appareil  (Read 3618 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
je viens de recevoir un des programmeurs
la ref du digit est hs-2181AS

bonjour
a priori un afficheur cathodes communes
Vous pouvez faire quelques photos (interne externe) du programmateur centrée +/- sur l'affichage
perso je n'ai toujours pas compris si il y a un ou plusieurs afficheurs LED sur le programmateur
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

voila les photos




Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

voila les photos
ok
donc un seul 7segment, pas de multiplex
il est drivé par un 74HC950
2 solutions possibles pour récupérer la valeur
1- récupérer les sorties // pour les injecter sur l'arduino
ça nécessite 7 inputs sur l'arduino (le DP ne semble pas utilisé.)
programmation soft simple, mais connectique hard assez dense. (8 points =7+GND)

2 récupérer l’entrée série,  2 inputs (serial input +clock) sur l'arduino (3 points =2 + GND)
programmation soft plus importante.



Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ca ne serait pas 8 segments? il ne faut pas oublier le . (point) qui sert aussi.

La solution 2 me conviendrait, mais là c'est une grosse partie de plaisir en perspective et des nuits blanches

sinon pour la solution 1
ca pourrait s'afficher via un tableau pour faire simple avec l'état du segment comme une led pour reformer le chiffre, c'est ca?
ca pourrait donner ca

-----segment 1
||segment 2 et 3
-----segment 4
||segment  5 et 6
-----*segment  7 et 8
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai souder les fils afin de récupérer sur le digits le + si un segment est affiché ou pas.

par contre je ne vois pas comment récupérer ca sur le pin.
je cherche du coté des sensors car j'ai du courant qui arrive sur le digit.

a moins que vous n'ayez une astuce toute bete.
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai souder les fils afin de récupérer sur le digits le + si un segment est affiché ou pas.

par contre je ne vois pas comment récupérer ca sur le pin.
je cherche du coté des sensors car j'ai du courant qui arrive sur le digit.

a moins que vous n'ayez une astuce toute bete.
bonsoir
Vous vous etes piqué où ?
en sortie du 74HC595 ou sur l'afficheur lui meme
et donc après les R de limitations ?
Vous avez quoi comme tension au multimètre entre GND lorsqu'un segment est allumé ?
il y a de grandes chances qu'injecté sur une input de l'arduino cela soit correctement vu comme un niveau haut

Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

je me suis repiqué sur l'afficheur avec 1.80v quand un segment est allumé.

j'ai essayé pas mal de truc comme si c'était un bouton poussoir par exemple, mais rien, il affiche toujours BP rouge OFF/
Code:
const int bpRouge=3; // Constante pour la broche 3
const int APPUI=HIGH; // constante pour tester état BP

pinMode (bpRouge,INPUT); // Broche bpRouge configurée en entrée
void loop(){

void loop(){

if (digitalRead(bpRouge)==APPUI)
{
Serial.print("Appui BP rouge / ");
}else{
Serial.print("BP rouge OFF/ ");
}
 
 

Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

je me suis repiqué sur l'afficheur avec 1.80v quand un segment est allumé.


Alors pas bon
il aurait fallu vous repiquer directement sur les sorties du 595 (avant la sortie des réseaux de résistances)
voir la photo commentée plus haut
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

je vais donc tout refaire, car je pensais que 1.80 aurait pu suffire a mettre en état HIGH.
ca risque d'etre rock'& roll pour souder.

sinon le code est bon pour ce que je veux faire?
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

après quelques recherches le 74HC595 serait un compteur en fait.
si je me connecte sur l'entrée série, comment faire pour connaitre la valeur du compteur au moment ou je me connecte?
compteur en 2 choix :
0--7
0. ----- 7.
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
après quelques recherches le 74HC595 serait un compteur en fait.
le 74HC595 n'est pas un compteur mais un registre à décalage utilisé içi en entrée de bits en série et sortie des 8 bits en parallèle.

On fait entrer les  8 bits l'un après l'autre en les 'poussant' un par un grace à la première entrée d'horloge. (en bleu sur l'image jointe)
Au bout de 8 coups d'horloge (bleue) les 8 bits étant bien à leur place on recopie tout ça en sortie par un coup unique d'horloge (rouge)
Ce systeme de double registre permet de ne pas voir en sortie le 'bazar' de l'accumulation progressive des bits dans le premier registre.

Quote
si je me connecte sur l'entrée série, comment faire pour connaitre la valeur du compteur au moment ou je me connecte?
Pour reconstituer l'état de l'afficheur comme l'a indiqué Artouste à partir de l'entrée 'serial in' il faut donc recréer dans l'Arduino (par hard ou par soft) un registre à décalage à entrée série et sortie parallèle.
La contrainte vient du fait de la synchronisation nécessaire avec l'horloge de décalage série du HC595
Le plus simple est à mon avis de présenter cette horloge sur une entrée d'interruption en mode 'RISING' , chaque interruption externe étant traitée pour reconstituer les octets. Le traitement serait simplifié si l'entrée Reset du HC595 est utilisé dans l'appareil.....en surveillant cette entrée il serait plus facile de 'recaler' le comptage des coups d'horloge.

Une solution 'hard' est envisageable SI le bus SPI n'est pas du tout utilisé : le hardware SPI du microcontrolleur est (entre autres modes de fonctionnement) un registre à décalage série->parallèlle parfait !


* 595.jpg (24.65 KB, 393x291 - viewed 25 times.)
« Last Edit: October 24, 2011, 05:02:01 am by al1fch » Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

autant pour moi pour le compteur smiley-sad

par contre pour le reste de la réponse, comment dire....... I am in the ramasse totale  smiley-red

si je comprends bien, je me repique sur :
- entrée série pin 14 vers arduino pin ?
- clock pin 11 vers arduino pin ?
- masse

après chaque impulsions recues sur le 14 et 11, l'arduino pourra afficher le chiffre (0.1.2.3.4.5.6.7 et 0 1 2 3 4 5 6 7) tout seul en décodant ce qu'il aura recu, ou faut il lui mettre un algo pour décoder les infos?

je sais élu boulet du jour  smiley-roll-blue
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

autant pour moi pour le compteur smiley-sad

par contre pour le reste de la réponse, comment dire....... I am in the ramasse totale  smiley-red

si je comprends bien, je me repique sur :
- entrée série pin 14 vers arduino pin ?
- clock pin 11 vers arduino pin ?
- masse

après chaque impulsions recues sur le 14 et 11, l'arduino pourra afficher le chiffre (0.1.2.3.4.5.6.7 et 0 1 2 3 4 5 6 7) tout seul en décodant ce qu'il aura recu, ou faut il lui mettre un algo pour décoder les infos?

je sais élu boulet du jour  smiley-roll-blue


bonjour
Ce qui est important c'est de persévérer dans ses envies.  smiley-grin
il faut y aller calmement  step by step  smiley-lol


L'option de la recup serie et développée par Al1fch est une option, mais option qui nécessite de "bien savoir quoi et comment coder".
Vous avez peut être aussi évacué rapidement celle de simplement vous repiquer sur les sorties // avant les R de limitation .
là le niveau logique sera tenu et directement "lisible" sur une entrée arduino.
= plus de hard, moins de soft
déjà et si vous en avez la possibilité , testez V sur le pin1 (celui le plus proche du point) et pin (.2.3.4.5.6.7.15 ) du 595  lorsque le(s) segment est ON.
Vous aviserez ensuite de la méthode la plus ... "adéquate" pour récupérer la valeur.
Le pont DP (Dot Point) est utilisé ? vous l'avez vu allumé ? , si oui, il signifie quoi ?



Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

algo obligatoire pour l'option 'série soft' ... qui n'est pas la seule (l'économie de fils 3ou 4 au lieu de 8 ou 9 se paie par un décodage plus lourd côté Arduino )

Deux tâches à assurer :

-1) reconstituer des paquets de 8 bits dans un flot permanent de bits arrivant en série
-2) déterminer le chiffre décimal affiché par le biais d'un tableau de correspondance bit/segment

Pour la première tâche la fonction shiftin() (que je n'ai pas encore pratiqué) parait intéressante à ce niveau.....La contrainte est de pouvoir déterminer le début d'un paquet de 8 !!
Avec un simple cablage "2 fils + masse" ça ne me parait possible que s'il y a par exemple un temps mort franc entre deux paquets de 8 bits. Sinon il faut faire du "3 fils + masse" et prendre en compte la pin 10 du 595 qui est peut être 'pulsée' avant chaque nouvel envoi d'un paquet de 8...


La seconde implique d'avoir auparavant établi la liste des 8 sorties du HC595 et des segments correspondants gérés (a,b,c,d,e,e,f,g + point décimal).... ça peut etre fait en suivant les pistes du circuit, à l'ohmmetre. On peut également par élimination obtenir cette liste en comparant les états de sorties du HC595 pour les chiffres 1 et 7 affichés, les chiffres 2 et 3 .....
çi joint la notice des HS-2181 A et B


* 7_segment_display_labeled.png (7.88 KB, 220x220 - viewed 19 times.)

* HS2181A.jpg (27.76 KB, 579x393 - viewed 20 times.)
« Last Edit: October 24, 2011, 07:48:05 am by al1fch » Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@Artouste
oui le DP est utilisé pour une deuxieme partie de programmation évitant par la même occasion un 2eme digit.
ca se décrit par
1ere tranche : 0-->7
2eme tranche : 0. -----> 7. (qui équivaudrait à 10-->17)

sinon j'essaye de peser le pour et le contre des 2 solutions
souder les 8 pins = travail de haute voltige vu la disposition des pins
souder 2-3 pins = travail de prog hardu

j'ai relevé l'état des connexions sur le digit, mais pas sur le hs, sauf celle a coté du U5 sur la photo qui est la masse.
je vais prendre 5mn pour faire le schéma des pins par rapport au chiffre.
Logged

Pages: 1 [2] 3   Go Up
Jump to: