Faire changer les LEDs en fonction des chiffres

Faire changer les LEDs en fonction des chiffres - Electronique, domotique, DIY

Marsh Posté le 28-07-2021 à 05:28:37    

Faites en sorte que la LED change de luminosité en fonction du changement de chiffre.
Lorsque l'on appuie sur le bouton "+" de l'écran tactile, le nombre augmente et la luminosité de la LED s'accroît ; à l'inverse, elle devient faible.
Est-ce possible à mettre en œuvre ? Quelqu'un a-t-il un exemple de code similaire ?
J'utilise un Arduino UNO et une F5LED.

Reply

Marsh Posté le 28-07-2021 à 05:28:37   

Reply

Marsh Posté le 28-07-2021 à 08:12:15    

Oui c'est tout à fait possible.

 

Il suffit de piloter la LED en PWM  depuis l'Arduino (selon la consommation de la LED, prévoir l'ajout d'un transistor pour ne pas l'attaquer directement)
-> go tutorial arduino "PWM" et les bases du langage pour faire le compteur.

 

Et pour ce qui est de commander ça depuis l'écran, go tutorial sur comment brancher ton écran à ton arduino.


Message édité par TotalRecall le 28-07-2021 à 08:12:35

---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 28-07-2021 à 16:13:13    

ellis13, je te conseille vivement
1) de lire le règlement du forum qui dit qu'on ne fait pas les devoirs
2) de relire tes cours
3) d'apprendre à poser des questions précises si tu bloques avec toutes les informations nécessaires.


Message édité par rat de combat le 28-07-2021 à 16:13:30
Reply

Marsh Posté le 29-07-2021 à 10:43:20    

Oui, j'utilise le PWM, mais je n'ai pas l'impression de l'utiliser correctement.
 

Code :
  1. uint8_t rxspeed[8] = {0xA5, 0x5A, 0x06, 0x82, 0x00, 0x01, 0x00, 0x00};
  2. uint8_t rxdose[8] = {0xA5, 0x5A, 0x06, 0x82, 0x00, 0x02, 0x00, 0x00};
  3. uint8_t rxrf[8] = {0xA5, 0x5A, 0x06, 0x82, 0x00, 0x03, 0x00, 0x00};
  4. uint8_t aa;
  5. uint8_t Recieved[40];
  6. uint32_t PWM_DUTY=20;//占空比
  7. void setup() {
  8.   // put your setup code here, to run once:
  9.   Serial.begin(115200);
  10.   pinMode(3, OUTPUT);
  11.   pinMode(9, OUTPUT);
  12. }
  13. void loop() {
  14.   // put your main code here, to run repeatedly:
  15. if(Serial.available() != 0)
  16.   {
  17.     for(aa = 0; aa < 8; aa ++)
  18.     {
  19.         Recieved[aa] = Serial.read();
  20.     }
  21.     switch(Recieved[4])
  22.     {
  23.       case 0x01://speed
  24.       rxspeed[7] = Recieved[7];
  25.       Serial.write(rxspeed, 8);
  26.       break;
  27.       case 0x02://dose
  28.       rxdose[7] = Recieved[7];
  29.       Serial.write(rxdose, 8);
  30.       break;
  31.       case 0x03://rf
  32.       rxrf[7] = Recieved[7];
  33.       Serial.write(rxrf, 8);
  34.       break;
  35.       default:
  36.       break;
  37.     }
  38.   }
  39.     analogWrite(3,rxspeed[7]);
  40.     analogWrite(9,rxdose[7]);
  41.   }

Reply

Marsh Posté le 01-08-2021 à 20:40:57    

Bon, tu as fais un effort alors je veux bien en faire un aussi. :o

 

Renseigne toi sur le code ASCII et la différence entre les lettres (eh oui!) '0' à '9' et les chiffres 0 à 9. Et puis si tu veux entrer un nombre p.ex. entre 0 et 255 (je suppose que cette PWM c'est du 8 bit?) il faudra créer le code qui va bien. Pour rappel, si on a trois chiffres a,b,c on peut calculer le nombre avec 100*a+10*b+c.

 

Je ne vais pas te faire le code car je pense que ce sont des exercices scolaires, donc ...


Message édité par rat de combat le 01-08-2021 à 20:41:16
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed