IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Effectuer une association entre deux tableaux


Sujet :

Arduino

  1. #161
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Comme je vous l'ai déjà dit le français n'est pas ma langue maternelle. Je m'efforce de l'écrire le plus correctement possible et je vous présente mes excuses si mon style est trop direct et (culturellement?) perçu comme "froides et/ou sans concessions". Ce n'est pas l'intention.
    Bonjour Jay,

    J'aurai aimé écrire le français comme vous l'écrivez. Je souhaite de tout mon cœur que ceux qui disent "mal parler ou mal écrire" notre langue, le fasse aussi bien que vous !
    Moi-même qui suis un parisien "pure souche", je n'écris pas aussi bien vous. Alors, et pour ceci, et en dehors de tous rapports avec le projet en cours, permettez-moi de vous adressez mes plus sincères félicitations.
    Cordialement, Jacques
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  2. #162
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Jacques
    Je suis totalement d'accord avec toi, en aucun cas je ne conteste la qualité des interventions de Jay M, mais la pertinence de ces dernières. Donner des analyses de Pro (c'est mon opinion) dans un forum d'amateurs, comme l'Arduino, est plus générateur d'angoisses que d'aide.

    Cordialement
    Jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  3. #163
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Citation Envoyé par jpbbricole Voir le message
    Bonjour Jacques
    Je suis totalement d'accord avec toi, en aucun cas je ne conteste la qualité des interventions de Jay M, mais la pertinence de ces dernières. Donner des analyses de Pro (c'est mon opinion) dans un forum d'amateurs, comme l'Arduino, est plus générateur d'angoisses que d'aide.

    Cordialement
    Jpbbricole
    Pourquoi pensez vous que c'est un forum d'amateurs ? il y a de tout ici et l'Arduino est utilisé en prototypage rapide dans de nombreuses entreprises pour de vrais projets pros.

    Vous avez aussi convenu que votre code n'était pas à la portée d'un débutant il me semble et discuter d'experience utilisateur ne me semble pas hors sujet, même dans un forum arduino.

    "Angoisse" quand on propose d'enlever le signe ''=' à la fin de la commande? c'est un peu exagéré ou culturel encore ??

    Votre argument "sérieux" que vous mettez en avant
    Plus sérieusement, je trouvais, justement, qu'ajouter les = dans le tableau, c'était pas joli!
    ne repose pas sur la simplicité, mais une affaire de goût personnel... Vous avez le droit d'avoir cette opinion et comme c'est votre code, je me suis gardé de faire la modifications sur les quelques lignes. J'ai juste fait une suggestion.

    Toujours pour parler très directement, j'ai l'impression que vous prenez pour un jugement de valeur (sur vous) mes commentaires, et avez presque un "complexe d'infériorité" ou une animosité par rapport à d'autres développeurs éventuellement un peu plus chevronnés et que vous vous réfugiez derrière l'argument "je fais de l'Arduino donc pas grave si c'est moche du moment que ça fonctionne" pour vous justifier. il ne faut pas... D'une part vous n'avez pas à rougir du tout de la qualité de vos interventions et du code que vous fournissez: vous produisez un travail remarquable et remarqué, c'est généralement très bien pensé, vous allez au bout des choses et d'autre part je ne juge personne dans mes interventions, c'est du commentaire sur le code, d'autres idées, d'autres approches, et j'essaye généralement d'expliquer pourquoi => Je ne suis pas d'accord avec cette idée que les participants ne sont pas là pour apprendre des meilleures pratiques ou s'ouvrir à de nouvelles idées. C'est comme cela que l'on évolue et que l'on est capable de faire des projets plus complexes et plus satisfaisants.

    Débat clos pour moi sur la pertinence de ces remarques j'ai dit ce que j'avais à dire - chacun est libre de ses opinions et je les respecte même quand je ne suis pas d'accord.

    @jacques, merci - ça fait quand même longtemps que je vis en France et ce serait un sacrilège d'écorcher cette belle lange !

  4. #164
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut On passe à autre chose ?
    Je reviens sur notre petit train miniature ...
    JP, petit soucis ... rien ne s'éteint après l'appui sur un BP.
    Le code devient trop féru pour moi et je ne saurai pas faire la modif nécessaire.
    Exemple de ce qu'il serai bien :
    Après l'initialisation de la gare,
    - appui sur le bouton C1_V2 ;
    - éteindre toutes les LEDs
    - Allumer les LEDs : 22, 24, 30
    - appui sur le bouton C3_V1 ;
    - éteindre toutes les LEDs
    - Allumer les LEDs : 33, 35, 25, 27
    etc ...
    Allumer les LEDs qui correspondent à un BP, c'est déjà programmé (ligne 228 à 241).
    Reste l'extinction des LEDs après chaque appui sur un BP (ligne 256 ?)
    Est-ce que tu peux faire quelque chose dans ce sens ?

    Cordialement, Jacques (qui va s'en aller au jardin ! J'ai fait des confitures de tomates vertes ! huuummm )
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  5. #165
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir Jacques

    Citation Envoyé par Jsiorat Voir le message
    Allumer les LEDs : 22, 24, 30
    Allumer les LEDs : 33, 35, 25, 27
    etc ...
    Je crois qu'il y a confusion, ces numéro de LED sont en fait des moteurs d'aiguilles qui s'allument brièvement (delay(aigMotEtatOnTemps)) dans void aigMouvement(aigInUseDef aigMouv, boolean echoCmd).
    Ces ports ne sont pas concernés par les divers fonctions lpwm, selon le tableau ce sont les LED dans les colonnes Led G et Led D (à mon avis)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	// Position donne la position de l'aiguille au demarrage du programme
    	//Nom,   Position, Moteur G, Moteur D, Led G, LED D   255 = port inutilise
    	{"G1", aigPosDroite,  21,       22,       40,   41},
    	{"A1", aigPosGauche,  23,       24,       42,   43},
    	{"A2", aigPosDroite,  25,       26,       44,   45},
    	{"A3", aigPosGauche,  27,       28,       46,   47},
    	{"A4", aigPosDroite,  29,       30,       48,   49},
    	{"B1", aigPosDroite,  31,       32,       50,   51},
    	{"B2", aigPosDroite,  33,       34,       52,   53},
    	{"B3", aigPosDroite,  35,       36,       A8,   A9},
    	{"B4", aigPosDroite,  37,       38,       A10,  A11}
    Peux-tu éclairer ma lanterne?

    Citation Envoyé par Jsiorat Voir le message
    Jacques (qui va s'en aller au jardin ! J'ai fait des confitures de tomates vertes ! huuummm )
    Alors là, c'est Jacques le veinard!!!

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  6. #166
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Mille et 1 pardon ! c'est moi qui m'est (!) planté ! effectivement me suis trompé de colonne !

    Allumer les LEDs : 41, 43, 49 et non 22, 24, 30
    Allumer les LEDs : 52, A8, 44, 46 et non 33, 35, 25, 27

    etc ...

    désolé, ce doit être l'air pur du jardin qui m'a soulé !
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  7. #167
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir Jacques

    Citation Envoyé par Jsiorat Voir le message
    ...c'est moi qui m'est (!) planté ! effectivement me suis trompé de colonne !...!
    Voilà où ça mène de planter des légumes!

    J'ai tout contrôlé, le programme réagit comme tu le demandes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Commande moniteur:	BP=C1_V2
    Commande bp C1_V2
    	Aiguille G1 Droite
    		LED 41	 On
    		LED 40	 Off
    	Aiguille A1 Droite
    		LED 43	 On
    		LED 42	 Off
    	Aiguille A4 Droite
    		LED 49	 On
    		LED 48	 Off
    Execution de: BP=C1_V2   = OK
     
    Commande moniteur:	BP=C3_V1
    Commande bp C3_V1
    	Aiguille B2 Gauche
    		LED 52	 On
    		LED 53	 Off
    	Aiguille B3 Gauche
    		LED 62	 On
    		LED 63	 Off
    	Aiguille A2 Gauche
    		LED 44	 On
    		LED 45	 Off
    	Aiguille A3 Gauche
    		LED 46	 On
    		LED 47	 Off
    Execution de: BP=C3_V1   = OK
    Pour avoir le détail dans la console, modifies, dans void cmdMonitExecute(String cmdExec) 2 false en true (en gras), dans la prochaine, il y aura une commande pour ce faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	else if (cmdMonitCheck(cmdExec, cmdMonitBp))                     // Bouton poussoir
    	{
    		aigLedAllOff();                                              // Etaindre les LED
    		cmdExecOk = bpCommande(cmdMonitRx.paramStr, true);
    	}
    	else if (cmdMonitCheck(cmdExec, cmdMonitAig))                    // Aiguille       
    	{
    		cmdExecOk = aigCommande(cmdMonitRx.paramStr, true);
    	}
    Est-ce qu avec la commande lpwm=62 le LED 62 s'allume progressivement et s'éteint de même?

    A+
    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  8. #168
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par jpbbricole Voir le message
    Bonsoir Jacques


    Est-ce qu avec la commande lpwm=62 le LED 62 s'allume progressivement et s'éteint de même?
    Non c'est le contraire : elle s'éteint et se rallume ! idem pour 63, 64 et 65 !

    Après avoir changé "false" en "true",
    - exemple : appui sur C2_V2 ... toutes les LEDs sont allumées à l'exception des LEDs afférentes au BP qui se sont éteintes !
    il y a donc une inversion quelque part !

    a+, Jacques
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  9. #169
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir Jacques

    Tout ce joue avec ces paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define lpwmPolarite SOFTPWM_INVERTED  // SOFTPWM_NORMAL ou SOFTPWM_INVERTED 
    #define lpwmOn true
    
    byte lpwmValeurOn= 255;                // Valeur pour allumer
    byte lpwmValeurOff= 0;                 // Valeur pour eteindre
    Essaies de changer SOFTPWM_INVERTED en SOFTPWM_NORMAL

    Mais comment sont câblées ces LED?

    A+
    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  10. #170
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par jpbbricole Voir le message
    Bonsoir Jacques

    Tout ce joue avec ces paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define lpwmPolarite SOFTPWM_INVERTED  // SOFTPWM_NORMAL ou SOFTPWM_INVERTED 
    #define lpwmOn true
    
    byte lpwmValeurOn= 255;                // Valeur pour allumer
    byte lpwmValeurOff= 0;                 // Valeur pour eteindre
    Essaies de changer SOFTPWM_INVERTED en SOFTPWM_NORMAL

    Mais comment sont câblées ces LED?

    A+
    Cordialement
    jpbbricole
    Voila mes essais :
    1er cas : SOFTPWM_INVERTED
    lpwmOn = true
    résultat : toutes les LEDs sont allumées à l'exception des broches 53 e A10

    2ème cas : SOFTPWM_NORMAL
    lpwmON = true
    résultat : toutes les LEDs sont éteintes à l'exception de 53 et A10

    3ème cas : SOFTPWM_NORMAL
    lpwmOn = false
    résultat : toutes les LEDs sont allumées à l'exception des broches 53 e A10

    4ème cas : SOFTPWM_INVERTED
    lpwmOn = false
    résultat : toutes les LEDs sont "en veilleuse" à l'exception de 53 et A10 qui sont allumées plein pot ! (photo)

    Quant au câblage, chaque aiguillage, bouton poussoir et LEDs sont câblés d'après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //Nom,   Position, Moteur G, Moteur D, Led G, LED D   255 = port inutilise
    	{"G1", aigPosDroite,  21,       22,       40,   41},
    	{"A1", aigPosGauche,  23,       24,       42,   43},
    	{"A2", aigPosDroite,  25,       26,       44,   45},
    	{"A3", aigPosGauche,  27,       28,       46,   47},
    	{"A4", aigPosDroite,  29,       30,       48,   49},
    	{"B1", aigPosDroite,  31,       32,       50,   51},
    	{"B2", aigPosDroite,  33,       34,       52,   53},
    	{"B3", aigPosDroite,  35,       36,       A8,   A9},
    	{"B4", aigPosDroite,  37,       38,       A10,  A11}
    Par contre, si j'appui sur C2_V1 toutes les LEDS se mettent "en veilleuse", les LEDs afférentes au bp restent allumées. !
    idem pour tous les autres boutons. Ce qui m'inquiète c'est que les LEDs inutilisées restent "en veilleuse" ! je dirais à 15/20% de leur intensité.
    Nom : 4ème cas.png
