Correction d'un circuit

a marqué ce sujet comme résolu.

Bonjour ! :)

Je suis partis pour faire un projet bien plus important que ce que je fait d’habitude.

J’aimerais créer une petite console portable. Habituellement, je ne fait qu’allumer quelques LED et afficher deux/trois trucs sur un écran avec un Arduino.

Cependant, pour mon projet, j’aimerais me séparer de l’Arduino, et utiliser à la place un Microcontroller AtMega328.

Dans ma console, il y auras plusieurs éléments :

  • Un AtMega328
  • Cinq LEDs
  • Quatre boutons
  • Un "LED Matrix" (je ne connais pas le nom en français)
  • Un "8-Digit LED Display Drivers" MAX7219

J’ai donc créer un premier schéma que voici :

Schéma 1

EDIT : Voici la seconde version :

Schéma 2

Etant très loin d’être un professionnel dans le domaine, je me doute bien que celui-ci comporte beaucoup d’erreurs. J’aimerais donc que vous m’expliquiez où sont les erreurs, et pourquoi ce sont des erreurs.

J’ai fait ce schéma en utilisant uniquement les "Datasheets" des différents composants.

Actuellement, je n’ai pas mit les LEDs ni les boutons. Je les ferais une fois cette première version terminée.

Normalement, si ce schéma est bon, je devrais pouvoir allumer/éteindre les LEDs que je souhaite sur mon "LED Matrix" grâce au code qui sera présent dans le microcontroller AtMega328.

Est-ce que déjà, avec ce schéma, je pourrais faire ceci ? C’est à dire : Est-ce que j’ai besoin d’autre chose pour allumer/éteindre les LEDs ?

Merci ! :)

PS : N’ayant pas les composants requis, il m’est impossible de tester tout cela. C’est pour cette raison que je demande vos conseils d’experts ! :D

+0 -0

Ta matrice est bien branchée (enfin, les bons pins sont utilisés, après, j’ai pas envie de vérifier que la correspondance est exacte, tu le verras vite à l’utilisation ^^).

Je ne comprends pas pourquoi tu prends des pins "random" sur ton ATmega, mais en soi, c’est correct. (J’aurais plus eut tendance à les mettre l’un à côté de l’autre sur les PB/PD qui sont uniquement numériques. Tu a le LOAD sur un PC, donc analogique et numérique, mais je ne vois pas vraiment pourquoi)

Pour la valeur de la résistance, j’ai pas vérifié, mais si tu l’as récupéré d’un datasheet, ça devrait être OK.

+0 -0

Merci !

Ta matrice est bien branchée (enfin, les bons pins sont utilisés, après, j’ai pas envie de vérifier que la correspondance est exacte, tu le verras vite à l’utilisation ^^).

JuDePom

La correspondance ? C’est à dire ?

Je ne comprends pas pourquoi tu prends des pins "random" sur ton ATmega, mais en soi, c’est correct.

JuDePom

Et bien… il fallait en choisir un. :p En effet, j’aurais du brancher PC0 sur le PD0. C’est même mieux pour dessiner le circuit. :p

Pour la valeur de la résistance, j’ai pas vérifié, mais si tu l’as récupéré d’un datasheet, ça devrait être OK.

JuDePom

Je l’ai en effet pris dans un datasheet. Faut que je re-vérifie pour être sûr, mais normalement c’est ça. :)


Donc si je comprend bien, mon circuit et bon ? Je peux mettre mon code dans le microcontroller (je vais me renseigner comment faire), et tout fonctionne, je peux controller le "LCD Matrix" ?

En tout cas, merci pour ton message ! :)

+0 -0

La correspondance ? C’est à dire ?

FougereBle

Le fait que tes pins de lignes et colonnes correspondent bien à la LED. Histoire que ça allume les bons. Mais, c’est rien :P. Et tu verras bien quand tu testeras si quand tu veux allumer la LED en haut à gauche, c’est bien celle là qui s’allume. Sinon tu échanges juste les fils.

