OK, j'ai honte. Ce n'est pas le front montant mais le début de la sinus suivante. Pardon pour le dérangement
Bienvenue au Forum de discussion Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions!:
https://forum.bidouilleur.ca/index.php?action=signup Les demandes d'inscription sont révisées quotidiennement.
Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.
Voir les contributions Menu/*
DAC-MelangeR-TriSin-00.ino
Je ne comprends pas: je m'attendais à ce que les deux signaux soient successifs :
la formation de la sinus est interrompue dans son front montant par le triangle, puis reprend après, et le triangle attend.
Bref ça se fait au détriment de la sinus.
==========
*/
#include <math.h>
const int dacPin1 = 25; // DAC1
const int dacPin2 = 26; // DAC2
void setup() {
const char* adresseFichierSource = __FILE__; // tag du path de ce ficher source
Serial.println(adresseFichierSource);
// Initialisation du DAC
dacWrite(dacPin1, 0);
dacWrite(dacPin2, 0);
}
void loop() {
// Générer un signal sinusoïdal
for (int i = 0; i < 256; i++) {
// Calculer la valeur sinusoïdale (0-255)
int value = (int)(128 + 127 * sin(i * 2 * PI / 256));
dacWrite(dacPin1, value);
delay(1); // Ajuster la vitesse de génération
}
// Générer un signal triangulaire
for (int i = 0; i < 256; i++) {
dacWrite(dacPin2, i); // Montée
delayMicroseconds(100); // No delay / 500 Hz dac interne ESP32
}
for (int i = 255; i >= 0; i--) {
dacWrite(dacPin2, i); // Descente
delayMicroseconds(100);
}
}