Affichages : 105
Taille : 340,8 Ko
    Nom : cablage.png
Affichages : 102
Taille : 602,0 Ko
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  11. #171
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir Jacques

    Je regarde ça demain.

    Bonne nuit
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  12. #172
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Bonjour JP,

    J'en suis là pour obtenir le résultat cité dans le post précédent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #define lpwmPolarite SOFTPWM_INVERTED  // SOFTPWM_NORMAL ou SOFTPWM_INVERTED 
    #define lpwmOn false
    
    byte lpwmValeurOn= 255;                // Valeur pour allumer
    byte lpwmValeurOff= 0;                 // Valeur pour eteindre
    int lpwmTempsToOn = 500;               // Temps ver l'allumage
    int lpwmTempsToOff =500;               // Temps vers l'extinction
    c'est à dire que après l'initialisation de la gare les LEDs A10(64) et 53 sont allumée plein pot, toutes les autres sont à 15/20% d'intensité, alors que TOUTES les LEDs devrait rester allumées. Ensuite,
    - appui sur bp=c3_v1
    -LEDs allumées : 44, 46, 52 et A8(62) => ça c'est bon !
    - toutes les autres sont à 15/20% d'intensité. => elles devraient être éteinte.

    je dois recevoir aujourd'hui une nouvelle carte Mega 2560. Est-ce que celle que j'utilise actuellement aurai un problème ? je ne crois pas mais ...
    C'est cette intensité de 15/20% qui m'inquiète !
    A+ bonne journée
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  13. #173
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Bonjour Jacques / JP

    Concernant votre montage, vos LEDs semblent alimentées par la pin de contrôle au travers de leur résistance de limitation de courant. Elles sont donc en cathode commune et l'Arduino fournit le courant qui va vers le GND au travers de la LED.

    SOFTPWM_NORMAL signifie que la broche doit être LOW lorsque la valeur du PWM est 0, tandis que SOFTPWM_INVERTED indique que la broche doit être HIGH lorsque la valeur du PWM est 0. A mon avis il faut garder SOFTPWM_NORMAL comme polarité par défaut et il me semblerait logique d'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #define lpwmPolarite SOFTPWM_NORMAL
    const bool lpwmOn = true;
    const byte lpwmValeurOn= 255;  // Valeur pour allumer (HIGH quand le PWM est à 255)
    const byte lpwmValeurOff= 0;   // Valeur pour éteindre (LOW quand le PWM est à 0)

    Ensuite pour la brillance (cf la discussion précédente sur le nombre max de leds que l'on peut allumer en fonction du type d'alimentation et des ports choisis), une hypothèse à vérifier serait le courant disponible. Quelle valeur de résistance avez vous pour la limitation de courant? 330Ω voire 470Ω serait sans doute mieux que 220Ω.

  14. #174
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Jacques

    Aujourd'hui jour de marché sous la flotte!

    D'après tes essais, avec SOFTPWM_INVERTED et lpwmOn, le système réagit normalement. hormis la mise "en veilleuse" qui est déjà corrigé.

    Citation Envoyé par Jsiorat Voir le message
    ... les LEDs A10(64) et 53 sont allumée plein pot...
    Là, je soupçonne une erreur de câblage, essaies de permuter, au niveau du Mega, la paire A10 et 53 avec une autre paire, est-ce-que c'est toujours les même LED qui sont "à l'envers"? La photo n'est pas de définition suffisante pour voire les détails.

    Pour revenir au chapitre alimentation, avant que ça se gâte, je te conseille de mettre des drivers entre l'Arduino et les LED, il y en a d'excellents et pas cher, l'ULN2803. achètes-en une poignée, ça peut toujours servir, tu peux même faire tirer des relais avec. C'est l'équivalent d'un transistor NPN, mais il y en a 8 dans un boitier, donc plus facile à câbler et il y a même la diode de protection intégrée. Ensuite tu alimentes tes breadboard au moyen d'un chargeur USB ou d'une alimentation 5V., en mettant leur GND avec celui de l'Arduino. Ainsi ton Mega sera soulagé, il n'aura plus à supporter le courant des LED.
    Je pense que, avec un ULN2803, tu pourrais faire marcher tes moteurs d'aiguille, si c'est du CC, je n'ai, malheureusement plus ce matériel pour essayer.

    Citation Envoyé par Jay M Voir le message
    ...A mon avis il faut garder SOFTPWM_NORMAL comme polarité par défaut et il me semblerait logique d'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #define lpwmPolarite SOFTPWM_NORMAL
    const bool lpwmOn = true;
    const byte lpwmValeurOn= 255;  // Valeur pour allumer (HIGH quand le PWM est à 255)
    const byte lpwmValeurOff= 0;   // Valeur pour éteindre (LOW quand le PWM est à 0)
    C'est confirmé par l'essai No.2.
    Citation Envoyé par Jsiorat Voir le message
    2ème cas : SOFTPWM_NORMAL
    lpwmON = true
    résultat : toutes les LEDs sont éteintes à l'exception de 53 et A10

    Je peaufine la dernière version du programme et le met en ligne, encore aujourd'hui.

    A+
    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  15. #175
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Bonjour Jacques / JP


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #define lpwmPolarite SOFTPWM_NORMAL
    const bool lpwmOn = true;
    const byte lpwmValeurOn= 255;  // Valeur pour allumer (HIGH quand le PWM est à 255)
    const byte lpwmValeurOff= 0;   // Valeur pour éteindre (LOW quand le PWM est à 0)

    Ensuite pour la brillance (cf la discussion précédente sur le nombre max de leds que l'on peut allumer en fonction du type d'alimentation et des ports choisis), une hypothèse à vérifier serait le courant disponible. Quelle valeur de résistance avez vous pour la limitation de courant? 330Ω voire 470Ω serait sans doute mieux que 220Ω.
    Bonjour Jay,

    Voilà, j'ai fait ce que vous préconisez ... et vous avez raison ! les LEDs ne sont plus en intensité diminuée, donc pour ça, c'est bon !

    Pour les LEDs de 5mm utilisées ici avec des résistances 220Ω, ce n'est que pour les réglages ! Sur mon TCO, j'utilise des LEDs de 3mm qui sont moins puissante, ce qui fait que les résistances de 220Ω sont suffisante (tout au moins je le pense !) J'ai fait des tests avec une pile 9V et j'ai vu ce que ça donne. Des résistances plus importantes 330 voire 470 seront beaucoup trop forte !
    Le nombre maxi de LEDs allumées ensemble est de 4 LEDs !
    JP va lire nos post et mettre en oeuvre ce changement.
    Comme ce programme est bien plus conséquent, je n'arrive plus à suivre en tant que débutant dans ce mode de programmation.
    JP a conçu ce programme et c'est for me, formi, formidable ! (jeu de mots !)
    Merci pour cet ajustement,
    Cordialement , Jacques
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  16. #176
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Jacques et Jay M

    Citation Envoyé par Jsiorat Voir le message
    Pour les LEDs de 5mm utilisées ici avec des résistances 220Ω, ce n'est que pour les réglages ! Sur mon TCO, j'utilise des LEDs de 3mm qui sont moins puissante, ce qui fait que les résistances de 220Ω sont suffisante (tout au moins je le pense !) J'ai fait des tests avec une pile 9V et j'ai vu ce que ça donne. Des résistances plus importantes 330 voire 470 seront beaucoup trop forte !
    Je ne veut pas dire de c......e, mais c'est pas le diamètre d'une LED qui fait qu'elle consomme moins, mais sa couleur. Par contre, tu peux soulager le Mega en augmentant le résistance en série quitte à avoir des LED un peu plus pâles.

    Citation Envoyé par Jsiorat Voir le message
    JP va lire nos post et mettre en oeuvre ce changement.
    Je n'ai rien à mettre en oeuvre, j'ai mis cette variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define lpwmPolarite SOFTPWM_INVERTED  // SOFTPWM_NORMAL ou SOFTPWM_INVERTED
    pour ce faire c'est à l'utilisateur du programme à l'adapter à son installation. A ce propos, attention, je développe avec des LED anode communes, l'inverse de toi et mets SOFTPWM_INVERTED, quand je te passe une nouvelle version, il se peut que j'oublie de changer alors, attention!!!

    A+
    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  17. #177
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Pour revenir au chapitre alimentation, avant que ça se gâte, je te conseille de mettre des drivers entre l'Arduino et les LED, il y en a d'excellents et pas cher, l'ULN2803. achètes-en une poignée, ça peut toujours servir, tu peux même faire tirer des relais avec. C'est l'équivalent d'un transistor NPN, mais il y en a 8 dans un boitier, donc plus facile à câbler et il y a même la diode de protection intégrée. Ensuite tu alimentes tes breadboard au moyen d'un chargeur USB ou d'une alimentation 5V., en mettant leur GND avec celui de l'Arduino. Ainsi ton Mega sera soulagé, il n'aura plus à supporter le courant des LED.
    Salut JP ! Et dire que l'été dernier on voulait de la flotte pour le jardin et macache !Que dalle ! (NON ! pas l'actrice !) maintenant, on est servi !

    Pour moi, c'est un peu du charabia ! si je comprends bien, ces "drivers" doivent remplacer les résistances ?
    donc pour mon montage d'essai, il m'en faudrait deux : un pour les LEDs du TCO et l'autre pour les moteurs d'aiguillages ...
    Y a t-il un question de puissance à prendre en compte ?

    A+, bonne journée ... à l'abri ou sous le parapluie !
    Jacques
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  18. #178
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    J'ai fait des tests avec une pile 9V et j'ai vu ce que ça donne
    9V au travers de l'Arduino ou directement sur les LEDs ??

    Une LED de 5mm (rouge) a un "forward voltage" de 2.0V supporte 20mA. Pour une LED de 3mm ce serait entre 1.8V et 2V pour 18mA

    ==> Donc il faut une résistance généralement plus grande pour des 3mm que des 5mm. il faut aussi faire attention à la puissance dissipée dans la résistance. => pour la prochaine fois où il pleut, un article explicatif sur comment calculer les résistances de limitation de courant


    Un autre article à lire concernant les drivers

  19. #179
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Jacques

    Citation Envoyé par Jsiorat Voir le message
    ...si je comprends bien, ces "drivers" doivent remplacer les résistances ?
    Non, un driver sert à suppléer au manque de puissance, en l'occurrence d port de sortie de l'Arduino, en fait c'est un amplificateur de courant. Pour ce qui est du montage de tes LED, il faut simplement les "retourner", l'ULN2803 étant un inverseur et les mettre "contre" +5V, elles deviennent anode commune. (Cathode commune actuellement). La résistance devrait rester la même.

    Citation Envoyé par Jsiorat Voir le message
    ...donc pour mon montage d'essai, il m'en faudrait deux : un pour les LEDs du TCO et l'autre pour les moteurs d'aiguillages ...
    Oui, sous réserve d'un essai avec une aiguille, pour autant que je me souvienne, les électroaimants des aiguilles pompent assez, au pire on peut mettre 2 portes en parallèle. Si je retrouve une aiguille dans mon b....l, je fais l'essai.

    Citation Envoyé par Jsiorat Voir le message
    ...Y a t-il un question de puissance à prendre en compte ?
    Pas pour les LED, pour les aiguilles, voire ci-dessus.

    Je te fais un schéma, si nécessaire.

    A+
    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  20. #180
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par Jay M Voir le message
    9V au travers de l'Arduino ou directement sur les LEDs ??
    Par la carte Mega !
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

Discussions similaires

  1. Requête pour effectuer une comparaison entre deux dates
    Par ktm26 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/04/2017, 08h49
  2. Effectue une soustraction entre deux dates
    Par messi1987 dans le forum Développement
    Réponses: 2
    Dernier message: 05/03/2015, 14h22
  3. [XL-2003] Faire une liaison entre deux tableaux sur 2 classeurs différents
    Par Katell dans le forum Conception
    Réponses: 1
    Dernier message: 22/01/2015, 18h04
  4. implementer une association entre deux classes uml en java
    Par tabbabi dans le forum Persistance des données
    Réponses: 8
    Dernier message: 19/04/2011, 19h39
  5. Réponses: 1
    Dernier message: 11/06/2009, 23h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo