Nouvelles:

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.

Menu principal

Signal oscillo non attendu [RESOLU]

Démarré par bohin922, Août 05, 2024, 06:20:12 PM

« précédent - suivant »

bohin922

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




 
}

bohin922

OK, j'ai honte. Ce n'est pas le front montant mais le début de la sinus suivante. Pardon pour le dérangement