Bonsoir
je veux faire un petit montage tout simple et j'ai la mauvaise impression de mal m'y prendre .
Le but final de mon montage c'est d’émettre un signal à 40 kHz en continu , ou une trame constituée alternativement d'un signal à 40kHz pendant 50 ms et d'un mute de 50 ms. Le passage de l'un à l'autre se fait par appuis sur un bouton.
voila mon sketch :
const byte ledPin = 13;
const byte interruptPin = 3;
volatile byte state = LOW;
byte outputPin = 6;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING);
pinMode (outputPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, state);
if (state = HIGH) {
tone(outputPin, 40000);
}
else {
tone(outputPin, 40000, 50);
delay(50);
}
}
void blink() {
state = !state;
}
J'utilise la led sur d13 pour contrôler si le passage de continu à trame se fait.
Mon problème, c'est que j'ai toujours un signal continu. Mais si je supprime les parties if et else, le bouton joue bien son rôle et la led s'allume et s'éteint.
PS :J'utiise un nano. et j'ai pas mis de condo ou fait de pullup sur le bouton (normalement ouvert)
Olivier