Como construir intermitentes para bici con matriz gigante
Las intermitentes de los automoviles cada vez son mas avanzadas, tienen forma desde fabrica, afortunadamente en las bicicletas podemos realizar algo igual o mas avanzada gracias a unas matrices LED que venden de tamaño mayor de lo normal
DIAGRAMA
MATERIALES
Programa DIRECCIONALES Descarga
IDE Arduinp
const int data = 11; //2
const int latch = 12; //3
const int clock = 8; //4
int numero = 0;
int i = 10;
int time = 1000;
void setup()
{
pinMode(data, OUTPUT);
pinMode(latch, OUTPUT);
pinMode(clock, OUTPUT);
// Configuramos los pines de interrupciones para que
// detecten un cambio de bajo a alto
attachInterrupt(digitalPinToInterrupt(2), Derecha, RISING);
attachInterrupt(digitalPinToInterrupt(3), Izquierda, RISING);
}
void loop()
{
//Cuando se resetea el arduino vuelve a iniciar el programa he inicia parpadeando
//a menos que seleccionemos una direccional "izquierda-derecha"
switch(numero)
{
case 0:
allOn();
break;
case 1:
shift(255,0);
break;
case 2:
izquierda();
break;
case 3:
derecha();
break;
}
}
// ISR pin 2
void Derecha()
{
// Número es igual a 3
numero = 3;
}
// ISR pin 3
void Izquierda()
{
// Número es igual a 2
numero = 2;
}
void shift(int cathodes, int display1)
{
digitalWrite(latch, LOW);
shiftOut(data, clock, MSBFIRST, cathodes);
shiftOut(data, clock, MSBFIRST, display1);
digitalWrite(latch, HIGH);
delay(i);
}
void izquierda()
{
shift(231,129); //1
shift(115,66); //2
shift(57,36);//4 231
shift(156,24);//8
shift(115,129); //1
shift(57,66); //2
shift(156,36);//4 231
shift(206,24);//8
shift(57,129);//16
shift(156,66);//32
shift(206,36);//64
shift(231,24);//128
shift(156,129);//16
shift(206,66);//32
shift(231,36);//64
shift(115,24);//128
shift(206,129);//16
shift(231,66);//32
shift(115,36);//64
shift(57,24);//128
}
void derecha()
{
shift(231,129); //1
shift(206,66); //2
shift(156,36);//4 231
shift(57,24);//8
shift(206,129); //1
shift(156,66); //2
shift(57,36);//4 231
shift(115,24);//8
shift(156,129);//16
shift(57,66);//32
shift(115,36);//64
shift(231,24);//128
shift(57,129);//16
shift(115,66);//32
shift(231,36);//64
shift(206,24);//128
shift(115,129);//16
shift(231,66);//32
shift(206,36);//64
shift(156,24);//128
}
//Todos prendidos todos apagados
void allOn()
{
shift(0,255);
delay(40); //50
shift(255,0);
delay(40); //50
}
Comentarios
Publicar un comentario