/* 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;
}
}