//Ejemplo 2. Contador binario de 0 a 9, frecuencia de reloj 1 Hz
//declaración de variables globales
bool D2; //los pines son del tipo de dato bool
bool D3;
bool D4;
bool D5;
int contador_decimal = 0; //tipo de dato entero (16 bits)
byte contador_binario; //tipo de dato byte (8 bits)
void setup() {
pinMode(2, OUTPUT); //pin 2 -> salida
pinMode(3, OUTPUT); //pin 3 -> salida
pinMode(4, OUTPUT); //pin 4 -> salida
pinMode(5, OUTPUT); //pin 5 -> salida
}
void loop() {
contador_binario = byte(contador_decimal); //convertir a byte
D2 = bitRead(contador_binario, 0); //leer bit 0, LSB
D3 = bitRead(contador_binario, 1); //leer bit 1
D4 = bitRead(contador_binario, 2); //leer bit 2
D5 = bitRead(contador_binario, 3); //leer bit 3, MSB
digitalWrite(2, D2); //bit 0 en pin 2
digitalWrite(3, D3); //bit 1 en pin 3
digitalWrite(4, D4); //bit 2 en pin 4
digitalWrite(5, D5); //bit 3 en pin 5
delay(1000); //retardo de 1 segundo
contador_decimal++; //incrementar contador
if (contador_decimal == 10) { //¿contador = 10?
contador_decimal = 0; //resetear contador
}
}