OK, j'ai honte. Ce n'est pas le front montant mais le début de la sinus suivante. Pardon pour le dérangement
Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.
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);
}
}