int latchPin = 4; int clockPin = 3; int dataPin = 0; unsigned long modo = 0; int conteo = 0, offset = 0, variable2 = 0, variable = 0, pos = 0, j, i; int letras[] = { 31, // 7 245, // r 17, // A 213, // n 99, // c 97, // E 255, // -espacio- 113, // F 17, // A 213, // n 213, // n 223, // i 227, // L 153, // y 255, // -espacio- 255, // -espacio- 255, // -espacio- 253, // - 255, // -espacio- //3, // D //17, // A //73, // S //145, // H //255, // -espacio- //1, // B //97, // E //245, // r //227, // L //223, // i //213, // n 17, // A 245,// r 213,// n 213,// n 223,// i 213,// n 255,// -espacio- 131,// U 17, // A 213,// n 255,// -espacio- 1, // B 199,// u 199,// u 245,// r 97, // e 213,// n 255, // -espacio- 253, // - 255, // -espacio- 255, // -espacio- 255 // -espacio- }; int tamano = sizeof(letras)/sizeof(int); void posicion() { if (pos == 8) pos = 0; shiftOut(dataPin, clockPin, LSBFIRST, B00000001 << pos++); } void setup() { //set pins to output so you can control the shift register pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { //if (modo++ < 8 * random(8, 16)) { for (j = 0; j < 50; j++) { for (i = 0; i < 8; i++) { digitalWrite(latchPin, LOW); if (tamano - offset < 8) { variable = tamano - offset; if (i >= variable) shiftOut(dataPin, clockPin, LSBFIRST, letras[0 + variable2++]); else shiftOut(dataPin, clockPin, LSBFIRST, letras[i + offset]); } //fin offset else shiftOut(dataPin, clockPin, LSBFIRST, letras[i + offset]); posicion(); digitalWrite(latchPin, HIGH); } // fin i variable2 = 0; } // fin j offset++; if (offset == tamano) //if (offset == 17) offset = 0; //} //fin modo //else { // if (modo == 16 * random(8, 16)) // modo = 0; // digitalWrite(latchPin, LOW); // shiftOut(dataPin, clockPin, LSBFIRST, random(0, 255)); // posicion(); // digitalWrite(latchPin, HIGH); // delay(5); //} }