Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define pines 3 //creamos la variable maxleds de 8 elementos
- #define pot A0 //creamos la variable pot con el pin A0
- const int pinLatch = 2; // Este pin se sets baja cuando quiero que el 595 para escuchar
- const int pinReloj = 3; // Este pin es utilizado por shiftout para alternar decir que hay otro granito de arena para cambiar
- const int pinDato = 4; // Este pin se utiliza para pasar al siguiente bit
- int led[pines] = {2,3,4}; //creamos un vector para los pines a utilizar
- // creamos una tabla para los numeros del 0 al 9
- int num1[1]={249};
- int num2[1]={164};
- int num3[1]={176};
- int num4[1]={153};
- int num5[1]={146};
- int num6[1]={131};
- int num7[1]={248};
- int num8[1]={128};
- int num9[1]={144};
- int num0[1]={192};
- // Solo se ejecuta una vez, al iniciar o resetear el Arduino
- void setup ()
- {
- for (int i=0;i<pines;i++)
- pinMode(led[i],OUTPUT); // El pines del 2 al 4 seran de salida
- }
- // se ejecuta siempre como un ciclo
- void loop()
- {
- int valor = analogRead(pot); // lee el valor del potenciometro
- int i=map(valor, 0, 1023, 0, 10); // hace un mapeo o conversion
- rutina(i); // llama a la funcion rutina
- }
- void rutina(int i) //funcion para enceder el led
- {
- switch(i)
- {
- case 0: //hacer algo cuando sea igual a 0
- for(int j=0;j<1;j++)
- {
- activacion(num0[j]);
- delay(60);
- }
- break;
- case 1: //hacer algo cuando sea igual a 1
- for(int j=0;j<1;j++)
- {
- activacion(num1[j]);
- delay(60);
- }
- break;
- case 2: //hacer algo cuando sea igual a 2
- for(int j=0;j<1;j++)
- {
- activacion(num2[j]);
- delay(60);
- }
- break;
- case 3: //hacer algo cuando sea igual a 3
- for(int j=0;j<1;j++)
- {
- activacion(num3[j]);
- delay(60);
- }
- break;
- case 4: //hacer algo cuando sea igual a 4
- for(int j=0;j<1;j++)
- {
- activacion(num4[j]);
- delay(100);
- }
- break;
- case 5: //hacer algo cuando sea igual a 5
- for(int j=0;j<1;j++)
- {
- activacion(num5[j]);
- delay(60);
- }
- break;
- case 6: //hacer algo cuando sea igual a 6
- for(int j=0;j<1;j++)
- {
- activacion(num6[j]);
- delay(60);
- }
- break;
- case 7: //hacer algo cuando sea igual a 7
- for(int j=0;j<1;j++)
- {
- activacion(num7[j]);
- delay(60);
- }
- break;
- case 8: //hacer algo cuando sea igual a 8
- for(int j=0;j<1;j++)
- {
- activacion(num8[j]);
- delay(60);
- }
- break;
- case 9: //hacer algo cuando sea igual a 9
- for(int j=0;j<1;j++)
- {
- activacion(num9[j]);
- delay(60);
- }
- break;
- }
- }
- // Uso de la orden interna shiftout función
- void activacion(int i)
- {
- digitalWrite (pinLatch, LOW); // señal al 595 para escuchar los datos
- shiftOut (pinDato, pinReloj, MSBFIRST, i); // Señal de la 595 que estoy hecho enviando
- digitalWrite (pinLatch, HIGH); // sendSerialData1
- delay(50);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement