Go Down

Topic: 3 BP ET 1 AFFICHEUR 7 SEGMENT (Read 932 times) previous topic - next topic

gbdf1

 :o il me sembler que la formule pour calculer la resistance du point qui consome 30ma sous 8,4v etait (12-8,4v)/0,030=120ohms.
Contrairement au segment qui consome 60ma donc 60 ohms,


J en perd mon latin
J ai fait  tout mes calcul sur cette base, c est pas bon?


Merci


kamill

Le point consomme 30mA sous 4V

gbdf1

Salut,

j ai bien bossé, voici le schemas fini et j ai aussis router le pcb plus qu a partir en production chez jlcpcb pour 32€ fdp, :o  il me font 5 circuit de 320mm x 170mm.

maintenant on croise les doigts

merci kamil

il faut que je finisse la programation et surtout que je la teste une foit tout recu

kamill

#48
Nov 20, 2020, 05:24 pm Last Edit: Nov 20, 2020, 05:31 pm by kamill
Beau travail!

Tu as mis quoi comme transistors Q12 Q14 ... ?
Le courant dans l'afficheur risque d'être limite pour un transistor en boitier TO92

Comment est connecté ton circuit à la mega?

J'espère que ce que tu appelles "transformateur" c'est une alim 12V continu et non un transformateur.

gbdf1

Salut kamill,

pour les PNP Q12 j ai mis des BC537 et pour les NPN Q14b j ai mis des BC547.
mon circuit se pose sur la mega avec des pins longues et s emboite
oui cest une alim 12V 7,5W




kamill

Je comprend mieux, je pensais que tes afficheurs étaient montés sur le circuit.

gbdf1

j ai juste l afficheur numero 7 qui est plus petit et sur le circuit pour verifier si la carte fonctionne et les 11 led pour verifier si les sorties fonctionnent il sont tout les deux la pour tester la carte

gbdf1

salut kamill.

j ai modifier ton code sur la base de se que tu avait fait pour l adapter a toutes les led, afficheurs, et bp mais si j ai bien compris dans ton code les afficheurs ne s affiche pas toutes les 10ms et je voudrais que les afficheurs s allume toutes les 10ms pour ne pas surcharger les resistances qui sont apres l uln2308, j ai recherché le code a rajouter mais j essaye de comprendre ton code mais je n y arrive pas, peut tu interpretrer ces lignes pour que j essaye de le modifier

 {
 nAffichage = (nAffichage + 1) % 3;
 if (chiffreAffiche[nAffichage])
 break;
 }
 if (chiffreAffiche[nAffichage])
 {

pour l affichage toutes les 10ms il faut rajouter quelque chose comme ca?

long temps;
temps = millis();
if((millis() temps)> 10)
{
nAffichage = !nAffichage;
digitalWrite(com1, high);
digitalWrite(com2, low);
digitalWrite(com3, low);
digitalWrite(com4, low);
digitalWrite(com5, low);
digitalWrite(com6, low);
delay(10);

digitalWrite(com1, low);
digitalWrite(com2, high);
digitalWrite(com3, low);
digitalWrite(com4, low);
digitalWrite(com5, low);
digitalWrite(com6, low);
delay(10);

etc...
?

c est dur ...
merci




kamill

#53
Nov 22, 2020, 09:25 am Last Edit: Nov 22, 2020, 09:28 am by kamill
Plutot que de dupliquer le code, tu devrais te pencher sur l'utilisation des tableaux et des boucles.

Si tu ne veux pas que les afficheurs clignotent, il faut rafraîchir l'affichage au maximum toutes les 20ms. C'est à dire que comme tu as 6 afficheurs, il faut changer d'afficheur toutes les 3ms.

Il existe des bibliothèques pour gérer les afficheurs multiplexés comme la bibliothèque SevSeg. Ça te simplifiera la vie.

Je n'est pas très bien compris ce que tu veux faire avec les boutons.

gbdf1

Salut 

En fait chaque bp corespond a son numero quand j appui sur le bp4 il y a 4 qui s affiche sut les 7 afficheurs quand j apui sur le bp8 peu de temps apres, il y a 4 et 8 qui s affichent sur tout les afficheurs en alternanace et quand tu appui sur le bp11 il y a 4,8,E qui s affichent en alternance exatement comme le code que tu a fait pour 3 afficheurs mais avec 7 afficheurs au total.
Ne sachant pas trop coder c est pour ca que j avais commandé des resistances de 5w celles qui sont apres le uln2308 pour que tout les afficheurs  s allume en meme temps sans griller mes resistances etant donner que je ne savais pas si j aller reussir a coder avec un affichage de 3ms sur chaque afficheurs.(je pense qje mon raisonement est bon si il faut des resistances classique pour commuter les afficheurs toutes les 3ms, avec une grosse on les alimente tous ensemble?)
Je vais quand meme malgré tout me pencher sur le code pour voir si je peux y arriver 

Des  que j ai un bout de code tu pourra y jeter un coup d oeil?

kamill

Effectivement, si tous les afficheurs affichent toujours la même chose, tu aurais pu te passer des transistors de commande de l'anode et relier directement les anodes au +12.
J'ai jeté un coup d'oeil à ton programme si tu as 10 chiffres à afficher il faur remplacer 3 par 10 ici
Code: [Select]
    for (byte i = 0; i < 3; i++)
    {
      nAffichage = (nAffichage + 1) % 3;
      if (chiffreAffiche[nAffichage])
        break;
    }

gbdf1

ok pour remplacer le 3
d apres toi le fait qu il s allume tous en meme temps sans multiplexage comme je l ai ecrit dans le code et qu il passe tous par les resistance de 5w qui sont apres le uln2803  ca devrai pas poser de probleme?

merci

kamill

La puissance dissipée dans les résistance va être au max 4V*7*0.06A=1.68W. Donc ça passe sans problème.


gbdf1

J avais vue sur certain schémas un condensateur de 100nf en le +12v et le gnd au plus proche je l ai mis sans trop savoir si s était nécessaire il appel sa un condensateur de decouplage mais est ce obligatoire ici? J ai rajouté des fusible aussi sur le 220v et le +12v .

Quand pense tu?

Merci 
mes pcb arrive dans 5jours je me langui de le monter et de tester tout ca :)

kamill

C'est une bonne pratique de mettre des condensateurs de découplage.
Idem pour les fusibles.

Go Up