#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire,-1);
char* UnitNames[] = {
"bt","nb","Bt","Kb","KB","Mb","MB","Gb","GB"
};
int UnitMultiply[] = {
1,4,2,125,8,125,8,125,8
};
void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
}
float outnum;
void loop() {
display.clearDisplay();
int a1 = map(analogRead(A0),0,1023,0,9);
int a2 = map(analogRead(A1),0,1023,0,9);
int a3 = map(analogRead(A4),0,1023,0,9);
int u1 = map(analogRead(A2),0,1023,0,8);
int u2 = map(analogRead(A3),0,1023,0,8);
long int innum = a1*100 + a2*10 + a3;
display.setCursor(1,2);
display.setTextColor(1);
display.setTextSize(1);
display.print(UnitNames[u1]);
display.setCursor(56,2);
display.print("to");
display.setCursor(110,2);
display.print(UnitNames[u2]);
display.setCursor(1,16);
display.print("Input: ");
display.print(innum);
int U1 = u1;
int U2 = u2;
outnum = innum;
while(U1 != U2){
if(U1 < U2){
outnum = outnum / UnitMultiply[U1];
U1 = U1 + 1;
} else {
outnum = outnum * UnitMultiply[U1];
U1 = U1 - 1;
}
}
display.setCursor(1,26);
display.print("OUTPUT: ");
display.print(outnum);
display.display();
delay(100);
}
//display.setCursor(int16_t x, int16_t y)
//display.setTextColor()
//display.setTextSize()
//display.print()
//display.clearDisplay()
//display.display()