/*const int numLEDs = 4;
const int GPIO_Pins[] = {2, 3, 1, 0};
void setup() {
for (int led = 0; led < numLEDs; led++) {
pinMode(GPIO_Pins[led], OUTPUT);
digitalWrite(GPIO_Pins[led], LOW);
}
}
void loop() {
for (int i = 1; i <= 15; i += 2) { // Counting odd numbers only
binaryleds(i);
delay(1000);
}
}
void binaryleds(int num) {
for (int i = 0; i < numLEDs; i++) {
int bit = num & (1 << i);
digitalWrite(GPIO_Pins[i], bit ? HIGH : LOW);
}
}
const int ledPins[] = {2,3,1,0};
const int numLEDs = sizeof(ledPins) / sizeof(ledPins[0]);
int arr[4];
void setup() {
Serial1.begin(115200);
Serial1.println("Hello");
for (int i = 0; i < numLEDs; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
for (int num = 2; num < 15; num += 2)
{
displayBinary(num);
Serial1.println();
delay(1000);
}
delay(2000);
}
void displayBinary(int num) {
for (int i = 0; i < numLEDs; i++)
{
arr[i]=num%2;
num/=2;
if (arr[i] == 1)
digitalWrite(ledPins[i], HIGH);
else
digitalWrite(ledPins[i], LOW);
}
for(int i=3;i>=0;i--)
Serial1.print(arr[i]);
}*/
const int ledPins[] = {2, 3, 1, 0};
const int numLeds = sizeof(ledPins) / sizeof(ledPins[0]);
const int delayTime = 1000;
const int maxDelay = 2000;
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
for (int num = 0; num <= 15; num++) {
displayBinary(num);
delay(delayTime);
displayComplement(num);
delay(delayTime);
}
delay(maxDelay);
}
void displayBinary(int number) {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], bitRead(number, i));
}
}
void displayComplement(int number) {
int complement = 15 - number;
displayBinary(complement);
}