bonjour,
J'ai comme une idée qu'on va te dire qu'on ne trouve pas ton code et que sans code cela va être dur de répondre.
Nb : le code entre balises code --> cf messages épinglés en tête de forum
Quel est le but du fading ? Modifier la luminosité de la led ?
Ton code ne peut pas fonctionner comme il est. Un analogWrite n'accepte que des valeurs de 0 à 1023. Donc 3520 et 3951 ça ne marche pas.
Ensuite, tu fais des boucles en faisant changer la valeur de ta variable fadeValue mais tu n'utilises pas cette valeur, donc rien ne va changer au niveau de la led.
Enfin, si tu veux faire changer la luminosité de la led, tu vas utiliser ce qu'on appelle le PWM. Cherche le tuto sur ce sujet du site openclassrooms. Il est bien fait, tu comprendras vite comment le mettre en oeuvre. Ta led doit être connectée à une pin qui supporte le PWM. Ça, ça dépend de ton Arduino. Vérifie selon ton modèle si la pin 9 est une pin PWM
pour faire varier la luminosité d'une LED, effectivement faire varier la valeur du duty cycle du PWM (donc sur une pin adéquate) avec une LED et résistance adaptée en série va faire briller plus ou moins la LED.
pour faire votre sirène 2 tons "SI" et "LA"', utilisez comme mentionné plus haut la fonction tone
Je n'ai pas l'habitude du tone, donc je ne sais pas si ceci va marcher, mais c'est un début :
int ledPin = 9;
int hp = 5;
#define LA 440
#define SI 494
void setup() {
pinMode (ledPin, OUTPUT);
pinMode (hp, OUTPUT);
}
void loop() {
tone (hp, LA, 250); // valeur 250 mise un peu au hasard...
for (int fadeValue = 0 ; fadeValue <= 250; fadeValue += 5) {
analogWrite(ledPin, fadeValue);
delay(10);
}
noTone(hp);
delay(200);
tone (hp, SI, 250);
analogWrite (ledPin, 0);
for (int fadeValue = 250 ; fadeValue >= 0; fadeValue -= 5) {
analogWrite(ledPin, fadeValue);
delay(10);
}
noTone(hp);
delay(200);
}
Il faut vérifier que la pin 9 est compatible du PWM. ça dépend du modèle de carte utilisée.
On most Arduino boards (those with the ATmega168 or ATmega328P), this function works on pins 3, 5, 6, 9, 10, and 11. On the Arduino Mega, it works on pins 2 - 13 and 44 - 46. Older Arduino boards with an ATmega8 only support analogWrite() on pins 9, 10, and 11.
pour évoluer, je bosse sur ce programme ou malheureusement je sèche.
Les LEDs clignotent bien mais aucun son ne sort du HP.
const int ledpin = 13; //résistance 220
const int ledpin1 = 12; // résistance 220
int hp = 5;
int noteDuration = 1000; #define LA 440 #define SI 494
void setup() {
pinMode(ledpin, OUTPUT); // la broche "13" est la sortie
pinMode(ledpin1, OUTPUT); // la broche "12" est la sortie
pinMode(hp, OUTPUT); // la broche "5" PWM est la sortie
Tu as omis le numéro de port du HP comme premier paramètre de la commande tone()
et, surtout, tu lui coupes le sifflet (noTone (hp) avant qu'il aie terminé!
Bonne musique et bonne journée
Cordialement
jpbbricole
tone(hp, LA, noteDuration); tone(hp, SI, noteDuration); //noTone (hp);
et, surtout, tu lui coupes le sifflet (noTone (hp) avant qu'il aie terminé!
en fait même avec noteDuration, le fait de rappeler une seconde fois tone() sur la même pin va aussi couper la note LA, donc on n'entendra que le SI (en enlevant le noTone() sinon chaque note durera que quelques dixièmes de micro-secondes)