#include <LiquidCrystal.h>
int binaryToInt(int num) {
int result = 0;
for (int i = 7; i >= 0; i--) {
result = result * 10 + ((num >> i) & 1);
}
splitInteger(result);
return result;
}
void splitInteger(int number) {
int digit1, digit2, digit3, digit4, y = 6, b = 7, g = 8, r = 9;
digit1 = digit2 = digit3 = digit4 = 0;
digit4 = number % 10;
number /= 10;
digit3 = number % 10;
number /= 10;
digit2 = number % 10;
number /= 10;
digit1 = number % 10;
digitalWrite(r,digit1);
digitalWrite(g,digit2);
digitalWrite(b,digit3);
digitalWrite(y,digit4);
}
const int rs = 12, en = 11, d4 = 2, d5 = 3, d6 = 4, d7 = 5, y = 6, b = 7, g = 8, r = 9;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
pinMode(y, OUTPUT);
pinMode(b, OUTPUT);
pinMode(g, OUTPUT);
pinMode(r, OUTPUT);
lcd.begin(16, 2);
lcd.print("Hello World");
delay(2000);
for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
lcd.scrollDisplayRight();
delay(150);
}
lcd.clear();
}
void loop() {
for (int i = 0; i < 16; i ++)
{
lcd.setCursor(6, 0);
lcd.print(binaryToInt(i));
delay(1000);
lcd.clear();
}
}