Je suis en train de faire les tutoriels tirés du livre S'initier à Arduino.
Un tuto me résiste, deux LED doivent clignoter de façon alternative en utilisant deux BS 170.
Malheureusement, cela ne fonctionne pas, les deux s'allument en même temps ! J'ai vérifié mon montage plusieurs fois, pour moi il est bon et je ne pense pas que le livre présente une erreur de ce côté !
Le programme reste très basique, je le joins ici
// (c)Frédéric SILLON 2020
// Clignotant avec la Led Externe sur Pin 8 et la Led interne L
#define LED_EXTERNE 8 // Explique à l’IDE que la Led est sur la pin 8
// fonction setup(): Initialisation de la carte Arduino
void setup() {
pinMode(LED_EXTERNE, OUTPUT); // Initialise la pin 8 en sortie
pinMode(LED_BUILTIN, OUTPUT); // Ainsi que la sorite de la Led L
}
// fonction loop(): notre clignotant
void loop() {
digitalWrite(LED_EXTERNE, HIGH); // Led externe ON
digitalWrite(LED_BUILTIN, HIGH); // Led L ON
delay(1000); // Attente
digitalWrite(LED_EXTERNE, LOW); // Led externe OFF
digitalWrite(LED_BUILTIN, LOW); // Led L OFF <
delay(1000); // Attente
} // On reboucle !!
On est vraiment sur des choses simples (surtout quand je lis les autres posts) mais je ne vois pas ce qui coince.... Si vous avez des pistes, une méthodologie à me proposer, je suis preneur.
Pour moi qui suis en totale découverte Arduino, le but est de faire des tutos puis quand cela fonctionne , modifier des paramètres (delay, sensibilité des capteurs) et surtout comprendre pourquoi un tutoriel ne fonctionne pas (il est prévu d'ailleurs de refaire celui du RFID qui n'avait pas fonctionné d'ailleurs).
Tu ne nous donne pas le schéma de câblage, mais celui-ci ne doit pas être mystérieux, je présume que tu pilote le Gate de chaque BS170 va une petite résistance, et à partir de la sortie 8 et la sortie qui correspond à LED_BUILTIN. (13 je crois?).
Au niveau du code, ces 2 sorties sont pilotées en même temps et avec le même niveau logique.
Donc elles évoluent en même temps et dans le même sens il me semble.
Je mets le schéma de câblage , ce sera plus clair de ce côté.
Je n'ai pas été assez précis désolé.
Je mets ce que cela doit faire Led_1 et Led_2 s’allument à tour de rôle, je cite le livre
Led 1 et Led 2 renvoient aux LED rouges du schéma.
Donc à ce que je comprends, la LEd de l'Arduino doit s'allumer de façon alternative avec Led 1 et Led 2 donc je devrai avoir une séquence de ce style
LED Arduino allumé, LED 1 et LED 2 éteintes
LED Arduino éteinte, LED 1 Allumé, LED 2 éteinte
LED Arduino allumé, LED 1 et LED 2 éteintes
LED Arduino éteinte, LED 1 éteinte, LED 2 allumé.
et on reprend la séquence.
Là, j'ai mes deux LED 1 et 2 qui s'allument en même temps et non de façon alternative entre elles. Par contre, l'alternance entre les LED rouge et celle de l'Arduino est bien respectée.
dans un premier temps, 2 choses me font tiquer : l'inscription "P" qui me fait penser à un canal P, donc à un BS250 (le BS170 est un canal N) et la broche G mise au 0V (dans les 2 cas G est au milieu)
Merci à toi, je vais essayer, j'ai du mal à faire un câblage avec uniquement un schéma électrique (c'est pour cela d'ailleurs que les livres d'initiation présentent souvent des dessins du montage) donc ce serait bien le montage qui foire et pas le programme.
vous allumez les 2, attendez une seconde, et éteignez les 2. donc elles fonctionnent de la même façon.
il faudrait faire
digitalWrite(LED_EXTERNE, HIGH); // Led externe ON
digitalWrite(LED_BUILTIN, LOW); // Led L OFF
delay(1000); // Attente
digitalWrite(LED_EXTERNE, LOW); // Led externe OFF
digitalWrite(LED_BUILTIN, HIGH); // Led L ON <
si vous voulez que ce soit une seule des deux qui soit allumée à un instant T
un grand MERCI à tous cela fonctionne !! Par contre désolé Jackson, mais cela fonctionne bien avec le programme d"origine. Pour être plus précis, la LED 1 s'allume en même temps que la LED 13 , la LED 2 s"allume alors que la LED 13 s'éteint et le cycle reprend. C'est au final comme cela qu'il fallait comprendre par rapport à la LED 13.
Et content pour moi, suis arrivé à faire le câblage
@5_cylindres j'ai archivé ton montage pour les prochaines fois ;)
J'avoue que ce n'est pas très clair
Pour la deuxième citation, c'est le fonctionnement que je PENSAIS que le programme allait faire par rapport aux LED rouge d'un côté et la LED de l'Arduino de l'autre.
Au final, le programme fait : la LED 1 s'allume en même temps que la LED 13 , la LED 2 s"allume alors que la LED 13 ainsi que la LED1 s'éteignent et le cycle reprend.
Ce que l'auteur avait précisé pour le "coeur" de la manip à savoir Led_1 et Led_2 s’allument à tour de rôle ce qui est bien le cas.
Désolé si je n'ai pas été précis.
un grand MERCI à tous pour votre aide et la résolution de mon problème
ce n'est pas mon montage, c'est celui que tu as toi-même fourni, issu de ton livre : je n'ai fait que te montrer quel devait être le câblage réel par opposition à celui que l'on voit dans le dessin généré sous Fritzing ou Tinkercad que tu nous avais soumis.
(mais même si je n'ai pas servi à grand chose, je suis tout de même content d'avoir pu t'aider)
Pour ma part , encore bien incapable de voir le souci justement du câblage.
Est ce que justement le datasheet du BS170 m'aurait permis de savoir que la source se branchait à la masse ?
C'est pour monter en expérience comme on dit :)
Est ce que justement le datasheet du BS170 m'aurait permis de savoir que la source se branchait à la masse ?
sur la Data Sheet du BS170 le montage de test (Fig 1) est un montage ‘Source à la masse’, montage de loin le plus fréquent pour les usages rencontrés sur ce forum (Mosfet en commutation) mais pas le montage unique.
la broche "G" (Grille en français ou Gate en anglais) d'un MOSFET est son organe de commande : si tu la vois à un potentiel fixe, genre Vcc ou 0V, il ne pourra pas être commandé (c'est comme la base d'un bipolaire).
La datasheet te donne le brochage et les caractéristiques du composant.
Elle ne t'apprendra pas à savoir utiliser un mosfet, il y a des tutos généraux pour cela.
Il faut savoir qu'il existe des mosfets canal N et d'autre canal P.
Comme en bipolaire, il existe des NPN et des PNP.
Dans un mosfet c'est la tension appliquée entre la Grille et la Source qui débloque le transistor qu'il soit canal N ou Canal P.
Avec un canal N, on met la source au potentiel le plus négatif, c'est généralement la masse.
Avec un canal P, on met la source au potentiel le plus positif, c'est généralement la tension d'alimentation.
Astuce : quand on fait un vrai schéma, pas un truc fritzing, dans le symbole du mosfet figure une diode.
C'est simple : la diode doit se retrouver en inverse.
Le symbole "volmétre" représente la tension qui commande le mosfet.
Pour rendre passant le transistor :
Dans un canal N la grille est à une tension supérieure à la source.
Dans un canal P la grille est à une tension inférieure à la source.
Si tu examines les deux symboles, tu verras que les flèches horizontales ne sont pas dans le même sens et que les diodes sont toutes les deux en inverse.
Pourquoi de canal N et des canal P ?
Comme tu peux le voir :
Avec la masse au moins de l'alimentation :
la commande d'un canal N est plus simple mais la charge n'est pas à la masse.
Avec le canal P c'est l'inverse : commande plus compliquée, mais la charge est parfaitement à la masse.
Merci pour vos compléments très instructifs et comprend mieux pourquoi vous avez réagi comme cela avec le premier montage indiqué (broche G à la masse)
Je rebondis sur les propos de 68tjs
Elle ne t'apprendra pas à savoir utiliser un mosfet, il y a des tutos généraux pour cela.
Je ne suis pas vidéo étant malentendant, est ce que vous connaissez un bon livre abordant ses points justement (et encore mieux si avec un peu de pratique avec) pour un débutant ?
Il y a eu des manips avec un transistor mais là je n'ai pas rencontré de souci (une manip avec un NPN et une autre avec un PNP).