Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Arduino] - Alimentation du circuit

Comment ça fonctionne ?

    12 août 2013 à 19:20:36

    Bonjour à tous,

    Je m'adresse à vous car étant débutante en électronique j'ai un peu de mal à saisir quelques éléments. ^^

    Tout d'abord, j'ai fait pas mal de recherche et il y a quelque chose que je ne comprend pas. Sur certains projet les LED en sorties de la carte sont alimentées par le 5V de la carte tandis que sur d'autre ce n'est pas le cas. J'aimerais bien comprendre la différence. Ci-joint un exemple de deux montages différents (dont un venant du tutoriel sur Arduino)

    En fait j'ai vraiment du mal à comprendre quand est-ce qu'il faut que ce soit relié à la borne 5V et à la masse ?

    Merci d'avance pour votre aide, si quelqu'un arrive à éclaircir ce point noir ! :)

    • Partager sur Facebook
    • Partager sur Twitter
      12 août 2013 à 23:58:49

      Salut,

           L'explication que je vais te fournir est une explication assez basique, sans trop entrer dans les détails .. On me corrigera au besoin.

           Tout dépend du courant que tu as besoin de débiter. Les cartes Arduino sont composés de µControleurs qui ne peuvent souvent débiter plus de 20mA. Ici la borne 5V est issu directement de l'alimentation de la carte, mais tu es tout de même limiter. Je ne me rappel plus des valeurs. Mais toujours est-il que pour allumer une led ou deux cette borne convient très bien.

           La ou sa ce gate c'est lorsque tu veux alimenter un équipement qui consomme .. Un moteur par exemple, pour un petit moteur 1W hors charge avec une tension nominale de 5V, il faudra 200mA ce qui est assez conséquent et que la carte Arduino ne peut fournir.

           On utilise donc une alimentation externe, (une batterie par exemple) et on relie simplement la masse de notre montage a la masse de l'arduino. De cette façon, les tensions d'alimentations de la carte arduino, et du moteurs auront la même référence de tension (ce qu'on appel la masse ..).

           Donc en conclusion, lorsque tu dois alimenter un équipement qui consomme peu, tu peux utiliser la borne 5V, mais lorsque tu dois alimenter des équipements qui consomment, utilise une autre source de tension, sans oublier de raccorder les masses !

      -
      Edité par Spitrou 12 août 2013 à 23:59:12

      • Partager sur Facebook
      • Partager sur Twitter
      Pensez aux +1 qui font toujours plaisir ! Visitez mon site, il est encore en développement, une première version: WLElectronic.free.fr 
        13 août 2013 à 13:43:31

        Bonjour,

        Il y a effectivement pour un µController (µC) un problème de puissance ... Mais je pense qu'ici ce n'est pas le cas, vu qu'il n'y a que des diodes ...

        Ce qu'il faut comprendre, c'est qu'une diode est un peu (et j'ai bien dit un peu) comme une lampe. Et je pense que le problème est un problème de niveau logique.

        Donc si tu as une lampe branché d'un côté à la masse et de l'autre sur la sortie du µC. Pour allumer ta lampe tu devras mettre un niveau logique 1 (high en programmation) qui est équivalent au 5V du µC.

        Inversement, si la lampe est branché au 5V et de l'autre sur la sortie du µC. Pour allumer ta lampe tu devras mettre un niveau logique 0 (low en programmation) qui est équivalent à la masse du µC.

        Donc pour chaque exemple nous avons bien la masse d'un côté et le 5V de l'autre pour allumer la diode. Après il y a aussi une question de polarité qui dit que pour une diode il faut toujours le côté plat de la diode vers la masse.

        Voilà j'espère avoir été clair.

        • Partager sur Facebook
        • Partager sur Twitter
          13 août 2013 à 15:07:03

          Si l'on veut faire une analogie imagé, il faut voir :

          - les tensions comme un verre plus ou moins remplie

          - les fils comme des tuyaux

          - la diode comme un clapet

          .

          Et c'est là que je met à profil mes talant de descinateur ASCII ><

          Ceci est un niveau logique 5V :
          => Le verre est rempli
          
          |  5V  |
          |      |
          |------|
          |......|
          |......|
          |......|
          |......|
          |______|
          
          
          Ceci est un niveau logique 0V (GND) :
          => Le verre est vide
          
          |  0V  |
          |      |
          |      |
          |      |
          |      |
          |      |
          |      |
          |______|
          
          Maintenant , pour la diode, comme je l'ai dis, c'est un clapet :
          Le O serait une liaison rotative
          
          ==========O==========
                    |
                    |
                   X|
          =========XX==========
          
          L'eau peut donc passer de gauche à droite :
          
          ==========O==========
                     \
           -> ->      \ 
                   X
          =========XX==========
          
          Mais pas de droite à gauche (car il y a une butée)
          
          
          

          .
          Pour que la diode s'allume, il faut qu'il y ai de l'eau qui circule.

          Or, si tu mets des verres vides de chaque coté (le 0V GND), il n'y aura aucun débit et donc la led sera éteinte.

          Mais c'est aussi valable pour deux verres pleins (et oui, l'eau ne pourra pas circuler si les 2 verres ont le même niveau d'eau).

          .

          Bref, pour que la led s’allume, il faut mettre un verre plein (+5V) et un verre vide (0V GND).

          Cela peut se faire de 2 façons :

          1. Si tu branches un coté de la led sur 0V GND et l'autre sur une sortie du micro, alors :

          -> écrire un 1 logique allumera la led (car le '1' donne un verre plein et le GND un verre vide)

          -> écrire un 0 logique éteindra la led (car les 2 cotés sont vide)

          2. Si tu branches un coté de la led sur +5V et l'autre sur une sortie du micro, alors :

          -> écrire un 1 logique éteindra la led (car les 2 cotés sont pleins)

          -> écrire un 0 logique allumera  la led

          .

          Voila voila, suivant comment tu cable la LED, tu peux soit avoir une commande normale (1=allumé), soit une commande inversée (1=éteint).

          • Partager sur Facebook
          • Partager sur Twitter
            13 août 2013 à 19:39:31

            Merci à vous tous pour vos explications, et un grand merci à lorrio qui avec son explication imagé m'a bien aidé à comprendre. :D

            Maintenant j'ai une autre question, dans le cas d'une entrée comme sur le premier schéma, pourquoi cette fois-ci le bouton est branché à la fois avec 5V, le GND et à une broche de l'Arduino ?

            -
            Edité par Nomyx 13 août 2013 à 19:40:15

            • Partager sur Facebook
            • Partager sur Twitter
              13 août 2013 à 20:10:07

              Une entrée doit forcément avoir un niveau logique bien définie.

              Si tu ne la connectes pas, son potentiel est flottant, elle peut donc être :

              - soit être proche de 0V (dans ce cas, c'est un '0' que voit le microprocesseur)

              - soit être proche de 5V (dans ce cas, c'est un '1' que voit le microprocesseur)

              - soit être proche de 2.5V (dans ce cas, le microprocesseur voit une valeur osciller, soit '0', soit '1')

              -----

              Si tu branches ton bouton uniquement si le 5V, alors tu es sur que lorsqu'il sera enfoncé, tu auras un 1.

              Par contre, quand tu le relâches, tu ne sais pas ce que voit le microprocesseur.

              On peut faire de même avec GND.

              -----

              Normalement, on utilise un montage de pull-UP :

              .
                       |=====|
              +5V -----|  R  |-----|
                       |=====|     |
                                   |
                                   |
                                   |---- Vers microprocesseur
                                   |
                                   |
                       |=====|     |
              GND -----| Btn |-----|
                       |=====| 

              Quand le bouton est ouvert, le microprocesseur est connecté au +5V au travers d'une résistance et voit donc un '1' logique.

              Pourquoi voit-il un '1' ?

              Sachant qu'il va consommer quelques micro ampère seulement, au borne de la résistance, il y aura quelques mili-volt (U=R*I).

              Du coup, 5V moins quelques mili-volt donne quand même une valeur proche de 5V et donc un '1' logique

              Quand le bouton est fermé, c'est comme si le microprocesseur était relié au GND, il voit donc un '0' logique.

              Par contre, en fermant le bouton, cela fait une liaison direct entre le +5V et le GND à travers la résistance, ce qui va consommer inutilement du courant.

              Du coup, on prend généralement une résistance assez grande pour ne pas trop perdre de courant inutilement.

              RAPPEL : U= R*I ; P=U*I => P=U²/R => plus la résistance est grande, moins elle dissipera de puissance.

              -----

              Après, on pourrait se dire : "bah, je vais mettre une résistance de 10 Mega, comme ça, je ne consommerais rien"

              Mais NON !

              Comme dit plus haut, le microprocesseur va consommer quelques micro-ampère.

              Or, quelque-micro-ampère * quelques Mega Ohm = quelques volt.

              Du coup, au lieu de voir un beau 5V, le microprocesseur va voir 5V mois quelques volt et ça marche pas --'

              Généralement, on prend des pull-Up entre 1k et 100k.

              -----

              NOTE : en interne, les micro-processeur ont généralement des pull-UP (qui peuvent parfois être désactivées).

              En les activant, on peut donc se passer du pull-up externe et utiliser uniquement un bouton connecté au GND.

              Sur arduino, le code est pinMode(x, INPUT_PULL_UP) au lieu de pinMode(x, INPUT)

              -
              Edité par lorrio 13 août 2013 à 20:17:01

              • Partager sur Facebook
              • Partager sur Twitter
                13 août 2013 à 20:51:58

                Ok, merci je pense avoir compris ;)

                Je voudrais faire à terme un buzzer pour 3 joueurs, donc 4 boutons (1 par joueur et 1 pour la réinitialisation) et 3 lampes en sortie.

                Je voulais d'abord faire un petit montage afin de tester mon programme avec seulement des LEDs. Est-ce que le montage ci-dessous pourrait convenir ? Si j'ai bien compris, je peux enlever les résistances devant les boutons en modifiant mon programme et en ayant pinMode(x, INPUT_PULL_UP) au lieu de pinMode(x, INPUT).


                Par contre mes boutons ressemblent plus à ça:

                Est-ce que cela change quelque chose ?

                Merci

                -
                Edité par Nomyx 13 août 2013 à 20:52:43

                • Partager sur Facebook
                • Partager sur Twitter
                  13 août 2013 à 21:19:22

                  Tant que ça a que 2 bornes, un bouton reste un bouton.

                  Si il en a 3, il te faudra réfléchir un peu plus :)

                  Il n'y a donc pas de soucis là dessus.

                  -----

                  Pour le reste du schéma, ça m'a l'air bon.

                  -----

                  Oui, tu peux enlever la résistance si tu utilises INPUT_PULL_UP.

                  -----

                  Cependant, fait attention aux rebond avec un bouton ;)

                  Quand tu lâches le bouton, alors le passage de '0' à '1' se fera sans problème.

                  Par contre, quand tu vas appuyer sur le bouton, le passage de '1' à '0' aura des rebond.

                  A l'oeil nu, tu ne verras rien ... mais à l'échec microscopique, le bouton rebondi avant de se fermer.

                  Du coup, le signal ressemble un peu à ça :

                  ¯¯¯¯¯¯¯¯¯¯¯¯__¯¯¯____¯¯¯¯¯_____¯¯__¯__¯¯¯¯__¯¯_______________________

                  Les rebonds sont totalement aléatoire et dure quelques millis voire dizaine de millis secondes.

                  Serte, c'est très court 10ms, mais pour ton micro qui travail à 40 Mhz, c'est très long.

                  Si tu t'amuses à faire un compteur qui compte les passage de 1 à 0 (ou l'inverse), tu auras de jolis surprises (genre un compteur qui s'incrémente de 5 d'un coup car il aura compté 5 rebonds).

                  -
                  Edité par lorrio 13 août 2013 à 21:19:56

                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 août 2013 à 21:28:39

                    Ok merci :) ! Niveau programmation ça devrait aller ^^

                    Si j'ai bien compris le tutoriel, c'est pour éviter ce type de rebond qu'on met un condensateur ?

                    Je reviendrais certainement vers vous car pour la mise en place de mon buzzer définitif, je dois alimenter des ampoules qui fonctionnent entre 170 et 220V. En cherchant un peu j'ai vu qu'on pouvais utiliser des relais afin d'augmenter la tension. Ma question, est-ce que le 5V de l'Arduino est suffisant pour alimenter les relais et faut-il toujours les résistances à la suite de l'ampoule ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 août 2013 à 21:53:31

                      Un condensateur, mouai, ça marche plus ou moins.

                      C'est un peu le circuit anti rebond du pauvre (ou du petit chinois).

                      Y'a mieux quand même.

                      Mais quand on n'a qu'un condo sous la main, ça dépanne.

                      -----

                      T'as vu la taille de ton arduino ? Tu penses vraiment qu'il serait capable de conduire le courant d'une ampoule 220V ?

                      Les sortis d'un microprocesseur peuvent généralement driver 20mA tout au plus.

                      Sous 5V, ça fait à peine 100mW, à peine de quoi alimenter 2 ou 3 LEDs par sortis.

                      Alors une ampoule de 50W, je n'en parle même pas (d'autant plus que l'ampoule a besoin de 220V, pas 5V ><)

                      Utiliser un relais ? Oui, ça pourrait marché, à condition qu'il ne consomme pas trop non plus sur la tension de commande.

                      Si tu veux vraiment être sur, c'est transistor + relais.

                      -
                      Edité par lorrio 13 août 2013 à 21:54:27

                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 août 2013 à 17:31:07

                        Pour l'anti rebond, tu peux aussi le gérer par soft en mettant une petite tempo après l'appui d'un BP.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 août 2013 à 17:40:10

                          Ok super ! Merci beaucoup pour toutes ces informations :D

                          Je vais d'abord tester sur mon premier circuit et je verrais pour le reste après. Les ampoules que je souhaite alimenter par la suite sont composées de LEDs voici leur description: e27 1W ampoule led (170-250V). J'irais me renseigner en temps voulu.

                          Encore merci pour tous ces renseignements :)

                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 août 2013 à 17:49:38

                            C'est des ampoule prévu pour être branché sur une prise électrique standards.

                            Il te faut donc une interface entre la prise et l'arduino.

                            Comme tu l'as si bien dit : un relais.

                            Pour une consommation de 1W, un tout petit relais fera l'affaire donc je ne pense pas que tu ai besoin de rajouter un transistor.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 août 2013 à 20:53:33

                              Ok cool !

                              Merci bien pour m'avoir si bien éclairé et renseigné ! :D

                              • Partager sur Facebook
                              • Partager sur Twitter
                                21 août 2013 à 9:59:36

                                pense à la diode de roue libre !!
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  21 août 2013 à 12:13:07

                                  HORS SUJET :

                                  Normalement, on utilise un montage de pull-UP :

                                  .
                                           |=====|
                                  +5V -----|  R  |-----|
                                           |=====|     |
                                                       |
                                                       |
                                                       |---- Vers microprocesseur
                                                       |
                                                       |
                                           |=====|     |
                                  GND -----| Btn |-----|
                                           |=====| 

                                  Quand le bouton est ouvert, le microprocesseur est connecté au +5V au travers d'une résistance et voit donc un '1' logique.

                                  Pourquoi voit-il un '1' ?

                                  Sachant qu'il va consommer quelques micro ampère seulement, au borne de la résistance, il y aura quelques mili-volt (U=R*I).

                                  Du coup, 5V moins quelques mili-volt donne quand même une valeur proche de 5V et donc un '1' logique

                                  Quand le bouton est fermé, c'est comme si le microprocesseur était relié au GND, il voit donc un '0' logique.

                                  Par contre, en fermant le bouton, cela fait une liaison direct entre le +5V et le GND à travers la résistance, ce qui va consommer inutilement du courant.

                                  Du coup, on prend généralement une résistance assez grande pour ne pas trop perdre de courant inutilement.

                                  RAPPEL : U= R*I ; P=U*I => P=U²/R => plus la résistance est grande, moins elle dissipera de puissance.

                                  -----

                                  Après, on pourrait se dire : "bah, je vais mettre une résistance de 10 Mega, comme ça, je ne consommerais rien"

                                  Mais NON !

                                  Comme dit plus haut, le microprocesseur va consommer quelques micro-ampère.

                                  Or, quelque-micro-ampère * quelques Mega Ohm = quelques volt.

                                  Du coup, au lieu de voir un beau 5V, le microprocesseur va voir 5V mois quelques volt et ça marche pas --'

                                  Généralement, on prend des pull-Up entre 1k et 100k.

                                  Enfin une explication du pull-up claire... Si on m'avait dès le début donné cela, j'aurais peut-être mis moins de temps à comprendre :p
                                  Je ne sais pas si elle est dans les cours de ce site, sinon, il me semble que ce serait bien de l'y mettre ^^

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    21 août 2013 à 13:44:42

                                    La diode de roue libre est une diode qui doit être présente quand on utilise des bobines (ici le relais) avec des signaux logiques de commandes.

                                    Une bobine emmagasine de l'énergie quand elle est alimentée. Mais quand elle ne l'est plus, elle doit être décharger par l'intermédiaire d'une diode (appelée diode de roue libre). Elle permet d'éviter les pics de surtension à cause de la bobine sur l'organe de commande (transistor, sortie µC ou autre).

                                    Tu as plus d'explications et même un schéma pour piloter un relais avec un transistor ici (je conseille d'utiliser un transistor même sur un petit relais, car je pense que le montage tiendra plus longtemps et ça permet de changer que le transistor au lieu du µC tout entier ...).

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    [Arduino] - Alimentation du circuit

                                    × 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.
                                    • Editeur
                                    • Markdown