Signal créneau + éxécution progamme

Bonjour,

étant amateur sur Arduino, j'aimerais savoir si c'est possible d'effectuer un quelconque programme (comportant des boucles if et de nombreuses delay), et de fournir indépendamment du programme un signal créneau.

Suis-je obligé d'utiliser une deuxième carte Arduino ?

Merci de votre réponse.

Bonjour,

Oui c'est possible :slight_smile:

Suis-je obligé d'utiliser une deuxième carte Arduino ?

Non

totoelb:
j'aimerais savoir si c'est possible d'effectuer un quelconque programme (comportant des boucles if et de nombreuses delay), et de fournir indépendamment du programme un signal créneau.

Je me permets de tempérer l'enthousiasme de mes camarades de récré, en tenant compte de ce qui est en gras dans ton message... C'est possible si tu te débarrasses de ces delays...

l'enthousiasme était 'rationnel' puisque les delays n'affectent qu'une génération 'software' de créneau, pas une génération matérielle (compteur; PWM, servo à 50%....)
Rien dans le 'cahier des charges' n'impose une production par soft du créneau !!
Rien non plus n'impose une fréquence au créneau
Le créneau est l'une des rares choses qu'un Arduino peut faire sans code récurrent , juste avec un code d'initialisation de hardware.

Il est sans doute possible d'utiliser un timer en mode CTC, encore faudrait-il en savoir plus sur ce signal: fréquence ? fixe ou variable?

Une fréquence fixe de 40kHz.

Et il est impossible de supprimer les delays car je suis censé afficher des valeurs.

Exemple de programme pour générer un signal à 40kHz avec le timer 2 avec une carte UNO

// sortie signal 40kHz sur OC2A (pin 11)
//
void setup()
{
  pinMode(11, OUTPUT);

  TCCR2A = _BV(COM2A0) | _BV(WGM21);
  TCCR2B = _BV(CS20);
  
  OCR2A = 199;
}

void loop() {
}

Je pense avoir trouvé quelque chose. En utilisant un timer 2:

void setup() {
pinMode(11, OUTPUT);
pinMode(3,OUTPUT);
TCCR2A=0;
TCCR2B=0;
TCCR2A=0b01010011;
TCCR2B=0b00001001;
OCR2A=199;
}

void loop() {
}

Oups, tu m'as devancé d'une petite minute :slight_smile:

Encore merci à tous pour vos réponses !