int inputNumber = 255;
int counter = 0;
int control = 0;
String binaryString = "";
boolean convertStatus = false;
int longPress = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, INPUT_PULLUP);
pinMode(11, OUTPUT);
}
void toBinary(int x){
binaryString = "";
while(true){
if(x<=0){
convertStatus = true;
ledOn();
control = 0;
counter = 0;
break;
}
else if(x==1){
binaryString += "1";
convertStatus = true;
x=0;
ledOn();
control = 0;
counter = 0;
break;
}
else if ((x%2) == 1){
binaryString += "1";
x /= 2;
}
else{
binaryString += "0";
x /= 2;
}
counter++;
}
}
void ledOn(){
int ledNum = 9;
for(;counter>=0;counter--){
if(binaryString[control] == '1'){
digitalWrite(ledNum, HIGH);
ledNum--;
}
if(binaryString[control] == '0'){
digitalWrite(ledNum, LOW);
ledNum--;
}
control++;
}
}
void ledOff(){
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
digitalWrite(3,LOW);
digitalWrite(2,LOW);
control = 0;
counter = 0;
}
void loop() {
// put your main code here, to run repeatedly:
if(inputNumber>255) {
inputNumber=1;
ledOff();
}
toBinary(inputNumber);
if (digitalRead(10)==LOW){
longPress++;
Serial.println(longPress);
if (longPress >= 50){
ledOff();
binaryString="";
longPress = 0;
inputNumber=-1;
}
}
if (digitalRead(10)==HIGH) longPress=0;
if (longPress==1){
tone(11, 2000);
inputNumber+=1;
}
noTone(11);
Serial.println(inputNumber);
Serial.println(binaryString);
delay(100);
}