int pinsCount=10;
int pins[] = {2,3,4,5,6,9,10,11,12,13};
#include <LiquidCrystal.h>
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
void setup() {
Serial.begin(9600);
lcd.begin(20, 4);
lcd.setCursor(2, 1);
lcd.println("Hello Everyone!");
Serial.println("Hello Everyone!");
delay(1000);
lcd.noDisplay();
delay(1000);
lcd.begin(20, 4);
lcd.setCursor(5, 1);
lcd.println("This is a");
lcd.setCursor(3, 2);
lcd.println("binary counter");
Serial.println("This is a binary counter");
delay(1000);
lcd.noDisplay();
delay(1000);
for (int i=0; i<pinsCount; i=i+1){
pinMode(pins[i], OUTPUT);
}
}
void loop()
{
for (int i=0; i<256; i=i+1)
{
Serial.println(i);
byte a = i % 2;
byte b = (i / 2) % 2;
byte c = (i / 4) % 2;
byte d = (i / 8) % 2;
byte e = (i / 16) % 2;
byte f = (i / 32) % 2;
byte g = (i / 64) % 2;
byte h = (i / 128) % 2;
digitalWrite(3, a);
digitalWrite(4, b);
digitalWrite(5, c);
digitalWrite(6, d);
digitalWrite(7, e);
digitalWrite(10, f);
digitalWrite(11, g);
digitalWrite(12, h);
lcd.begin(20, 4);
lcd.setCursor(5, 2);
lcd.print(h);
lcd.print(g);
lcd.print(f);
lcd.print(e);
lcd.print(d);
lcd.print(c);
lcd.print(b);
lcd.print(a);
delay(2000);
}
for (int i=255; i>0; i=i-1)
{
Serial.println(i);
byte a = i % 2;
byte b = (i / 2) % 2;
byte c = (i / 4) % 2;
byte d = (i / 8) % 2;
byte e = (i / 16) % 2;
byte f = (i / 32) % 2;
byte g = (i / 64) % 2;
byte h = (i / 128) % 2;
digitalWrite(3, a);
digitalWrite(4, b);
digitalWrite(5, c);
digitalWrite(6, d);
digitalWrite(7, e);
digitalWrite(10, f);
digitalWrite(11, g);
digitalWrite(12, h);
lcd.begin(20, 4);
lcd.setCursor(5, 2);
lcd.print(h);
lcd.print(g);
lcd.print(f);
lcd.print(e);
lcd.print(d);
lcd.print(c);
lcd.print(b);
lcd.print(a);
delay(50);
}
}