Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- // Commande de DFPlayer Mini à partir d'un ATtny85 - Horloge interne 8MHz (ne pas oublier de graver la séquence)
- // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fonction ACCELERATION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
- // La présence de parasites sonores a souvent été mentionnés par les utilisateurs de DFPlayer Mini, ce montage et le code, les suppriment
- // Attention le câblage doit être très soigné pour le Player, lorsque l'ampli est utilisé et que le player est monté sur breadboard, un condensateur de 330µF et un autre de 470nF sont
- // montés sur l'alimentation au plus prés du Player, les liaisons doivent être les plus courtes possibles, notamment par l'emploi de pinheaders strapps, les fils dupont doivent être
- // réduits au maximum.
- // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Claude DUFOURMONT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //
- // ##################################################################### claude.dufourmont@laposte.net #############################################################################
- //
- // ############################################################
- // Mon YouTube : # https://www.youtube.com/channel/UCvr9eb05lJow6N7m3SKqvNw #
- // ############################################################
- //
- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- #include "Arduino.h"
- #include <SoftwareSerial.h>
- #include "DFRobotDFPlayerMini.h"
- #define TX 0
- #define potPin A1
- #define BPStartStop 3
- #define MosfetGate 4
- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- SoftwareSerial mySoftwareSerial(1,0); // RX, TX
- // Réaffectation des RX/TX pour ne pas avoir de problème lors du téléversement
- // Seul le port TX du Nano est utilisé, le DFPlayer Mini, ne retournant rien dans cette configuration
- // La 1K branchée en série sur le port n'a pas été installée car inefficace, j'ai ajouté une zéner avec résistance pour écrêter le sihnal TX endessous du 5V d'alimentation
- // d'émetteur et collecteur relié au 3,3V de la Nano
- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- DFRobotDFPlayerMini myDFPlayer;
- byte volumeLevel = 0; //variable for holding volume level
- bool StateBPStartStop = 0;
- bool EnMarche = 0;
- void setup()
- {
- EnMarche = 1;
- mySoftwareSerial.begin(9600);
- myDFPlayer.begin (mySoftwareSerial);
- pinMode (TX, OUTPUT);
- pinMode (BPStartStop, INPUT_PULLUP);
- pinMode (MosfetGate, OUTPUT);
- volumeLevel = 8;
- myDFPlayer.play(7);
- delay (1240);
- myDFPlayer.loop(6);
- delay (150);
- pinMode (TX, INPUT_PULLUP);
- digitalWrite (MosfetGate, LOW);
- }
- void loop()
- {
- StateBPStartStop =digitalRead (BPStartStop );
- if (StateBPStartStop == LOW && EnMarche == 0)
- {
- digitalWrite (MosfetGate, HIGH);
- delay(5);
- }
- if (StateBPStartStop == LOW && EnMarche == 1)
- {
- digitalWrite (MosfetGate, LOW);
- delay(5);
- pinMode (TX, OUTPUT);
- myDFPlayer.volume(30);
- delay(5);
- myDFPlayer.disableLoopAll();
- myDFPlayer.play(11);
- pinMode (TX, INPUT_PULLUP);
- delay (1260);
- EnMarche = 0;
- delay(5);
- }
- delay(5);
- pinMode (TX, OUTPUT); //----------------------------------------------------Le port TX est ouvert (positionné en sortie
- volumeLevel = map(analogRead(potPin), 0, 1023, 15, 30); //----------------------------------------------------Calibrage du niveau sonore en fonction de la valeur du potentiomètre
- myDFPlayer.volume(volumeLevel);
- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- // La valeur de la tempo ci_dessous est tès importante : trop basse (en dessous de 80ms), les cliquetis via la chaine Tx vers Tx réapparaitront dans le HP), trop haute (au dessus
- // de 100ms) la lecture du signal PWM sera trop cadencée et l'effet recherché d'accélération ne sera pas atteint).
- // du potentiomètre sera lu trop cadencé et l'effet voulu d'accélération ne sera pas atteint
- delay(80);
- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- pinMode (TX, INPUT_PULLUP); //-------------------------------------------Une fois la valeur de volume lue, le port TX est positionné en haute impédance
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement