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 de stabilité sur Arduino Nano


Sujet :

Arduino

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de stabilité sur Arduino Nano
    Bonjour,
    Dans un cadre associatif pour les enfants malades, j'automatise un cosplay Ironman.
    Le projet consiste à gérer l'ouverture de la visière d'un casque via 2 moteur sg90, 2 leds pour les yeux, le tout commandé par une télécommande RF433
    Nom : IMG_20210418_133626_petit.jpg
Affichages : 202
Taille : 250,0 Ko

    la séquence d'ouverture fonctionne parfaitement avec in contact sec.
    Lorsque je rajoute le récepteur RF, l'ouverture et la fermeture fonctionne aussi mais je constate un truc bizarre.
    Les moteurs vibrent légèrement et les leds clignotent aussi légèrement. Mais dès que je débranche mon récepteur, ces petites oscillations disparaissent... (voir vidéo : https://drive.google.com/file/d/1vqF...ew?usp=sharing)

    Actuellement le nano est alimenté via le port usb pour les tests via mon pc (j'ai essayé avec un chargeur de téléphone 2A, même problème), à terme le nano sera alimenté par une pile 9v rechargeable (j'ai besoin d'une autonomie de 6 à 8h max pour les visites en hôpital)

    Voici les récepteurs que j'utilise pour les tests (problème identique avec les 2)
    Nom : IMG_20210421_082909_petit.jpg
Affichages : 188
Taille : 74,8 Ko

    Le code nano :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #include <RCSwitch.h>
    RCSwitch mySwitch = RCSwitch();
    #include <Servo.h>
    Servo myservo;  // create servo object to control a servo
     
    #define INTERRUPTEUR 10
    #define OEILG 14
    #define OEILD 15
    bool memoInter=false;
    int bp1 = 0;            
    int bp1Mem = 0;         
    int ledOn = 1;          
     
    char str_BPH[]="278308";
    char str_BPB[]="278305";
    char str_BPS[]="278306";
    char str_reception[]="";
     
    void setup() {
      //Serial.begin(9600);
      myservo.attach(9);  // attaches the servo on pin 9 to the servo object
      myservo.write(0); 
      pinMode(INTERRUPTEUR, INPUT); //interupteur (D10)
      pinMode(OEILG, OUTPUT); //oeil 1 (A0)
      pinMode(OEILD, OUTPUT); //oeil 2 (A1)
      analogWrite(OEILG,0);
      analogWrite(OEILD,0);
      mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2
    }
     
     
    void loop() {
      // lit l'état actuel du bouton poussoir
      bp1 = digitalRead(INTERRUPTEUR);
      //reception RF
      if (mySwitch.available()) { 
        sprintf(str_reception,"%ld", mySwitch.getReceivedValue());
        if(strcmp(str_reception,str_BPH) == 0  || strcmp(str_reception,str_BPB) == 0 || strcmp(str_reception,str_BPS) == 0){
        bp1=1;
      }
      mySwitch.resetAvailable();
      }
      // compare l'état actuel du bouton poussoir à l'état précédent mémorisé
      if (bp1 != bp1Mem){
        // si l'état du bouton poussoir a changé
        // on mémorise l'état courant du bouton poussoir pour les prochains passages dans la boucle loop
        bp1Mem = bp1;
        // si ce nouvel état est passé à 1, on a donc un front montant.
        if (bp1 == 1) {
          //On change l'état de la variable de la led de 1 à 0 ou de 0 à 1
         ledOn = !ledOn;
          //Serial.println("ici");
         if (ledOn == 1) {
          analogWrite(OEILG,0);
          analogWrite(OEILD,0);
          myservo.write(0);
     
         }else{
          myservo.write(130);
          delay(800);
          analogWrite(OEILG,511);
          analogWrite(OEILD,511);
        }
       }
     
      }
    bp1=0;
    }

  2. #2
    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
    Ça ressemble à un soucis de puissance

    à terme le nano sera alimenté par une pile 9v rechargeable (j'ai besoin d'une autonomie de 6 à 8h max pour les visites en hôpital)
    Oubliez la pile 9V.... zero chance que ca fonctionne
    Cf https://riton-duino.blogspot.com/202...t-pile-9v.html

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Effectivement ça va coincer, je vais tester quand même par curiosité qua'd j'aurai le Matos.
    Merci pour votre aide.
    Pour la partie manque de puissance, j'ai fait le test avec une alim 12v/5v, pas de changement hormis qu'effectivement les leds ne clignotent plus.
    J'ai testé ensuite en remplaçant le nano par un arduino uno.
    Toujours pareil avec les moteurs... Ils tremblent du genre parkinson...
    Il y a un rapport avec l'interruption de la librairie rc switch j'ai l'impression.

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/10/2020, 19h29
  2. Petit problème de programmation sur arduino uno Wifi.
    Par Jeano81 dans le forum Arduino
    Réponses: 2
    Dernier message: 06/11/2017, 17h12
  3. Problème analogRead() sur arduino
    Par mahegate dans le forum Arduino
    Réponses: 8
    Dernier message: 25/05/2017, 13h49
  4. A propos de LED_BUILTIN sur Arduino Nano
    Par Chamac dans le forum Arduino
    Réponses: 10
    Dernier message: 10/01/2017, 11h59
  5. Problème de stabilité
    Par sebwets dans le forum CORBA
    Réponses: 2
    Dernier message: 16/10/2002, 14h05

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