Forum Électro-Bidouilleur

Sections => Dépannage d'Électronique et d'Informatique => Discussion démarrée par: bohin922 le Août 05, 2024, 06:20:12 PM

Titre: Signal oscillo non attendu [RESOLU]
Posté par: bohin922 le Août 05, 2024, 06:20:12 PM
Bonjour à tous, Je viens d'acheter mon premier oscillo (Owon SDS1102). Je m'amuse avec les DAC d'un ESP32 que j'ai flashé avec ce script dont j'attendais en sortie, sur deux voies, l'alternance entre une sinus et un triangle. Or à ma grande surprise la sinus est interrompue par le triangle au milieu du front montant. Pourquoi ?

Merci d'avance ;)


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




 
}
Titre: Re : Signal oscillo non attendu
Posté par: bohin922 le Août 05, 2024, 08:56:53 PM
OK, j'ai honte. Ce n'est pas le front montant mais le début de la sinus suivante. Pardon pour le dérangement