Voila je suis totalement novice en électronique et j'aurais bien besoin d'un petit coup de main
Cela fait plusieurs semaine que j'ai beau cherché (ou mal chercher) et je ne trouve pas mon bonheur.
Pour un projet, je souhaite utilisé 3 Afficheur 7 segments qui sont à Anode Commune, un arduino Uno et 3 registre 74Hc595. Je souhaite lui faire faire un 350-0.
J'ai réussi à tout câbler et j'arrive t'en bien que mal à coder de façon à sortir quelques choses mais mon problème est que je n'arrive pas à trouver un moyen pour contrôler l'affichage car dans un premier temps j'aimerais utiliser un bouton pour faire défiler le counter.
Je suis encore plus novice que toi. Le 74HC595 est un shift register. Et tu l'as cablé en ring counter, je suppose? Vois-tu passer quelque chose sur ton affichage? Qui fait reculer le compteur? Le programme ou seulement les circuits? Je chercherais du côté des bascules (flip-flop ou latch, gated ou pas). L'idée étant que le signal soit envoyé au compteur seulement à chaque transition bouton-élevé - bouton-enfoncé couplé à l'horloge. La sortie serait renvoyée vers l'entrée et empêcherais un autre cycle d'horloge de se rendre à la sortie. Seul un nouvel appui sur le bouton déverrouille pour un seul cycle d'horloge.
Le Tout est souvent plus grand que la somme de ses parties.
Certains mots sont encore du chinois pour moi mais je vois ou tu veux en venir et oui c'est ce que je cherche à obtenir. Je veux que le compteur m'affiche 350 et quand j'appuie sur un bouton paff 349 et ainsi de suite
Avec le programme le compteur défile bien de 350 à 0 mais celui ci ne s'arrête pas bien sûr, normal vu qu'il n'a aucun arrêt.
J'ai regardé rapidement les bascules JK avec verrouillage par l'horloge. Je pense qu'une bascule JK avec front montant suivi d'une autre avec front descendant pourraient fonctionner. Je vais regarder ça si j'ai un peu de temps. Il me semble qu'il y a quelque chose de plus simple. Le problème est que le bouton peut rester enfoncé pendant plusieurs cycles, même si tu as un diviseur de fréquence.
Le Tout est souvent plus grand que la somme de ses parties.
@PierroLeFou, Vraiment merci j'en demande pas autant si tu me trouve des solution je prends !
Les autres, merci aussi, mais je marche au exemple, si vous en avez je prends. La ça ne m'aide pas vraiment, je sais que pour vous ça parait simple ^^.
Pour le CD4511 en effet je l'avais bien vu, mais les afficheurs que je souhaite utilisé je ne l'ai est trouvé qu'en Anode.
@zoup: content de te voir dans le décor ... J'ai fait une recherche pour arduino 7447 https://forum.arduino.cc/index.php?topic=59267.0 Une question que je me pose en tant que programmeur: Ne peut-on pas régler le problème par programmation? Par exemple, si le programme peut lire une information au clavier et attendre qu'une touche soit tapée. Il envoie l'information appropriée à l'affichage pour le décompte suivant. PS je ne programme pas sur l'Arduino.
Le Tout est souvent plus grand que la somme de ses parties.
Il faut encore un croire en l'humanité ! Ou peut être pas en vrai.. sérieux zoup tu pense que c pas se que j'ai fais déjà? J'ai pas approfondi la question. Pourquoi répondre sur un forum si c pour troll ? Vous vous faite si chier que ça dans vos vie ?
Bref je m'écarte du sujet.
@PierroLeFou, j'ai look ton lien je testerai se soir mais il me semble que sur sont schéma c des afficheurs à Cathode mais je testerais quand mm. Mais merci vraiment je retrouve foi en l'humanité, enfin un peu
Étant programmeur Cn je sais qu'on peut tout faire mais le mode de l'électronique et nouveau, voir complexe pour moi
Il faut encore un croire en l'humanité ! Ou peut être pas en vrai.. sérieux zoup tu pense que c pas se que j'ai fais déjà? J'ai pas approfondi la question. Pourquoi répondre sur un forum si c pour troll ? Vous vous faite si chier que ça dans vos vie ?
Je te signale que j'avais évoqué l'utilisation du 7447, et que tu n'avais pas donné suite, ce qui n'est pas très poli.
Gentiment, je te propose d'aller voir ce qui est possible de faire à ce sujet, et partant de là j'aurais pu t'aider à la suite de questions précises.
Vu ta réaction, je vais donc éviter de perdre mon temps plus longtemps.
Parce je ne vois pas l'intérêt des décodeurs BCD alors qu'il y a déjà 3 registres à décalages qui peuvent contrôler directement les afficheurs 7 segments avec juste 3 ou 4 sorties de l'arduino (même si ça oblige à limiter le courant de chaque segment à moins de 10mA, contrairement à des registres à décalages de puissance , ex: TPIC6B595, ou des drivers de leds, ex: TLC591x, à décalage eux aussi).
Au minimum, les broches 14, 11 et 12 du registre doivent être connectées à l'arduino. La broche 11, Shift Register Clock, en jaune, ne semble pas connectée.
Il faudrait également que tu montres le code arduino que tu as déjà écrit.
Effectivement la il n'est pas connecté mais normalement il est relié à la sorti 2 de l'Arduino.
Le code simple sert pour compter de 399 à 0. J'ai essayé avec un interrupteur ça bloque bien l'affichage (ex 321)' mais quand je relance ce n'est pas le bon chiffre ensuite.( si il c passer 10 sec j'aurais 311)
Si je remplace i,j et k entre [ ] je peux obtenir un chiffre fix mais je ne suis pas arrivé à le contrôler comme je voulais
int ENTREE = 4;
int SORTIE = 3;
int DECAL = 2;
int Chiffre [10] {1,79,18,6,76,36,32,15,0,4};
void setup() {
pinMode(ENTREE, OUTPUT);
pinMode(SORTIE, OUTPUT);
pinMode(DECAL, OUTPUT);
}
void loop() {
{
for (int k = 3; k >= 0; k--){
for (int j = 9; j >= 0; j--){
for (int i = 9; i >= 0; i--){
digitalWrite(SORTIE,HIGH);
shiftOut(ENTREE, DECAL, LSBFIRST,Chiffre[i]);//i
shiftOut(ENTREE, DECAL, LSBFIRST,Chiffre[j]);//j
shiftOut(ENTREE, DECAL, LSBFIRST,Chiffre[k]);//k
digitalWrite(SORTIE, LOW);
delay(500);
}
}
}
}
}
Pour pouvoir attendre l'appui sur un bouton, il faut utiliser millis() à la place de delay() et supprimer les boucles. Il y a un début d'explication dans ce cours.
Tu peux également remplacer ton compteur par une seule variable globale et en extraire les chiffres avec l'opérateur modulo et des divisions successives.
Ha bon! Il existe une fonction pour attendre une touche du clavier? C'est ce que je voulais dire. Pour le compteur et les modulo: centaines = compteur / 100; dizaines = (compteur / 10) % 10; unites = compteur % 10;
Le Tout est souvent plus grand que la somme de ses parties.
Ha bon! Il existe une fonction pour attendre une touche du clavier?
Si tu préfères: Avec delay(500) dans la boucle qui gère le compteur, une lecture des broches connectées aux boutons avec digitalRead ne peut se faire que toutes les 500ms, ce qui peut faire rater la détection d'un appui. En utilisant millis() pour gérer le temps, il sera possible de lire l'état des boutons dans l'intervalle entre les changements de valeur du compteur.
Mais il existe des bibliothèques pour gérer les boutons comme Bounce2, qui sont également généralement incompatibles avec l'utilisation de delay().
Le problème, c'est que le 4511 ne peut commander que des cathodes communes.
Voir plutôt du côté des 7447 en version TTL ou CMOS
Bonjour, je ne viens que sporadiquement sur le forum. Mais on peut piloter avec le CD4511, indifféremment anode ou cathode commune.
Il est vrai, cependant qu'il faille ajouter un composant supplémentaire, en anode commune.
Bien cordialement
Jc
- Edité par Jean-ClaudeGHYSELINCK 8 novembre 2020 à 13:43:47
Question pour Afficheur 7 Segment
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.