Bonjour,
Je me suis lancé dans un mini projet, qui est un cube à led simble (pas de rgb) en 444 pour commencer.J'ai donc acheté :
- Arduino mega 2560
- 5 Max 7221
- condo 10 uf , 100
-resistances etc....
Pour commencer j'ai cablé juste 8 Leds sur un max7221 , qui fonctionne sans soucis.Niveau programmation je suis bloqué ....
!
Premièrement j'ai la possibilité d'utiliser une librairie 'matrix' ou 'ledcontrol' les deux fonctionnent mais j'aimerai savoir laquelle est la plus optimisé pour un tel projet ?
Deuxiément j'aimerai pouvoir allumer toutes les leds (8) simultanément en utilisant le scintillement non visible ,j' ai fait de cette facon : (le while (1)est juste pour testé ....) :
#include <binary.h>
#include <LedControl.h>
#include <SPI.h>
LedControl lc=LedControl(12,11,10,1);
int timer = 1;
void setup() {
lc.shutdown(0,false);
lc.setIntensity(0,8);
lc.clearDisplay(0);
}
void loop () {
void setLed(int addr, int row, int col, boolean state);
while (1) {
lc.setLed(0,0,1,true);
delay(timer);
lc.setLed(0,0,1,false);
lc.setLed(0,0,5,true);
delay(timer);
lc.setLed(0,0,5,false);
lc.setLed(0,0,2,true);
delay(timer);
lc.setLed(0,0,2,false);
lc.setLed(0,0,6,true);
delay(timer);
lc.setLed(0,0,6,false);
lc.setLed(0,0,3,true);
delay(timer);
lc.setLed(0,0,3,false);
lc.setLed(0,0,7,true);
delay(timer);
lc.setLed(0,0,7,false);
lc.setLed(0,0,4,true);
delay(timer);
lc.setLed(0,0,4,false);
lc.setLed(0,0,0,true);
delay(timer);
lc.setLed(0,0,0,false);
}
}
Cela fonctionne mais est-ce la bonne solution ?
Deuxièment j'aimerai faire un scénario :
-on allume toutes les leds pendant 10 secondes
-On attents 2 secondes
-on allume la led 0,1,2,3 pendant 5 secondes
-On attends 2 secondes
-On allume la led 4,5,6,7
J'ai commencé de cette facon mais je ne voit pas comment réaliser le reste ?
#include <binary.h>
#include <LedControl.h>
#include <SPI.h>
int timer =150;
int temps;
LedControl lc=LedControl(12,11,10,1);
void setup() {
lc.shutdown(0,false);
lc.setIntensity(0,8);
lc.clearDisplay(0);
}
void loop () {
void setLed(int addr, int row, int col, boolean state);
if((millis() - temps) < 3000)
{
lc.setLed(0,0,1,true);
delay(timer);
lc.setLed(0,0,1,false);
lc.setLed(0,0,5,true);
delay(timer);
lc.setLed(0,0,5,false);
lc.setLed(0,0,2,true);
delay(timer);
lc.setLed(0,0,2,false);
lc.setLed(0,0,6,true);
delay(timer);
lc.setLed(0,0,6,false);
lc.setLed(0,0,3,true);
delay(timer);
lc.setLed(0,0,3,false);
lc.setLed(0,0,7,true);
delay(timer);
lc.setLed(0,0,7,false);
lc.setLed(0,0,4,true);
delay(timer);
lc.setLed(0,0,4,false);
lc.setLed(0,0,0,true);
delay(timer);
lc.setLed(0,0,0,false);
}
}
Merci à vous