/* Sur la broche GPIO 25 de l'ESP32, 
production d'un sinus dont l'amplitude
 et la fréquence sont contrôlés par des 
 potentiomètres Plus d'infos: 
 https://electroniqueamateur.blogspot.com/2019/09/esp32-production-dun-signal-analogique.html*/ 
 const int potAmplitude = 33; 
 // potentiomètre à GPIO 33 pour régler l'amplitudeconst 
 int potFrequence = 32; // potentiomètre à GPIO 32 pour régler la fréquence 
 unsigned long dernierTemps;
 int intervalle; //nombre de microsecondes entre deux changements de valeurs consécutifs
 int compteur = 0; 
 void setup() { 
  dernierTemps = micros();
  } 
  void loop() { 
    unsigned long nouveauTemps = micros(); 
    intervalle = analogRead(potFrequence) / 20; 
    if ((nouveauTemps - dernierTemps) >= intervalle) { 
      dacWrite(25, 128 + analogRead(potAmplitude) / 32 * sin(2 * PI * compteur / 255.0)); 
      compteur++; 
      if (compteur == 256) { 
        compteur = 0; 
} 
dernierTemps = nouveauTemps; 
}
}