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 :

Problème sur entrée Arduino Mega 2560


Sujet :

Arduino

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2018
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Problème sur entrée Arduino Mega 2560
    Bonjour,

    Je suis entrain de faire un programme permettant de faire un compteur de vélo.
    J'ai une carte Arduino Mega 2560 équipée d'une carte Bluetooth.

    Le programme dans l'Arduino est à la fin du message.

    Mon soucis c'est que lorsque je met un cordon Mâle / Mâle dans la prise 53 sans rien derrière mon entrée s'enclenche seule.

    Encore plus fort lorsque je passe le doigt au dessus de l'entrée (53) déclarée dans le programme, l'entrée s'active.

    Dans le programme j'ai mis un delay(50) du coup l'entrée s'active à chaque lancement du programme je pense.

    Voici le programme :

    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
    const int buttonPin = 53;     // the number of the pushbutton pin
    const int ledPin =  13;      // the number of the LED pin
     
    // variables will change:
    int buttonState = 0;         // variable for reading the pushbutton status
     
    void setup() {
      // initialize the LED pin as an output:
      pinMode(ledPin, OUTPUT);
      // initialize the pushbutton pin as an input:
      pinMode(buttonPin, INPUT);
     
      Serial.begin(9600);  
    }
     
    void loop() {
      // read the state of the pushbutton value:
      buttonState = digitalRead(buttonPin);
     
      // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
      if (buttonState == HIGH) {
        // turn LED on:
        digitalWrite(ledPin, HIGH);
        Serial.println("1");
        delay(650);
      } else {
        // turn LED off:
        digitalWrite(ledPin, LOW);
      }
    }
    Merci d'avance pour votre aide.

  2. #2
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 75
    Points : 289
    Points
    289
    Par défaut
    Bonjour !

    Un fil en l'air se comporte comme une antenne : il capte un peu de tout.

    Avec les circuits électriques domestiques, les transformateurs haute tension, bref tout ce qui rayonne, l'entrée peut voir toutes sortes de signaux non désirés.
    De même, nos mains portent de l'électricité statique qui peut influencer les circuits électriques.

    La solution consiste bien souvent à relier l'entrée à la masse quand elle n'est pas utilisée.

    Bon courage pour votre projet !

  3. #3
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    Et si l'entrée est tout le temps utilisée par le programme, il faut placer une résistance de tirage (pullup ou pulldown) afin que l'entrée ne soit pas en l'air. Grâce à une de ces résistances l'entrée sera, en l'absence de signal, respectivement soit à l'état haut ou à l'état bas.

    Les microcontrôleurs intégrent ces résistances, il suffit de les activer dans le soft.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    avec Arduino tu peux activer une résistance de pull-up interne sur ton entrée avec cette instruction
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    pinMode(buttonPin, INPUT_PULLUP);
    Il n'y a pas de pull-down interne.

Discussions similaires

  1. [Autre micro] Système Arduino MEGA 2560 sur afficheur NEXTION
    Par tophe44 dans le forum Embarqué
    Réponses: 6
    Dernier message: 03/02/2018, 21h39
  2. Problème de compilation arduino mega 2560
    Par patoune08 dans le forum Arduino
    Réponses: 2
    Dernier message: 23/12/2017, 00h10
  3. Erreur arduino mega 2560
    Par arielus3 dans le forum Arduino
    Réponses: 23
    Dernier message: 12/04/2017, 10h22
  4. Question carte Arduino Mega 2560
    Par Invité dans le forum Arduino
    Réponses: 5
    Dernier message: 17/03/2016, 01h32

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