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 :

Bug d'une led avec Teensy LC


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut Bug d'une led avec Teensy LC
    Bonjour,

    J'ai maintenant terminé mon projet et j'ai un problème, lorsque j'allume ma carte Teensy Lc, une led s'allume et reste allumé je ne peux rien faire.

    Le projet : J'ai 9 Leds qui sont reliées à la Teensy et j'ai 9 sortie en touchread. Lorsque je touche une à une des sorties touchread , les leds s'allument une à une.


    Du coup les autres fonctionnes sauf une qui reste allumé et je ne sais pas comment faire car il n'y a pas de contact avec quoi que ce soit..

    Merci de votre aide!

  2. #2
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut La solution à tout ou rien
    Bonjour,

    Sans informations de types câblage et code, la seule chose que nous pourrons faire c'est : ABRACDABRA !!!

    Ca a marché ?

    Salutations

  3. #3
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    Citation Envoyé par Guesset Voir le message
    ABRACDABRA !!!

  4. #4
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut
    J'aimerais bien que ca se passe comme ça

    Excusez-moi c'est vrai je n'ai pas mi beaucoup de détails.
    Voilà, donc sur la photo on voit la carte Teensy Lc qui est relié aux Leds et à la partie tactile (je ne l'ai pas en photo, c'est juste du fil qui ressort souder à une petit plaque de cuivre). Ainsi que le programme utilisé.

    Tout le dispositif va venir dans le tube, et je suppose que ca bug quand tout les fils se rapprochent et se touche ? Sachant que je dois mettre le tactile (threshold) très sensible car ce qui va capter sera sous du tissus. Mais je ne sais pas comment faire pour régler ce problème. Si vous avez des solutions je prends volontié. N'hésiter pas si vous voulez plus d'informations. Merci

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    struct {
      const byte ledPin;
      const byte touchPin;
      unsigned long t0;
      bool active;
    }
    systeme[] = {
      {2, 1, 0, false},
      {3, 15, 0, false},
      {5, 16, 0, false},
      {25, 4, 0, false},
      {6, 18, 0, false},
      {7, 19, 0, false},
      {8, 22, 0, false},
      {9, 23, 0, false},
      {11, 0, 0, false},
    };
     
    const int threshold = 1700;
     
    void setup() {
      Serial.begin(115200); Serial.println();
      for (auto & s : systeme) pinMode(s.ledPin, OUTPUT);
    }
     
    void loop() {
      for (auto & s : systeme) {
        // touch sensor
        if (touchRead(s.touchPin) > threshold) {
          s.t0 = millis();
          digitalWrite(s.ledPin, HIGH);
          s.active = true;
        }
     
        // timeout
        if (s.active && (millis() - s.t0 >= 900)) {
          digitalWrite(s.ledPin, LOW);
          s.active = false;
        }
      }
    }
    Nom : 286019953_388803119703828_1129642118508774840_n.jpg
