Sur l'Arduino Esplora, basé sur la carte Leonardo, le support PWM de la broche 5 qui pilote le composant Rouge de la LED RGB ressemble à un timer avec la fonction tone
. Cela a pour conséquence involontaire de rendre le composant Rouge inutilisable après avoir joué un son car son comportement devient imprévisible.Comment arrêter la fonction de tonalité d'Arduino Esplora interférant avec la LED RGB
Voici une routine simple setup
montrant le problème:
void setup()
{
//analogWrite(5, 255);
//delay(1000);
analogWrite(5, 1);
delay(2000);
Esplora.tone(440);
delay(1000);
Esplora.noTone();
}
Ce tourne sur le canal rouge de la LED à son réglage le plus bas et le maintient pendant deux secondes, puis joue un ton de 440 Hz pour 1/4 ensuite, dès que la tonalité commence, au lieu de rester à faible luminosité, la LED s'éteint complètement.
Si vous décommentez les deux premières lignes, cette fois-ci lorsque la tonalité commence, au lieu de (incorrectement) désactiver comme précédemment, elle revient maintenant (tout aussi incorrectement) en pleine luminosité.
Je n'arrive pas à comprendre comment restaurer la fonctionnalité du composant Red (ou plus précisément PWM sur la broche 5) après avoir appelé tone
.
Je suppose que générer le bon HZ pour le son, tone
change les réglages du minuteur, ce qui affecte alors la fonction PWM. Si je peux trouver comment réinitialiser manuellement la minuterie pour soutenir correctement PWM pour la LED à nouveau, cela peut être la solution. Cependant, je suis nouveau pour Arduino, les timers et autres, donc c'est de la pure spéculation et je peux me tromper complètement avec cette approche ou ma compréhension, mais d'après ce que j'ai lu, cela semble aller dans la bonne direction .
Alors quelqu'un sait comment restaurer la fonctionnalité PWM correcte sur cette broche?
Mark
Quelles sont les valeurs de TCCR3A, TCCR3B, TCCR4A, TCCR4B, TCCR4C, TCCR4D et TCCR4E avant et après la faute (en hexadécimal s'il vous plaît)? –
Nouveau sur Arduino. Comment puis-je les vérifier? Tout code d'esquisse serait apprécié. (Et étiez-vous celui qui m'a voté vers le bas? Si oui, soin d'élaborer sur pourquoi ??) – MarqueIV
Juste les sortir via la connexion série. –