J’ai fait un autre schéma où j’ai ajouté mes quatre LEDs (finalement, je ne vais en mettre que quatre) ainsi que mes quatre boutons.

Par contre, je ne suis pas sûr d’avoir correctement branché les boutons. Il faut dire aussi que ça fait un petit moment que je n’ai pas touché à l’électronique.

Aussi, je ne sais pas si c’est le bon symbole que j’ai utilisé dans mon schéma. Ils se trouvent en haut.

Schéma 2

Pour les boutons, c’est ceux-ci que je vais mettre.

Merci !

+0 -0

J’ai envie de te dire, on ne va tester le circuit pour toi, le meilleur moyen de savoir si ça fonctionne… c’est d’essayer, et c’est comme ça qu’on apprends, particulièrement dans un domaine aussi pratique que l’électronique.

Au pire, tu ne risque presque rien, hormis que ça ne fonctionne pas du premier coup, et qu’il te faille changer quelques branchements, donc fais-toi plaisir et essaye.

J’ai envie de te dire, on ne va tester le circuit pour toi, le meilleur moyen de savoir si ça fonctionne… c’est d’essayer […]

Titi_Alone

En fait, je ne voulais pas que vous l’essayez. Simplement, me dire si les branchements sont corrects. ;)

Au pire, tu ne risque presque rien, hormis que ça ne fonctionne pas du premier coup, et qu’il te faille changer quelques branchements, donc fais-toi plaisir et essaye.

Titi_Alone

J’ai justement prévu de prendre tout ce dont j’ai besoin afin de faire quelques tests. :)

Juste une dernière question : Quel est le symbole de ces boutons ? Je n’ai pas réussi à le trouver avec me recherches. :(

+0 -0

J’ai pas trop regardé le circuit car je n’ai jamais utiliser de matrices de leds, mais si t’es pas à 2€ et 3cm2 prêt, je te conseille de mettre un quartz de 16MHz entre PB6 et PB7 (à gauche), avec deux condensateurs de 22pF entre ces pins et la masse, comme à gauche sur le schéma suivant :

exemple quartz

Comme ça, tu n’a pas à t’embêter avec la vitesse (8Mhz max sans le quartz), ce sera la même que sur l’arduino.

Ensuite, qu’est-ce que tu as prévu pour programmer l’atmega ?
Habituellement j’utilise un USBasp pour le programmer en ISP, et j’ajoute donc au circuit un connecteur ISP au circuit. Il existe plusieurs connecteurs, dont celui sur le schéma ci-dessus (6 broches), mais le connecteur 10 broches me semble plus répandu donc j’utilise celui-là (brochage ci-dessous) :

Brochage connecteur ISP

Salut,

J’ajouterais quelques remarques :

Sur chacune des pins d’alimentation de tes circuits intégrés, il faut ajouter une capacité de découplage, qui a pour but d’empêcher tes circuits de faire des reset impromptus en cas de demandes de courant rapides et élevées (allumage de toutes tes leds en même temps, par exemple). Renseigne-toi, c’est très important. Tu trouveras dans les datasheets des schémas d’application où tu peux copier les valeurs.

Il faut fixer un potentiel à la ligne reliant les boutons à ton micro-contrôleur, sans quoi tu liras n’importe quoi sur ces pins. Considérant qu’une entrée de micro-contrôleur a une résistance (impédance d’entrée) très élevée, de très petits courants induits par des ondes électromagnétiques peuvent provoquer des tensions sur ces lignes suffisantes pour que le micro-contrôleur les reconnaissent comme des changements d’état et les interprètent comme une commande utilisateur. Un petit circuit comme celui-là peut déjà t’aider. Il résout pas les problèmes de rebond (sujet auquel tu peux aussi t’intéresser) mais fait déjà du travail.

EDIT : ah, je vois que mes remarques sont obsolètes, tant pis.

A++

Greg

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte