oui je voie ça justement
Donc j'ai tous repris les code d'origine et je me suis apercu deja que les mise a jour sur Arduino ma fait un conflits de version sur ServoEasing.h que j'ai remis en v2.3.4 comme précédemment
Suite a ca j'ai fait plus simple
- DFplayer sur Arduino nano
NANO - et Fonction leds et servo ( T-800 Eye Modification) sur Arduino Uno
UNO
Ma question est : Normalement on peu relier les 2 carte ensemble ?
sinon avec une double prise USB comme ceci c'est possible aussi ?
![]()
Fusionner deux code n'est pas très compliqué ! Doubler les cartes plutôt que fusionner c'est 'violent'.
Si tu as tes deux codes séparé, qui fonctionnent sans erreur, leur fusion se fera a priori assez simplement.
Relier deux cartes : avoir une alimentation commune, ou que les deux cartes communiquent l'une avec l'autre ?
(si deuxieme réponse, la fusion de code pour une seule carte restera plus simple je pense).
Pour l'alimentation dès le moment ou le voltage d'alimentation respecte les contraintes de chacune des cartes et que l'alimentation est suffisament puissante, aucune problème pour avoir une alimentation commune
Oui je suis bien d'accord que fusionner c’est le plus simple enfin je suis novice et j’ai essayer mais je doit pas être doué mais je suis du genre a persisté donc je réessayerai
La 2 ème solutions est faisable aussi donc je verrai ça je vous tien au news
Merci
J'ai refait le code en compilant comme expliquer sans rien toucher mais des erreurs
Es-que je m’y suis bien pris .
![]()
#include "DFRobotDFPlayerMini.h"
#include <Servo.h> // Tools -> Manage Libraries...
#include <ServoEasing.h> // ServoEasing v2.3.4
#include <AsyncTimer.h> // AsyncTimer v2.2.0
#include <jled.h> // JLed v4.8.0
//
// Eye LED settings...
//
#define LED_A 5
#define LED_B 6
#define LED_C 7
#define FADE_ON 125
#define FADE_ON_WAIT 500
#define FLICKER_TIME 2500
#define EYES_ON_WAIT 500
#define FADE_OFF 1500
#define FADE_OFF_WAIT 2500
//
// Eye Servo settings...
//
#define EYE_SERVO_A 9
#define EYE_SERVO_B 10
#define EYE_SERVO_C 11
#define EYE_SPEED 150
#define EYE_MIN 20
#define EYE_MAX 160
#define EYE_CENTER 90
#define EYE_INTERVAL 900
//
// Random eye movement...
//
AsyncTimer t;
ServoEasing eyeServoA;
ServoEasing eyeServoB;
ServoEasing eyeServoC;
unsigned short eyeTimer;
unsigned short scanTimer;
bool eyeMoveA = true;
bool eyeMoveB = true;
bool eyeMoveC = true;
//
// Eye flickering & fading movement.
//
JLed ledsA[] = {
JLed(LED_A).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_A).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_A).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqA = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsA);
auto ledA = JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
JLed ledsB[] = {
JLed(LED_B).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_B).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_B).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqB = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsB);
auto ledB = JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
//
// Generate variation for range -> range * 2
//
int vary(int range, int v = 11) {
return range + random(v) * range / v;
}
//
// Change JLed timings so each flicker is independent.
//
void retime(JLed (&leds)[3], JLed &led) {
leds[0].FadeOn(FADE_ON).DelayAfter(vary(FADE_ON_WAIT));
leds[1].Candle(6,100,vary(FLICKER_TIME));
leds[2].On().DelayAfter(vary(EYES_ON_WAIT));
led.FadeOff(FADE_OFF).DelayAfter(vary(FADE_OFF_WAIT));
}
//
// Random eye movement.
//
void moveEyes() {
if(eyeMoveA) {
eyeServoA.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
if(eyeMoveB) {
eyeServoB.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
}
//
// Scan eyes back and forth.
//
void scanEyes() {
eyeServoC.startEaseTo(eyeMoveC?EYE_MIN:EYE_MAX);
eyeMoveC = !eyeMoveC;
}
//
// Standard setup function.
//
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
void setup() {
void playMp3Folder(int fileNumber);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(23);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
delay(41000);
Serial.begin(9600); // For debugging.
randomSeed(analogRead(0)); // Init random number generator.
eyeServoA.attach(EYE_SERVO_A); // Init eyes.
eyeServoA.write(EYE_CENTER);
eyeServoA.setSpeed(EYE_SPEED);
eyeServoB.attach(EYE_SERVO_B);
eyeServoB.write(EYE_CENTER);
eyeServoB.setSpeed(EYE_SPEED);
eyeServoC.attach(EYE_SERVO_C);
eyeServoC.write(EYE_CENTER);
eyeServoC.setSpeed(EYE_SPEED / 2); // Run slower is scanning mode.
pinMode(LED_C, OUTPUT); // Make Led C constantly on (for scanning mode).
digitalWrite(LED_C, HIGH);
t.setup();
eyeTimer = t.setInterval(moveEyes, EYE_INTERVAL);
scanTimer= t.setInterval(scanEyes, EYE_INTERVAL * 5);
}
//
// Standard loop.
//
void loop() {
// Play the first MP3 file on the SD card
player.play(1);
delay(40000);
t.handle();
if(!seqA.Update()) {
eyeMoveA = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledA.Update()) {
retime(ledsA, ledA);
seqA.Reset();
ledA.Reset();
eyeMoveA = true; // Restart eye movement for next eye flickering sequence.
}
}
if(!seqB.Update()) {
eyeMoveB = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledB.Update()) {
retime(ledsB, ledB);
seqB.Reset();
ledB.Reset();
eyeMoveB = true; // Restart eye movement for next eye flickering sequence.
}
}
}
Est-ce que tu as le code des mouvements des yeux (led / servo) qui fonctionne seul (que tu arrive a compiler sans erreur) ?
Oui celui-là
/**
* @file t800-eyes.ino
* @author John Scott
* @brief Terminator T-800 Flickering & Fading Eyes.
* @version 1.0
* @date 2022-01-10
*
* @copyright Copyright (c) 2022 John Scott
*
*/
#include <Servo.h> // Tools -> Manage Libraries...
#include <ServoEasing.h> // ServoEasing v2.3.4
#include <AsyncTimer.h> // AsyncTimer v2.2.0
#include <jled.h> // JLed v4.8.0
//
// Eye LED settings...
//
#define LED_A 5
#define LED_B 6
#define LED_C 7
#define FADE_ON 125
#define FADE_ON_WAIT 500
#define FLICKER_TIME 2500
#define EYES_ON_WAIT 500
#define FADE_OFF 1500
#define FADE_OFF_WAIT 2500
//
// Eye Servo settings...
//
#define EYE_SERVO_A 9
#define EYE_SERVO_B 10
#define EYE_SERVO_C 11
#define EYE_SPEED 150
#define EYE_MIN 20
#define EYE_MAX 160
#define EYE_CENTER 90
#define EYE_INTERVAL 900
//
// Random eye movement...
//
AsyncTimer t;
ServoEasing eyeServoA;
ServoEasing eyeServoB;
ServoEasing eyeServoC;
unsigned short eyeTimer;
unsigned short scanTimer;
bool eyeMoveA = true;
bool eyeMoveB = true;
bool eyeMoveC = true;
//
// Eye flickering & fading movement.
//
JLed ledsA[] = {
JLed(LED_A).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_A).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_A).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqA = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsA);
auto ledA = JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
JLed ledsB[] = {
JLed(LED_B).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_B).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_B).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqB = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsB);
auto ledB = JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
//
// Generate variation for range -> range * 2
//
int vary(int range, int v = 11) {
return range + random(v) * range / v;
}
//
// Change JLed timings so each flicker is independent.
//
void retime(JLed (&leds)[3], JLed &led) {
leds[0].FadeOn(FADE_ON).DelayAfter(vary(FADE_ON_WAIT));
leds[1].Candle(6,100,vary(FLICKER_TIME));
leds[2].On().DelayAfter(vary(EYES_ON_WAIT));
led.FadeOff(FADE_OFF).DelayAfter(vary(FADE_OFF_WAIT));
}
//
// Random eye movement.
//
void moveEyes() {
if(eyeMoveA) {
eyeServoA.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
if(eyeMoveB) {
eyeServoB.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
}
//
// Scan eyes back and forth.
//
void scanEyes() {
eyeServoC.startEaseTo(eyeMoveC?EYE_MIN:EYE_MAX);
eyeMoveC = !eyeMoveC;
}
//
// Standard setup function.
//
void setup() {
Serial.begin(9600); // For debugging.
randomSeed(analogRead(0)); // Init random number generator.
eyeServoA.attach(EYE_SERVO_A); // Init eyes.
eyeServoA.write(EYE_CENTER);
eyeServoA.setSpeed(EYE_SPEED);
eyeServoB.attach(EYE_SERVO_B);
eyeServoB.write(EYE_CENTER);
eyeServoB.setSpeed(EYE_SPEED);
eyeServoC.attach(EYE_SERVO_C);
eyeServoC.write(EYE_CENTER);
eyeServoC.setSpeed(EYE_SPEED / 2); // Run slower is scanning mode.
pinMode(LED_C, OUTPUT); // Make Led C constantly on (for scanning mode).
digitalWrite(LED_C, HIGH);
t.setup();
eyeTimer = t.setInterval(moveEyes, EYE_INTERVAL);
scanTimer= t.setInterval(scanEyes, EYE_INTERVAL * 5);
}
//
// Standard loop.
//
void loop() {
t.handle();
if(!seqA.Update()) {
eyeMoveA = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledA.Update()) {
retime(ledsA, ledA);
seqA.Reset();
ledA.Reset();
eyeMoveA = true; // Restart eye movement for next eye flickering sequence.
}
}
if(!seqB.Update()) {
eyeMoveB = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledB.Update()) {
retime(ledsB, ledB);
seqB.Reset();
ledB.Reset();
eyeMoveB = true; // Restart eye movement for next eye flickering sequence.
}
}
}
Dans le setup(), tu as une "}" en trop, celle au-dessus du delay() ferme le setup.
En la supprimant sa devrait être ok
// Set volume to maximum (0 to 30).
player.volume(23);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
} <===== En trop
delay(41000);
Serial.begin(9600); // For debugging.
randomSeed(analogRead(0)); // Init random number generator.
Merci ![]()
Si tu mets le delay dans le setup, il faudra remettre aussi la commande de lecture de la musique dans le setup (plutot que dans la loop() comme je t'avais dis).
(je n'ai pas compris si des animations ou led etait lancées dans le setup)
Ok pour plus de détail que j'ai mis au début du topic
Les 2 codes sont pour réaliser ce projet
T-800 Eye Modification
Moi de mon coté je dispose de :
- Les broches 5, 6 et 7 contrôlent les LED. Les broches 5 et 6 passent par la mise sous tension, le scintillement et la disparition. Ils fonctionnent sur des cycles aléatoires indépendants. La broche 7 est toujours allumée.
- Pour l'avant 2 Leds bleu (luminosité laser, comme sur le socle de la vidéo)
- Pour l’arrière 2 Leds Rouge et Orange " (luminosité Explosion, Idem)
- Pour la tête 2 Leds Rouge "fixe" (pour les yeux)
- Les broches 9, 10 et 11 contrôlent les servos. Les broches 9 et 10 se déplacent de manière aléatoire vers la gauche et vers la droite en synchronisation avec le scintillement des LED (les broches 9 + 5 et 6 + 10 sont synchronisées). La broche 11 scanne à plusieurs reprises à gauche et à droite.
- 1 Micro Servo (pour le mouvement de la tête de gauche a droite)
Voili voilou
Je reste a votre disposition ![]()
Comme ceci ?
#include <SoftwareSerial.h>
#include "DFRobotDFPlayerMini.h"
#include <Servo.h> // Tools -> Manage Libraries...
#include <ServoEasing.h> // ServoEasing v2.3.4
#include <AsyncTimer.h> // AsyncTimer v2.2.0
#include <jled.h> // JLed v4.8.0
//
// Eye LED settings...
//
#define LED_A 5
#define LED_B 6
#define LED_C 7
#define FADE_ON 125
#define FADE_ON_WAIT 500
#define FLICKER_TIME 2500
#define EYES_ON_WAIT 500
#define FADE_OFF 1500
#define FADE_OFF_WAIT 2500
//
// Eye Servo settings...
//
#define EYE_SERVO_A 9
#define EYE_SERVO_B 10
#define EYE_SERVO_C 11
#define EYE_SPEED 150
#define EYE_MIN 20
#define EYE_MAX 160
#define EYE_CENTER 90
#define EYE_INTERVAL 900
//
// Random eye movement...
//
AsyncTimer t;
ServoEasing eyeServoA;
ServoEasing eyeServoB;
ServoEasing eyeServoC;
unsigned short eyeTimer;
unsigned short scanTimer;
bool eyeMoveA = true;
bool eyeMoveB = true;
bool eyeMoveC = true;
//
// Eye flickering & fading movement.
//
JLed ledsA[] = {
JLed(LED_A).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_A).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_A).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqA = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsA);
auto ledA = JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
JLed ledsB[] = {
JLed(LED_B).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_B).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_B).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqB = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsB);
auto ledB = JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
//
// Generate variation for range -> range * 2
//
int vary(int range, int v = 11) {
return range + random(v) * range / v;
}
//
// Change JLed timings so each flicker is independent.
//
void retime(JLed (&leds)[3], JLed &led) {
leds[0].FadeOn(FADE_ON).DelayAfter(vary(FADE_ON_WAIT));
leds[1].Candle(6,100,vary(FLICKER_TIME));
leds[2].On().DelayAfter(vary(EYES_ON_WAIT));
led.FadeOff(FADE_OFF).DelayAfter(vary(FADE_OFF_WAIT));
}
//
// Random eye movement.
//
void moveEyes() {
if(eyeMoveA) {
eyeServoA.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
if(eyeMoveB) {
eyeServoB.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
}
//
// Scan eyes back and forth.
//
void scanEyes() {
eyeServoC.startEaseTo(eyeMoveC?EYE_MIN:EYE_MAX);
eyeMoveC = !eyeMoveC;
}
//
// Standard setup function.
//
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
void setup() {
// Play the first MP3 file on the SD card
player.play(1);
delay(40000);
void playMp3Folder(int fileNumber);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(23);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}
delay(41000);
Serial.begin(9600); // For debugging.
randomSeed(analogRead(0)); // Init random number generator.
eyeServoA.attach(EYE_SERVO_A); // Init eyes.
eyeServoA.write(EYE_CENTER);
eyeServoA.setSpeed(EYE_SPEED);
eyeServoB.attach(EYE_SERVO_B);
eyeServoB.write(EYE_CENTER);
eyeServoB.setSpeed(EYE_SPEED);
eyeServoC.attach(EYE_SERVO_C);
eyeServoC.write(EYE_CENTER);
eyeServoC.setSpeed(EYE_SPEED / 2); // Run slower is scanning mode.
pinMode(LED_C, OUTPUT); // Make Led C constantly on (for scanning mode).
digitalWrite(LED_C, HIGH);
t.setup();
eyeTimer = t.setInterval(moveEyes, EYE_INTERVAL);
scanTimer= t.setInterval(scanEyes, EYE_INTERVAL * 5);
}
//
// Standard loop.
//
void loop() {
t.handle();
if(!seqA.Update()) {
eyeMoveA = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledA.Update()) {
retime(ledsA, ledA);
seqA.Reset();
ledA.Reset();
eyeMoveA = true; // Restart eye movement for next eye flickering sequence.
}
}
if(!seqB.Update()) {
eyeMoveB = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledB.Update()) {
retime(ledsB, ledB);
seqB.Reset();
ledB.Reset();
eyeMoveB = true; // Restart eye movement for next eye flickering sequence.
}
}
}
et j'ai toujours pas compris cette erreur
exit status 1
expected constructor, destructor, or type conversion before '(' token
Elle est toujours présente la "}" en trop, non ?
Oui oups la maintenant plu d’erreur
merci
#include <SoftwareSerial.h>
#include "DFRobotDFPlayerMini.h"
#include <Servo.h> // Tools -> Manage Libraries...
#include <ServoEasing.h> // ServoEasing v2.3.4
#include <AsyncTimer.h> // AsyncTimer v2.2.0
#include <jled.h> // JLed v4.8.0
//
// Eye LED settings...
//
#define LED_A 5
#define LED_B 6
#define LED_C 7
#define FADE_ON 125
#define FADE_ON_WAIT 500
#define FLICKER_TIME 2500
#define EYES_ON_WAIT 500
#define FADE_OFF 1500
#define FADE_OFF_WAIT 2500
//
// Eye Servo settings...
//
#define EYE_SERVO_A 9
#define EYE_SERVO_B 10
#define EYE_SERVO_C 11
#define EYE_SPEED 150
#define EYE_MIN 20
#define EYE_MAX 160
#define EYE_CENTER 90
#define EYE_INTERVAL 900
//
// Random eye movement...
//
AsyncTimer t;
ServoEasing eyeServoA;
ServoEasing eyeServoB;
ServoEasing eyeServoC;
unsigned short eyeTimer;
unsigned short scanTimer;
bool eyeMoveA = true;
bool eyeMoveB = true;
bool eyeMoveC = true;
//
// Eye flickering & fading movement.
//
JLed ledsA[] = {
JLed(LED_A).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_A).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_A).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqA = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsA);
auto ledA = JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
JLed ledsB[] = {
JLed(LED_B).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_B).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_B).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqB = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsB);
auto ledB = JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
//
// Generate variation for range -> range * 2
//
int vary(int range, int v = 11) {
return range + random(v) * range / v;
}
//
// Change JLed timings so each flicker is independent.
//
void retime(JLed (&leds)[3], JLed &led) {
leds[0].FadeOn(FADE_ON).DelayAfter(vary(FADE_ON_WAIT));
leds[1].Candle(6,100,vary(FLICKER_TIME));
leds[2].On().DelayAfter(vary(EYES_ON_WAIT));
led.FadeOff(FADE_OFF).DelayAfter(vary(FADE_OFF_WAIT));
}
//
// Random eye movement.
//
void moveEyes() {
if(eyeMoveA) {
eyeServoA.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
if(eyeMoveB) {
eyeServoB.startEaseTo(random(EYE_MIN, EYE_MAX+1));
}
}
//
// Scan eyes back and forth.
//
void scanEyes() {
eyeServoC.startEaseTo(eyeMoveC?EYE_MIN:EYE_MAX);
eyeMoveC = !eyeMoveC;
}
//
// Standard setup function.
//
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
void setup() {
// Play the first MP3 file on the SD card
player.play(1);
delay(40000);
void playMp3Folder(int fileNumber);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(23);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
delay(41000);
Serial.begin(9600); // For debugging.
randomSeed(analogRead(0)); // Init random number generator.
eyeServoA.attach(EYE_SERVO_A); // Init eyes.
eyeServoA.write(EYE_CENTER);
eyeServoA.setSpeed(EYE_SPEED);
eyeServoB.attach(EYE_SERVO_B);
eyeServoB.write(EYE_CENTER);
eyeServoB.setSpeed(EYE_SPEED);
eyeServoC.attach(EYE_SERVO_C);
eyeServoC.write(EYE_CENTER);
eyeServoC.setSpeed(EYE_SPEED / 2); // Run slower is scanning mode.
pinMode(LED_C, OUTPUT); // Make Led C constantly on (for scanning mode).
digitalWrite(LED_C, HIGH);
t.setup();
eyeTimer = t.setInterval(moveEyes, EYE_INTERVAL);
scanTimer= t.setInterval(scanEyes, EYE_INTERVAL * 5);
}
//
// Standard loop.
//
void loop() {
t.handle();
if(!seqA.Update()) {
eyeMoveA = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledA.Update()) {
retime(ledsA, ledA);
seqA.Reset();
ledA.Reset();
eyeMoveA = true; // Restart eye movement for next eye flickering sequence.
}
}
if(!seqB.Update()) {
eyeMoveB = false; // Stop random eye movement when sequence ends and then we fade off.
if(!ledB.Update()) {
retime(ledsB, ledB);
seqB.Reset();
ledB.Reset();
eyeMoveB = true; // Restart eye movement for next eye flickering sequence.
}
}
}
il manque plu qu'a tester en réel ^^
Donc Conclusion rien ne marche j'ai passer la journée dessus mais rien le code led et servo seul marche mais la compilation ne ce lance pas
Je ne comprend plus la.
Ton dernier code posté compile bien chez moi.
Tu n'aurais pas mis à jour les librairies utilisée ? (j'avais des erreurs de compilation avec ton code en etant sur les dernières version de lib, je suis repasser sur les version indiqué dans le code et sa compilé ensuite :
ServoEasing v2.3.4
AsyncTimer v2.2.0
JLed v4.8.0
malgré les changements de version correctement installer toujours rien et les branchement son OK
void setup() {
// Play the first MP3 file on the SD card
player.play(1);
delay(40000);
Sa devrait être en debut de void loop() {
Ton player doit être dispo qu'après :
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
(avant la connexion avec n'est pas initialisé)
il y a du mieux, mais le son du debut est en boucle et j'ai pas compris
après
// Play the first MP3 file on the SD card
player.play(1);
delay(40000);
?
