Assigner une couleur à une led RGB puis lire cette couleur

Bonjour à tous,

Je débute dans l'univers d'Arduino et pour ce faire je joue avec les leds :slight_smile: J'ai donc une led RGB à anode commune. J'assigne la couleur rouge avec la fonction analogWrite puis j'essai de lire cette valeur :

Red = 255;
analogWrite(pinRed, 255-Red);
Serial.println(255 - map(analogRead(pinRed), 0, 1024, 0, 255 ));

Problème, je récupère 167 et non 255 dans la console. Je ne sais pourquoi.

Quelqu'un peut m'aider ?

Merci d'avance.

Bonjour,

analogWrite() porte assez mal son nom. Ce n'est pas une écriture sur une sortie analogique, mais une écriture sur une sortie PWM (sortie digitale avec impulsions modulées en ratio haut/bas)

analogRead fait une lecture analogique sur une entrée analogique (qui ne peuvent d'ailleurs pas être utilisées en sortie PWM)

Donc ton écriture et ta lecture n'ont strictement rien à voir l'un avec l'autre.

Pour compléter, un analogWrite() ne fait pas varier la tension de sortie mais génère un signal carré (appelé PWM). Tu te retrouve donc toujours avec 5volts mais "haché".

En executant ton code, ta DEL clignote en réalité, mais tellement vite que l'oeil ne le voit pas et perçoit plutot une intensité lumineuse qui change.

Ok, merci beaucoup pour les informations

Bonjour

Tu peux aussi jeter un œil à ceci