Affichages : 230
Taille : 233,1 Ko

  5. #5
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    le code semble correct donc vous avez sans doute un souci de câblage en effet... pour débuguer il n'y a pas de magie.
    - Vous débranchez tous les câbles
    - vous vous assurez d'une bonne isolation totale le long du câble (on voit des résistances qui trainent) et entre câbles
    - vous les testez un par un

    comment les LEDs sont elles alimentées? combien consomment-elles? est-ce que la carte fournit assez de courant par pin pour cela?

    peut-être il faudra un seuil différent par capteur - à rajouter dans votre structure pour affiner la détection




    PS/
    dans le code vous pouvez enlever la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Serial.begin(115200); Serial.println();
    puisque vous n'affichez aucune information. pas la peine d'activer la série série.

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    aussi lisez ce que dit Paul S. sur le montage (ici https://forum.pjrc.com/threads/38024...-they-the-same)

    It has a 1 pF reference capacitor built inside the chip, where the measurement is performed on both the pin and the internal capacitor. This helps cancel out variations in the hardware due to temperature and other effects, so you get a really reliable measurement. Of course, the measurement is capacitance between the pin and ground, so the sense touch the person must have some coupling to ground. For hand-held devices, usually the approach is to make the back side they hold a metal ground plane. For wired devices, usually you connect Teensy's ground to earth ground, and try to depend on the fact that people's bodies will usually have some coupling to earth ground.
    ou sur le site https://www.pjrc.com/store/teensylc.html#pins

  7. #7
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut
    Est ce que vous auriez des idées pour bien isoler chaque câbles ? Et qu'il n'y ai pas de Faux contacts ou autre?

    La Raspberry pi3B+ va alimenter la carte par USB. Une led consomme 3.0-3.2V, normalement elle consomme assez par pin?

    Je ne serais pas modifier mon programme pour modifier individuellement le threshold de chaque entrée. Je n'ai pas de réelle compétences en programmation pour l'instant.

    Je n'aurais accès à mon dispositif que lundi, mais je vais le recréer chez moi aujourd'hui pour tester. Je vous remercie de votre aide encore une fois

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    Citation Envoyé par JPP3939 Voir le message
    Est ce que vous auriez des idées pour bien isoler chaque câbles ? Et qu'il n'y ai pas de Faux contacts ou autre?
    il faut éviter tout composant ou fil à l'air libre comme on voit là
    Nom : oops.jpg
Affichages : 195
Taille : 28,1 Ko

    On met par exemple de la Gaine thermorétractable par exemple sur ces parties exposées

    la consommation ce n'est pas que la tension, mais aussi le courant qui est nécessaire. Quelle est la valeur de vos résistances?


    Je ne serais pas modifier mon programme pour modifier individuellement le threshold de chaque entrée
    ce n'est pas vous qui avez écrit ce code alors?

  9. #9
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut
    Bonjour,

    J'avais écris un programme à l'aide de forums, fablab etc mais j'avais beaucoup d'erreurs et il me manquait un élément pour que ce soit fluide et une âme charitable m'a refait le programme suivant m'a demande.

    Les résistances sont de 220 ohm normalement, c'est marron/noir/noir/rouge/ rouge.?

    D'accord je vais mettre de la gaine voir ce que ca donne.

    Merci

  10. #10
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut
    Bonjour,

    Citation Envoyé par JPP3939 Voir le message
    ...Les résistances sont de 220 ohm normalement, c'est marron/noir/noir/rouge/ rouge...
    220 Ohm c'est des anneaux Rouge (->'2') Rouge (->'2') Marron (->1 '0'). Les anneaux ne sont pas jointifs, on peut donc voir la couleur du corps de la résistance entre deux anneaux mais cela ne compte pas. Un dernier anneau qui se trouve un peu plus loin, souvent argent (10%) ou or (5%), donne la précision et accessoirement le sens de lecture.

    Salutations

  11. #11
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    Citation Envoyé par JPP3939 Voir le message
    Les résistances sont de 220 ohm normalement, c'est marron/noir/noir/rouge/ rouge.?

    ce que vous appelez marron c'est sans doute OR et sur une résistance bleue (5%) ou vraiment marron (1%)

    Vous lisez "dans le mauvais sens", ce bandeau en or/marron c'est la tolérance. On aurait tendance à lire dans l'autre sens
    rouge rouge noir noir avec tolérance Or

    Nom : 1.png
Affichages : 188
Taille : 126,7 Ko

    ou alors rouge rouge marron et si elle est en 1% marron pour la tolérance
    Nom : 3.png
Affichages : 192
Taille : 124,1 Ko

  12. #12
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut Hardware is hard
    Bonjour,

    Un multimètre faciliterait les vérifications. Il n'est pas nécessaire qu'il soit couteux mais je conseillerais cependant un appareil à choix de gamme automatique : plus simple pour les débutants et les autres, et plus fiable dans les débuts de gamme (rotacteur central moins sollicité).

    Comme il y a une seule led en défaut, il y a aussi la technique de permutation de celle-ci avec une qui marche. Normalement le problème devrait rester sur la même sortie donc changer de Led. Une led qui reste allumée ne suppose pas de problème de sortie. Si ce n'est pas le cas c'est que cette led n'est pas (ou pire, pas seulement) sur la sortie supposée mais sur une tension constante (alimentation ?).

    Si le défaut permute avec la permutation des leds, c'est vraisemblablement que le défaut est en entrée sur une touche sensitive qui n'est pas si isolée qu'elle le devrait.

    Après avoir remis les leds dans l'ordre initial, il est possible de permuter une entrée qui marche avec celle qui ne fonctionne pas. Si le dysfonctionnement permute c'est bien l'entrée sensitive qui est en défaut. Remettre dans l'ordre et remplacer le câblage sensitif en défaut par un système temporaire très réduit (juste pour test). Si ça marche il est temps de regarder le câblage initial sans le reconnecter dans un premier temps à la carte. Il peut être en défaut (mal isolé) mais aussi trop long et bénéficier de couplages inopportuns. Le premier défaut est facile à tester avec un multimètre en ohmmètre qui doit faire apparaître des résistances à la masse et à l'alimentation très élevées. Le second défaut est plus difficile à tester car il perturbe la dynamique du senseur et le multimètre sera inutile. Après l'avoir rebranché à la carte, on peut tenter de déplacer le câblage en espérant rompre les couplages éventuels. Ou refaire un câble propre.

    Ceci étant, comme Jay M l'a fait remarquer, il faut protéger tous ces câblages à nu. La gaine thermo est idéale mais elle risque de nécessiter ici de redémonter certaines connections pour l'insérer. A défaut, un ruban adhésif d'électricien peut suffire. Mais c'est moins propre (la colle bave toujours un peu) et moins pérenne.

    Salutations

  13. #13
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut
    Bonjour à tous.

    Du coup j'ai mi tout les câbles en gaine etc et j'ai ressoudé. J'ai allumé et je me suis rendu compte que certaine était plus réactive que d'autres lorsque je touchais et que pour mon réglage threshold ça devient compliqué parce qu'elles n'ont pas toutes besoin de la même intensité.

    Est ce qu'on pourrait me montrer comment faire dans le programme pour que je puisse régler l'intensité de chaque câbles séparément ?

    J'ai fais comme ca à la suite mais ca ne fonctionne pas : Je vais essayer encore mais c'est assez urgent je dois l'avoir fait ce week end :/ Dois-je changer de place la discussion?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (const int threshold ,(11,15,0) = 2245);
    (const int threshold ,(10,16,0) = 2245);
    (const int threshold ,(9,17,0) = 2245);
    (const int threshold ,(8,18,0) = 2245);
    (const int threshold ,(7,19,0) = 2245);
    (const int threshold ,(6,4,0)= 2245);
    (const int threshold ,(20,3,0) = 2245);
    (const int threshold ,(22,1,0) = 2245);
    (const int threshold ,(23,0,0) = 2245);
    Je vous remercie beaucoup

  14. #14
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 921
    Par défaut
    c'est tout simple, il suffit d'ajouter le seuil dans votre structure.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    struct {
      const byte ledPin;
      const byte touchPin;
      unsigned long t0;
      const int seuil;
      bool active;
    }
    systeme[] = {
      {2, 1, 0, 1700, false},
      {3, 15, 0, 1700, false},
      {5, 16, 0, 1700, false},
      {25, 4, 0, 1700, false},
      {6, 18, 0, 1700, false},
      {7, 19, 0, 1700, false},
      {8, 22, 0, 1700, false},
      {9, 23, 0, 1700, false},
      {11, 0, 0, 1700, false},
    };
     
    void setup() {
      Serial.begin(115200); Serial.println();
      for (auto & s : systeme) pinMode(s.ledPin, OUTPUT);
    }
     
    void loop() {
      for (auto & s : systeme) {
        // touch sensor
        if (touchRead(s.touchPin) > s.seuil) {
          s.t0 = millis();
          digitalWrite(s.ledPin, HIGH);
          s.active = true;
        }
     
        // timeout
        if (s.active && (millis() - s.t0 >= 900)) {
          digitalWrite(s.ledPin, LOW);
          s.active = false;
        }
      }
    }
    ici j'ai mis 1700 pour toutes les pins, mais libre à vous de mettre un seuil particulier à chacune des pins

Discussions similaires

  1. Allumer une led avec PIC32MX
    Par Elinux dans le forum MPLAB
    Réponses: 0
    Dernier message: 19/07/2018, 16h19
  2. Basculer l'état d'une Led avec boutons poussoirs
    Par Silk7499 dans le forum Arduino
    Réponses: 8
    Dernier message: 25/05/2016, 23h25
  3. Réponses: 0
    Dernier message: 25/04/2012, 18h35
  4. [XL-2010] Impossibilité d'ouvir un fichier (enregistré avec un bug sur une macro)
    Par statista dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2011, 17h44
  5. Réponses: 1
    Dernier message: 01/05/2010, 20h51

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