Hi, im a beginner and im writing a program to convert decimal to gray code. So far I am able to convert from decimal to binary. I would like to take the resulting binary numbers and convert to gray code. Thank you
#include <Wire.h>
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <String.h>
int screenWidth = 16;
int screenHeight = 2;
String line1 = "Decimal-Graycode";
String line2 = "Converter ";
String line3 = "2014 Copyright";
String line4 = "SB";
const byte rows = 4;
const byte cols = 4;
char keys[rows][cols] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[rows] = {9,8,7,6 };
byte colPins[cols] = {5,4,3,2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
LiquidCrystal lcd(12,11,5,4,3,2);
void setup ()
{
Serial.begin(9600);
lcd.begin(screenWidth,screenHeight);
lcd.setCursor(0,0);
intro();
}
void loop ()
{
getNumber();
}
void intro ()
{
lcd.setCursor(0,0);
lcd.print(line1);
lcd.setCursor(0,1);
lcd.print(line2);
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(line3);
lcd.setCursor(0,1);
lcd.print(line4);
delay(3000);
lcd.clear();
}
int getNumber()
{
unsigned int num = 0;
static int a[8],b[8],k=1,i;
int ans;
char key = keypad.getKey();
while(key != '#')
{
switch (key)
{
case NO_KEY:
break;
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
lcd.print(key);
num = num * 10 + (key - '0');
break;
case '*':
num = 0;
lcd.clear();
break;
case 'A':
lcd.setCursor(0,1);
lcd.print(num,BIN);
break;
}
key = keypad.getKey();
}
return num;
}