claudiusmarius

SonCamionDFPlayerMiniATtiny85

May 29th, 2021
1,022
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2.   // Commande de DFPlayer Mini à partir d'un ATtny85 - Horloge interne 8MHz (ne pas oublier de graver la séquence)
  3.   // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fonction ACCELERATION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  4.   // La présence de parasites sonores a souvent été mentionnés par les utilisateurs de DFPlayer Mini, ce montage et le code, les suppriment
  5.   // 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
  6.   // 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  
  7.   // réduits au maximum.
  8.   // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Claude DUFOURMONT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  9.   //
  10.   // ##################################################################### claude.dufourmont@laposte.net #############################################################################
  11.   //
  12.   //                                                              ############################################################
  13.   //                                             Mon YouTube :      # https://www.youtube.com/channel/UCvr9eb05lJow6N7m3SKqvNw #
  14.   //                                                              ############################################################
  15.   //
  16.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  17.  
  18.   #include "Arduino.h"
  19.   #include <SoftwareSerial.h>
  20.   #include "DFRobotDFPlayerMini.h"
  21.   #define TX 0
  22.   #define potPin A1
  23.  
  24.   #define BPStartStop 3
  25.   #define MosfetGate 4
  26.    
  27.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  28.      
  29.    SoftwareSerial mySoftwareSerial(1,0); // RX, TX
  30.  
  31.   // Réaffectation des RX/TX pour ne pas avoir de problème lors du téléversement
  32.   // Seul le port TX du Nano est utilisé, le DFPlayer Mini, ne retournant rien dans cette configuration
  33.   // 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
  34.   // d'émetteur et collecteur relié au 3,3V de la Nano
  35.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  36.  
  37.   DFRobotDFPlayerMini myDFPlayer;
  38.  
  39.   byte volumeLevel = 0; //variable for holding volume level
  40.   bool StateBPStartStop = 0;
  41.   bool EnMarche = 0;
  42.  
  43.   void setup()
  44.   {
  45.   EnMarche = 1;
  46.   mySoftwareSerial.begin(9600);
  47.   myDFPlayer.begin (mySoftwareSerial);
  48.   pinMode (TX, OUTPUT);
  49.   pinMode (BPStartStop, INPUT_PULLUP);
  50.   pinMode (MosfetGate, OUTPUT);
  51.  
  52.   volumeLevel = 8;
  53.  
  54.   myDFPlayer.play(7);                                    
  55.   delay (1240);
  56.  
  57.   myDFPlayer.loop(6);                                    
  58.   delay (150);                                          
  59.  
  60.   pinMode (TX, INPUT_PULLUP);
  61.   digitalWrite (MosfetGate, LOW);                        
  62.   }
  63.  
  64.   void loop()
  65.   {
  66.   StateBPStartStop =digitalRead (BPStartStop );
  67.  
  68.   if (StateBPStartStop == LOW && EnMarche == 0)
  69.   {
  70.   digitalWrite (MosfetGate, HIGH);
  71.   delay(5);
  72.   }
  73.  
  74.   if (StateBPStartStop == LOW && EnMarche == 1)
  75.   {
  76.   digitalWrite (MosfetGate, LOW);
  77.   delay(5);
  78.   pinMode (TX, OUTPUT);
  79.   myDFPlayer.volume(30);
  80.   delay(5);
  81.   myDFPlayer.disableLoopAll();
  82.   myDFPlayer.play(11);
  83.   pinMode (TX, INPUT_PULLUP);
  84.   delay (1260);
  85.   EnMarche = 0;
  86.   delay(5);
  87.   }
  88.  
  89.   delay(5);
  90.   pinMode (TX, OUTPUT);                                     //----------------------------------------------------Le port TX est ouvert (positionné en sortie
  91.   volumeLevel = map(analogRead(potPin), 0, 1023, 15, 30);   //----------------------------------------------------Calibrage du niveau sonore en fonction de la valeur du potentiomètre
  92.   myDFPlayer.volume(volumeLevel);  
  93.  
  94.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  95.   // 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
  96.   // de 100ms) la lecture du signal PWM sera trop cadencée et l'effet recherché d'accélération ne sera pas atteint).
  97.   // du potentiomètre sera lu trop cadencé et l'effet voulu d'accélération ne sera pas atteint
  98.  
  99.   delay(80);
  100.  
  101.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  102.  
  103.   pinMode (TX, INPUT_PULLUP);                                //-------------------------------------------Une fois la valeur de volume lue, le port TX est positionné en haute impédance
  104.    
  105.  }
RAW Paste Data