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. #121
    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
    Super,Jacques!

    Citation Envoyé par Jsiorat Voir le message
    Pour info, je vais faire une petite vidéo et vous la poster !
    Soyez patient !
    On attendait que ça

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

  2. #122
    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
    Bravo, bonne nouvelle

    Et beau boulot de JP pour le code!

    Pour comprendre pourquoi ça fonctionne comme cela lisez cet article

  3. #123
    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 Jay M
    Citation Envoyé par Jay M Voir le message
    Bravo, bonne nouvelle

    Et beau boulot de JP pour le code!

    Pour comprendre pourquoi ça fonctionne comme cela lisez cet article
    Merci, quand le sujet est inspirant...

    Le lien sur Locoduino, super. Pour moi ce site est une référence de simplicité et de sobriété.
    Les tutos et autres cours sur "notre" forum sont très bien aussi.

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

  4. #124
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    Bonjour,

    Pour les tests avec les LEDs, attention à ne pas dépasser les limites de la carte, c'est 10mA (max 20mA) par pin, 200mA max pour l'ensemble.

    Citation Envoyé par Jsiorat Voir le message
    Pour info, je vais faire une petite vidéo et vous la poster !
    Soyez patient !
    Et la présentation du système d'aiguillage, moteur(s) de surface je suppose,
    mais surtout ce que ça consomme,
    comment c'est piloté (signal logique ?, de puissace ? ),
    quid de la protection contre les courants induits,
    comment c'est agencé, configuré au niveau d'une "(bi)furcation à 2 voies", 3 voies...
    qu'est-ce qui se passe en cas d'ordres antagonistes ?,
    etc

  5. #125
    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 kaitlyn Voir le message
    Pour les tests avec les LEDs, attention à ne pas dépasser les limites de la carte, c'est 10mA (max 20mA) par pin, 200mA max pour l'ensemble.
    De manière générale c’est effectivement bien de ne pas trop tirer à travers l’arduino.

    La MEGA est un peu plus capable que ce que vous dites cependant : si vous l’alimentez par USB vous recevez 500mA et par le Jack ça dépend de votre alim mais le jack a une diode en série qui limite à 1A. Ensuite il y a des limites par IO pin (40mA mais vaut mieux pas trop pousser au delà de 20), des limites par pins Vcc et GND à 200mA et ensuite des limites par groupes de pins / ports qui emmènent à 800mA si on répartit bien. (Plus d’infos ici)

  6. #126
    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
    Super,Jacques!

    On attendait que ça

    jpbbricole
    Je n'aurai rien pu faire sans toi ! Je suis nettement plus à l'aire en MsAccess qu'en Arduino !

    Alors, un grand merci encore, toi et Jay M, vous êtes des chefs de Arduino !

    Il me reste, j'en ai déjà parlé, à concevoir le triage. Ensuite, j'envisage un gros morceau, la détection des cantons par ILS.

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

  7. #127
    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
    [B]Alors, un grand merci encore, toi et Jay M, vous êtes des chefs de Arduino !
    Il faut aussi dire que tu est "un bon client" qui sait bien interpréter nos conseils, trucs et autres.

    Citation Envoyé par Jsiorat Voir le message
    Je suis nettement plus à l'aire en MsAccess qu'en Arduino !
    "Dans le temps" j'ai eu immense plaisir à travailler avec MsAccess. Tu connais, donc, Vba, si oui, je pourrais te montrer comment commander ton train depuis une feuille Excel.


    Le truc le plus "urgent" au vu du nombre de LED, est de ne pas ignorer les remarques de @kaitlyn

    Citation Envoyé par kaitlyn Voir le message
    ... Pour les tests avec les LEDs, attention à ne pas dépasser les limites de la carte, c'est 10mA (max 20mA) par pin, 200mA max pour l'ensemble....
    D'après ta photo, le 5V. des LED provient de l'Arduino, je ne sait pas comment tu alimentes le tout, USB ou jack d'alimentation? Mais le mieux est de "refaire" un 5V. plus puissant. Pour ce faire tu achètes quelques convertisseurs tension comme ceux-ci (prends-en des 2 sortes ça peut toujours servir), tu l'alimente depuis le Vin de l'Arduino sur Vin+(GND de l'Arduino sur Vin-), tu le règles en 5V et tu alimentes tes LED depuis sa sortie Vout+ (Vout- sur GND de l'Arduino) et tu alimentes l'Arduino depuis le jack et, si possible, en 9V. (normalement de 7-12v.)
    Ainsi tu soulages ton Arduino. Je ne connais pas tes compétences en électronique, mais si tu veux un schéma, pas de problème.

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

  8. #128
    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
    Bonjour Jacques


    "Dans le temps" j'ai eu immense plaisir à travailler avec MsAccess. Tu connais, donc, Vba, si oui, je pourrais te montrer comment commander ton train depuis une feuille Excel.

    jpbbricole
    Salut ...

    Moi, je penserais plutôt à une interface MsAccess en utilisant les possibilités Sorties/séries. A mon avis c'est faisable, parce qu'ainsi on peut profiter de la souris pour cliquer sur un bouton !
    Mais à voir un peu plus tard ! le train, le jardin, la compagne ... ça fait déjà beaucoup d'occupations !!! Pardon, "la compagne, le jardin, le train !" c'est mieux dans cet ordre.

    Question :
    avec le moniteur série, les commandes LPWM =A8 ou A9 ou A10 et A11 semblent ne pas répondre.
    par contre si on lance une commande "BP=C3_V3" qui utilise l'aiguillage B4_G et la LED A10, pas de problème, ça marche.
    l'option A8 à A11 ne semble pas être acceptée par LPWM
    Qu'en penses-tu ?
    Jacques
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  9. #129
    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
    Mais à voir un peu plus tard ! le train, le jardin, la compagne ... ça fait déjà beaucoup d'occupations !!! Pardon, "la compagne, le jardin, le train !" c'est mieux dans cet ordre.
    Excellent réflex!

    Citation Envoyé par Jsiorat Voir le message
    l'option A8 à A11 ne semble pas être acceptée par LPWM
    Je vais étudier ça.

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

  10. #130
    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

    Tu peux essayer LPWM=54 à LPWM=69 ce qui correspond à LPWM=A0 à LPWM=A15 pour un Mega.
    Pour trouver ça, Serial.println(A0);, par ex. te donne la clef du mystère

    Dès que j'ai le temps, je fais une version un peu "propre".

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

  11. #131
    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
    Le mieux est de "refaire" un 5V. plus puissant. Pour ce faire tu achètes quelques convertisseurs tension comme ceux-ci (prends-en des 2 sortes ça peut toujours servir), tu l'alimente depuis le Vin de l'Arduino sur Vin+(GND de l'Arduino sur Vin-), tu le règles en 5V et tu alimentes tes LED depuis sa sortie Vout+ (Vout- sur GND de l'Arduino) et tu alimentes l'Arduino depuis le jack et, si possible, en 9V. (normalement de 7-12v.)
    Ainsi tu soulages ton Arduino. Je ne connais pas tes compétences en électronique, mais si tu veux un schéma, pas de problème.
    Salut @JP - curieux de voir votre schéma dans ce cas --> comment comptez vous pilotez les LEDs si ce ne sont pas des PIXELS ou APA102 etc ? il faudrait rajouter des transistors sur toutes les LEDs et ça complexifie le système

    (sinon prendre le courant sur Vin c'est tirer au travers des "petites pistes" de la Carte Arduino (qui va consommer par ailleurs), vaut mieux se brancher directement sur la source de courant en parallèle au lieu de passer par la carte si on compte tirer pas mal de courant)

    Cela dit, oui il faut bien sûr faire très attention au courant tiré: mettre des résistances de limitation de courant sur les LEDs assez fortes pour limiter le courant (ça va impacter la brillance) sera important si vous voulez pouvoir en allumer beaucoup. Il faudra aussi bien répartir les différentes LEDs sur les différents ports pour profiter du quota de courant alloué par port.

    (C'est un autre point qui plaide pour des LEDs pilotées type Neopixel our APA102 etc car on sépare leur alimentation de leur commande)

  12. #132
    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
    Salut Jay M

    Citation Envoyé par Jay M Voir le message
    Salut @JP - curieux de voir votre schéma dans ce cas --> comment comptez vous pilotez les LEDs....
    Oui, tu as tout à fait raison, qu'on prenne la LED par un bout ou un autre en montage direct sur le port, la loi d'ohm est toujours là
    le courant total des LED "passe" de toute façon par le processeur, on ne soulage que le régulateur de tension de la carte.

    Mon raisonnement manquait de réflexion pour ce qui concerne les LED.

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

  13. #133
    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
    l'option A8 à A11 ne semble pas être acceptée par LPWM
    Voilà, c'est corrigé
    dans la fonction void monitCmdExecute(String cmdExec), remplace la condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	if (cmdExec.startsWith("LPWM="))
    	{
    		cmdExec.replace("LPWM=", "");
    		int ledIndex = cmdExec.toInt();
     
    		lpwmLedSet(ledIndex, lpwmOn);
    		delay(2000);
    		lpwmLedSet(ledIndex, !lpwmOn);
     
    		cmdExecOk = true;
    	}
    par

    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
    	if (cmdExec.startsWith("LPWM="))
    	{
    		int ledIndex;
    		cmdExec.replace("LPWM=", "");
     
    		if (cmdExec.startsWith("A"))             // Si c'est un port analogique (A0, A1 ...
    		{
    			cmdExec.replace("A", "");            // Enlever le A
    			ledIndex = cmdExec.toInt() + A0;     // Ajouter la valeur de A0 (14 pour le UNO et 54 pour le Mega)
    		}
    		else
    		{
    			ledIndex = cmdExec.toInt();
    		}
     
    		lpwmLedSet(ledIndex, lpwmOn);
    		delay(2000);
    		lpwmLedSet(ledIndex, !lpwmOn);
     
    		cmdExecOk = true;
    	}
    A +
    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  14. #134
    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
    pas grave, c'est l'utilité d'un forum!

    Comme discuté précédemment je pense que si le circuit à pour vocation de s'agrandir et se complexifier, il faudra rajouter du materiel

    Des TLC5940 (16 channel PWM LED driver) par exemple. La puce fournit 16 sorties PWM avec une résolution de 12 bits et une limitation de courant intégrée pour piloter directement des LED sans résistances et on peut en chaîner plusieurs. (la puce seule coûte un peu moins de 4€ en Asie)

    Ou alors regarder du côté des PCA9685 qui offrent aussi 16 sorties PWM avec une résolution de 12 bits qu'on pilote en I2C. Les cartes que l'on trouve (souvent pour des servos) ont des résistances de 220 ohms en série avec toutes les broches PWM - ce qui donne un peu plus de 20mA (sous 5V, le max) par pin donc on obtient une brillance tout à fait correcte. (Une carte complète coûte un peu moins de 4€ en Asie).

    L'alternative étant ce que @JP a mentionné précédemment, passer sur des LEDs programmables (les APA102 mettent moins de pression sur l'Arduino que les Neopixels WS2812B ou SK6812) qui ont l'avantage d'avoir leur propre alimentation séparée et une petite puce qui gère le PWM localement donc on peut non seulement choisir la couleur RGB mais aussi la brillance avec très peu de pins occupées sur l'arduino

    Pour les boutons on peut aussi utiliser des "expander". Par exemple les PCA9655 ou MCP23017 ou MCP23018 (bus I2C) ou MCP23S17 et MCP23S18 (bus SPI). (les xx18 sont en boîtier DIP, pas en module pré-montés). Il y a une nette supériorité en vitesse des composants SPI donc ils seront préférables pour maximiser la réactivité du système

    On pourrait aussi envisager un clavier de type membrane 4x4 ('0' à '9', 'A' à 'D', plus '*' et '#') pour entrer des commandes au lieu des boutons

  15. #135
    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 Jay M

    Je plussoie pour tout ça. comme je l'ai dit plus haut, la première chose que j'implémenterai sur ma maquette, c'est un bus i2C, à partir de là ça ouvre beaucoup de possibilités et surtout, simplifie le câblage.
    Il y a énormément de périphériques Arduino qui se connectent en i2C et ça n'utilise que 2 bornes de l'Arduino (SDL SDA) et on peut aisément transformer un Arduino en module i2C.
    Pour "lire" des touches ou commander des LED ou des relais (via transistor) le MCP23017 est super.

    Citation Envoyé par Jay M Voir le message
    On pourrait aussi envisager un clavier de type membrane 4x4 ('0' à '9', 'A' à 'D', plus '*' et '#') pour entrer des commandes au lieu des boutons
    Ce type de clavier peut se connecter en i2C via un circuit PCF8574 et la bibliothèque Keypad_I2C.h.
    Chez moi, pour faire les essais de ce programme, j'envoie les commandes depuis mon smartphone, via un terminal Bluetooth, en envoyant les mêmes commandes, que depuis le moniteur et, ce au moyen d'un interface Bluetooth HC-05 sur Serial3.

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

  16. #136
    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
    Tu peux essayer LPWM=54 à LPWM=69 ce qui correspond à LPWM=A0 à LPWM=A15 pour un Mega.
    Bonsoir JP,
    OK ça fonctionne et tu disais vrai, c'est sensationnel !

    J'ai pu remarquer que la commande moniteur "LPWM=255" éteint toutes les LEDs ! Mais il faut 3 secondes de traitement !
    Après de multiples essai, je m'aperçois que les LEDs ne s'éteignent pas lorsque qu'on appuis sur un bouton différent que le précédent appui. Dans certain cas, elles s'ajoutent aux lLEDs déjà allumées.
    Est-ce qu'il est possible d'envisager l'extinction de toutes les LEDs après l'appui sur un BP mais juste avant l'affichage du résultat d'une commande ?
    Je cherche dans ton programme mais je ne trouve comment procéder.
    Je pense que c'est dans cette fonction qu'il faut intervenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void lpwmLedSet(int ledIndex, boolean ledEtat)
    {
      byte ledIntensite = ledEtat ? lpwmValeurOn : lpwmValeurOff;
     
      SoftPWMSetFadeTime(ledIndex, lpwmTempsToOn, lpwmTempsToOff);
     
      SoftPWMSet(ledIndex, ledIntensite);}

    D'autre part, sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // 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}, 
    j'ai remplacé le "255" par "21" et "40" : c'est l'aiguillage qui permet de rentrer sur le triage

    A ton avis ?Nom : BlackBoard.JPG
Affichages : 98
Taille : 81,2 Ko
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  17. #137
    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

    Pas tout de suite, j'ai démonté mon "labo" de ton montage pour faire un autre tuc, mais, demain, je remonte.

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

  18. #138
    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 Jsiorat Voir le message
    J'ai pu remarquer que la commande moniteur "LPWM=255" éteint toutes les LEDs ! Mais il faut 3 secondes de traitement !
    hum... avec le code suivant
    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
    	if (cmdExec.startsWith("LPWM="))
    	{
    		int ledIndex;
    		cmdExec.replace("LPWM=", "");
     
    		if (cmdExec.startsWith("A"))             // Si c'est un port analogique (A0, A1 ...
    		{
    			cmdExec.replace("A", "");            // Enlever le A
    			ledIndex = cmdExec.toInt() + A0;     // Ajouter la valeur de A0 (14 pour le UNO et 54 pour le Mega)
    		}
    		else
    		{
    			ledIndex = cmdExec.toInt();
    		}
     
    		lpwmLedSet(ledIndex, lpwmOn);
    		delay(2000);
    		lpwmLedSet(ledIndex, !lpwmOn);
     
    		cmdExecOk = true;
    	}
    ce qu'il se passe c'est que ledIndex prend la valeur 255 et vous appelez la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     void lpwmLedSet(int ledIndex, boolean ledEtat)
    {
    	byte ledIntensite = ledEtat ? lpwmValeurOn : lpwmValeurOff;
     
    	SoftPWMSetFadeTime(ledIndex, lpwmTempsToOn, lpwmTempsToOff);
     
    	SoftPWMSet(ledIndex, ledIntensite);
    }
    donc vous appelez SoftPWMSetFadeTime sur la pin N° 255 qui n'existe pas... la bibliothèque ne connaissant pas cette pin, elle ne fait rien. Ce n'est pas cette commande qui éteint toutes les LEDs en 3 secondes. il doit y avoir autre chose

  19. #139
    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
    ce qu'il se passe c'est que ledIndex prend la valeur 255 et vous appelez la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     void lpwmLedSet(int ledIndex, boolean ledEtat)
    {
    	byte ledIntensite = ledEtat ? lpwmValeurOn : lpwmValeurOff;
     
    	SoftPWMSetFadeTime(ledIndex, lpwmTempsToOn, lpwmTempsToOff);
     
    	SoftPWMSet(ledIndex, ledIntensite);
    }
    donc vous appelez SoftPWMSetFadeTime sur la pin N° 255 qui n'existe pas... la bibliothèque ne connaissant pas cette pin, elle ne fait rien. Ce n'est pas cette commande qui éteint toutes les LEDs en 3 secondes. il doit y avoir autre chose
    Et pourtant ... ça fonctionne bien ! dans le code de JP, il a donné 2 secondes d'allumage et extinction ! Lorsque la commande "LPWM=255" est envoyée, l'ensemble des LEDs allumées sont éteintes sans attente !
    Mais j'ai quand même inclus votre code ! c'est trop bon d'apprendre quelque chose de nouveau !

    Pour ce qui est des broches A0 à A15, et pour des commandes depuis le moniteur, c'est bien de pouvoir remplacer par 54 à 68 tant que le code par lui-même fonctionne bien ! ça évite d'augmenter le nombre de ligne !
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  20. #140
    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 à tous!

    Je regarde ça demain.
    Si j'ai compris le problème, avec les ordres depuis le moniteur ça joue, hormis LPWM=255, mais quand on presse plusieurs bp à la fois, toutes les LED ne s'éteignent pas?

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

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