Bonjour,
J'ai un projet de création d'un robot qui au passage de personnes (mouvement) allume deux leds (ses yeux) et dit par exemple bonjour. J'ai réussi a créer le montage et à "bidouiller" un code. Le robot est opérationnel mais il y a un long temps d'initialisation (env. 1mn) avant qu'il fonctionne correctement. Pourriez-vous svp m'aider à améliorer ce code (en m'expliquant si possible pour que je comprenne mes erreurs). Merci par avance !
Voici le code (je vais réaliser un schéma du montage avec (je ne me souviens plus du nom désolé):
#include "SoftwareSerial.h"
#include <DFRobotDFPlayerMini.h>
#define PIR 2
#define LED_UN 5
#define LED_DEUX 6
SoftwareSerial mySoftwareSerial(9, 8); // TX, RX
DFRobotDFPlayerMini myDFPlayer ;
void setup() {
pinMode(PIR, INPUT);
pinMode(LED_UN, OUTPUT);
pinMode(LED_DEUX, OUTPUT);
mySoftwareSerial.begin(9600) ;
myDFPlayer.begin(mySoftwareSerial) ;
}
void loop() {
int pirVal = digitalRead(PIR);
if (pirVal == HIGH) {
digitalWrite(LED_UN, HIGH);
digitalWrite(LED_DEUX, HIGH);
delay(100);
// Joue la premiere chanson de la carte SD pendant 10 secondes
myDFPlayer.setTimeOut(500) ;
myDFPlayer.volume(30) ; // fixe le son à 10 (maximum)
myDFPlayer.play(1); // joue le premier fichier son.
delay(10000);
}
A première vue niveau code, je ne voit rien de spécial, mais je n'ai encore pas pratiqué la lib DFRobotDFPlayerMini.
Je dirais déjà pour identifier la cause du soucis, de mettre des traces pour cerner d'où viendrait la lenteur.
Est-ce l'initialisation de la lib avec myDFPlayer.begin qui prendrait du temps ?
Une trace avant, une trace après.... ca peut aider.
Tu peux aussi utiliser la fonction millis() pour mesurer le temps dans ton programme.
Une fois le programme démarré, les autres détection sont-elles "rapides" ? (en gros, la détection du mouvement est-elle rapide une fois le programme démarré)
Bonjour, et merci pour la réponse. Après la minute d'"initialisation" tout fonctionne très bien, la détection est instantanée et le son aussi. Par contre je ne sais pas comment mettre des traces. Comment faire stp ?