Allumer différente leds selon le jour.

Bonjour à tous,

Je suis particulièrement novice sur Arduino. Je suis en train de monter un projet de pilulier tout simple.

Je voudrais mettre plusieurs leds sur mon breadbord, 21 exactement (lié au 21 pilules contraceptives d'une plaquette) et chaque jour une led s'allumerai pour montrer quel jour prendre 1 pilule.

Mais je n'ai aucune idée du schémas et encore moins du code à faire...

Quelqu'un pourrait m'aider? ou me donner un tuto qui ressemble à ce que je veux faire?

Je vous remercie pour toutes vos réponses.

Commander 21 leds c'est beaucoup il faudrait utiliser un expander ou un multiplexeur.

-Standby:
Commander 21 leds c'est beaucoup il faudrait utiliser un expander ou un multiplexeur.

bonsoir
si c'est allumer une led parmi 21 (25) 10 pins I/O suffisent

pepe:
Bonsoir

Si l'on doit allumer une seule des 21 leds à la fois, il suffit de 6 broches du microcontrôleur et de 6 résistances :

bonsoir
oui , c'est encore plus concis que de la matrice X/Y et avec l'avantage que l'on doit trouver sur un uno 6 I/O commune à un meme port

Pas mal ce montage moi qui avais fais une guirlande avec 8 fils et 16 leds grâce à une matrice 4x4

mais je ne vois pas comment allumer une seule led à la fois ?

pour moi il y a beaucoup plus simple => 2 sorties sont suffisantes pour 8 ou 15 ou 50 ou 100 leds ! dons votre montage il n'y a 1 led allumée a chaque fois donc utiliser un registre a decalage entrée série et sorties parallèles ( sur les sorties du registre => vos leds ) en (entrees => 1 broche par RAZ et 1 broche de décalage )

pour allumer la 10eme led par exemple => 1 pulse sur raz ; puis 10 pulses sur décalage !

slt j'ai essayer de changer les broches inutilisées en entrée en utilisant DDRB=B00001010; ça fonctionne qu'une seule fois si je veux changer l'affectation par la suite je n'ai pas de changement ! je refait des tests et je dis ce que je trouve...

ça fonctionne en utilisant le portB, c'est à dire les broches de 8 à 13 !
le code de test avec 3 broches , 8 9 et 10 et 6 led

void setup() { }
void loop() {

  for (int i=1; i <= 6; i++) {led(i); delay(100); }
}
void led(int x){ // fonction pour allumer le feu ( une seule led à la fois )

switch (x)
  {  
   case 1:  {  DDRB=B00000011 ; PORTB=B00000001 ; break;} 
   case 2:  {  DDRB=B00000011 ; PORTB=B00000010 ; break;}
   case 3:  {  DDRB=B00000101 ; PORTB=B00000001 ; break;}
   case 4:  {  DDRB=B00000101 ; PORTB=B00000100 ; break;} 
   case 5:  {  DDRB=B00000110 ; PORTB=B00000010 ; break;}
   case 6:  {  DDRB=B00000110 ; PORTB=B00000100 ; break;}
  // etc 
  }
}