claudiusmarius

SonMoteurCamionAcceleration_ATtiny85_V01

May 18th, 2021
510
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.   // La présence de parasites sonores a souvent été mentionnés par les utilisateurs de DFPlayer Mini, ce montage et le code, les suppriment
  4.   // 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
  5.   // 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  
  6.   // réduits au maximum.
  7.   // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++    Claude DUFOURMONT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  8.   //
  9.   // ##################################################################### claude.dufourmont@laposte.net #############################################################################
  10.   //
  11.   // ///////////////////////////////////////////+++++++ YouTube : https://www.youtube.com/channel/UCvr9eb05lJow6N7m3SKqvNw +++++++////////////////////////////////////////////////////
  12.  
  13.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  14.  
  15.   #include "Arduino.h"
  16.   #include <SoftwareSerial.h>
  17.   #include "DFRobotDFPlayerMini.h"
  18.   #define TX 0
  19.   #define potPin A1
  20.  
  21.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  22.      
  23.    SoftwareSerial mySoftwareSerial(1,0); // RX, TX
  24.  
  25.   // Réaffectation des RX/TX pour ne pas avoir de problème lors du téléversement
  26.   // Seul le port TX du Nano est utilisé, le DFPlayer Mini, ne retournant rien dans cette configuration
  27.   // 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
  28.   // d'émetteur et collecteur relié au 3,3V de la Nano
  29.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  30.  
  31.   DFRobotDFPlayerMini myDFPlayer;
  32.  
  33.   byte volumeLevel = 0; //variable for holding volume level
  34.  
  35.   void setup()
  36.   {
  37.   mySoftwareSerial.begin(9600);
  38.   myDFPlayer.begin (mySoftwareSerial);
  39.   pinMode (TX, OUTPUT);
  40.  
  41.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  42.   // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++On sélectionne une piste et on la fait tourner en boucle++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  43.  
  44.   myDFPlayer.loop(6);                                     //---------------------------------------------------Sélection de la piste 6 et Lecture en boucle
  45.  
  46.   delay (1000);                                           //----------------------------------------------------------Tempo pour nécessaire à l'éxécution de la sélection de la piste
  47.   pinMode (TX, INPUT_PULLUP);                             //---------------------------------------------Une fois la piste sélectionnée, le port TX est positionné en haute impédance
  48.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  49.  
  50.   }
  51.  
  52.   void loop()
  53.   {
  54.   delay(5);
  55.   pinMode (TX, OUTPUT);                                     //----------------------------------------------------Le port TX est ouvert (positionné en sortie
  56.   volumeLevel = map(analogRead(potPin), 0, 1023, 15, 30);   //----------------------------------------------------Calibrage du niveau sonore en fonction de la valeur du potentiomètre
  57.   myDFPlayer.volume(volumeLevel);  
  58.  
  59.    // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  60.   // 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
  61.   // de 100ms) la lecture du signal PWM sera trop cadencée et l'effet recherché d'accélération ne sera pas atteint).
  62.   // du potentiomètre sera lu trop cadencé et l'effet voulu d'accélération ne sera pas atteint
  63.   delay(80);
  64.   // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  65.  
  66.  pinMode (TX, INPUT_PULLUP);                                //-------------------------------------------Une fois la valeur de volume lue, le port TX est positionné en haute impédance
  67.    
  68.  }
RAW Paste Data