const byte PULSOS[12] = {
0b10001010, 0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b10001010,
0b10101000, 0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b10001010
};
const byte PIN_OUT = 4; // salida de pulsos
const byte PIN_MUESCA = 5; // muesca de la polea
void setup() {
pinMode(PIN_OUT, OUTPUT);
pinMode(PIN_MUESCA , OUTPUT);
}
void loop() {
for (int j = 0; j < 12; j++) { // recorre cada byte de la array
for (int i = 7; i >= 0; i--) { // recorre los bits del byte
if (bitRead(PULSOS[j], i) == 1) { // lee cada bit y lo copia a la salida
digitalWrite(PIN_OUT, HIGH);
}
else {
digitalWrite(PIN_OUT, LOW);
}
// ------------------------------------------
// envia un pulso como referencia gráfica de la posición de la muesca de la polea
if (i == 7 && j == 0) {
digitalWrite(PIN_MUESCA, HIGH);
}
else {
digitalWrite(PIN_MUESCA, LOW);
}
// ------------------------------------------
delay(10); // duración del pulso para duty cycle 25%
} // cierra for(int i...
} // cierra for(int j...
// delay(1000);
}