// STM32 Nucleo C031C6
// 4-Bit Binary LED Counter
// Sequence: 0000 to 1111
const int LED1 = D2; // LSB
const int LED2 = D3;
const int LED3 = D4;
const int LED4 = D5; // MSB
const int TIME_DELAY = 1000; // 1 second
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
// Start at 0000
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
}
void loop() {
// Count from 0000 to 1111
for (int number = 0; number <= 15; number++) {
// Bit 0 -> LED1 (D2)
digitalWrite(LED1, (number & 0b0001) ? HIGH : LOW);
// Bit 1 -> LED2 (D3)
digitalWrite(LED2, (number & 0b0010) ? HIGH : LOW);
// Bit 2 -> LED3 (D4)
digitalWrite(LED3, (number & 0b0100) ? HIGH : LOW);
// Bit 3 -> LED4 (D5)
digitalWrite(LED4, (number & 0b1000) ? HIGH : LOW);
// Wait 1 second
delay(TIME_DELAY);
}
}