#define ledr1 13
#define ledg1 12
#define ledb1 11
#define potpin1 A1
#define ledr2 10
#define ledg2 9
#define ledb2 8
#define potpin2 A2
#define ledr3 7
#define ledg3 6
#define ledb3 5
#define potpin3 A3
#define ledr4 4
#define ledg4 3
#define ledb4 2
#define potpin4 A4
byte OHM[8] = {
B00000,
B01110,
B10001,
B10001,
B10001,
B01010,
B11011,
B00000,
};
byte PORCENTO[8] = {
B11000,
B11001,
B00010,
B00100,
B01000,
B10011,
B00011,
B00000,
};
byte MAISMENOS[8] = {
B00000,
B00100,
B01110,
B00100,
B00000,
B01110,
B00000,
B00000,
};
byte bolinha[8] = {
B11100,
B10100,
B11100,
B00000,
B00000,
B00000,
B00000,
B00000,
};
byte MULTIPLICACAO[8] = {
B00000,
B00000,
B10001,
B01010,
B00100,
B01010,
B10001,
B00000,
};
#include <LiquidCrystal.h>
LiquidCrystal lcd(22, 26, 30, 38, 42, 46);
void digitalWriteRGB1(byte red1, byte green1, byte blue1){
analogWrite(ledr1, red1);
analogWrite(ledg1, green1);
analogWrite(ledb1, blue1);
}
void digitalWriteRGB2(byte red2, byte green2, byte blue2){
analogWrite(ledr2, red2);
analogWrite(ledg2, green2);
analogWrite(ledb2, blue2);
}
void digitalWriteRGB3(byte red3, byte green3, byte blue3){
analogWrite(ledr3, red3);
analogWrite(ledg3, green3);
analogWrite(ledb3, blue3);
}
void digitalWriteRGB4(byte red4, byte green4, byte blue4){
analogWrite(ledr4, red4);
analogWrite(ledg4, green4);
analogWrite(ledb4, blue4);
}
void setup(){
pinMode(ledr1, OUTPUT);
pinMode(ledg1, OUTPUT);
pinMode(ledb1, OUTPUT);
pinMode(ledr2, OUTPUT);
pinMode(ledg2, OUTPUT);
pinMode(ledb2, OUTPUT);
pinMode(ledr3, OUTPUT);
pinMode(ledg3, OUTPUT);
pinMode(ledb3, OUTPUT);
pinMode(ledr4, OUTPUT);
pinMode(ledg4, OUTPUT);
pinMode(ledb4, OUTPUT);
lcd.createChar(0, OHM);
lcd.createChar(1, PORCENTO);
lcd.createChar(2, MAISMENOS);
lcd.createChar(3, bolinha);
lcd.createChar(4, MULTIPLICACAO);
lcd.begin(20, 4);
}
void loop(){
int Val1 = analogRead(potpin1);
int mode1 = map(Val1, 0, 1023, 0, 9);
switch(mode1){
case 0:
digitalWriteRGB1(0, 0, 0);
break;
case 1:
digitalWriteRGB1(184, 38, 21);
break;
case 2:
digitalWriteRGB1(255, 0, 0);
break;
case 3:
digitalWriteRGB1(255, 30, 0);
break;
case 4:
digitalWriteRGB1(255, 80, 0);
break;
case 5:
digitalWriteRGB1(0, 255, 0);
break;
case 6:
digitalWriteRGB1(0, 0, 255);
break;
case 7:
digitalWriteRGB1(128, 0, 128);
break;
case 8:
digitalWriteRGB1(28, 28, 28);
break;
case 9:
digitalWriteRGB1(255, 255, 220);
break;
default:
digitalWriteRGB1(0, 0, 0);
break;
}
int Val2 = analogRead(potpin2);
int mode2 = map(Val2, 0, 1023, 0, 9);
switch(mode2){
case 0:
digitalWriteRGB2(0, 0, 0);
break;
case 1:
digitalWriteRGB2(150, 75, 0);
break;
case 2:
digitalWriteRGB2(255, 0, 0);
break;
case 3:
digitalWriteRGB2(255, 30, 0);
break;
case 4:
digitalWriteRGB2(255, 80, 0);
break;
case 5:
digitalWriteRGB2(0, 255, 0);
break;
case 6:
digitalWriteRGB2(0, 0, 255);
break;
case 7:
digitalWriteRGB2(128, 0, 128);
break;
case 8:
digitalWriteRGB2(28, 28, 28);
break;
case 9:
digitalWriteRGB2(255, 255, 220);
break;
default:
digitalWriteRGB2(0, 0, 0);
break;
}
int Val3 = analogRead(potpin3);
int mode3 = map(Val3, 0, 1023, 0, 12);
switch(mode3){
case 0:
digitalWriteRGB3(0, 0, 0);
break;
case 1:
digitalWriteRGB3(184,38, 21);
break;
case 2:
digitalWriteRGB3(255, 0, 0);
break;
case 3:
digitalWriteRGB3(255, 30, 0);
break;
case 4:
digitalWriteRGB3(255, 80, 0);
break;
case 5:
digitalWriteRGB3(0, 255, 0);
break;
case 6:
digitalWriteRGB3(0, 0, 255);
break;
case 7:
digitalWriteRGB3(128, 0, 128);
break;
case 8:
digitalWriteRGB3(28, 28, 28);
break;
case 9:
digitalWriteRGB3(255, 255, 220);
break;
case 10:
digitalWriteRGB3(255, 215, 0);
break;
case 11:
digitalWriteRGB3(192, 192, 192);
break;
default:
digitalWriteRGB3(0, 0, 0);
break;
}
int Val4 = analogRead(potpin4);
int mode4 = map(Val4, 0, 1023, 0, 7);
switch(mode4){
case 0:
digitalWriteRGB4(184,38, 21);
break;
case 1:
digitalWriteRGB4(255, 0, 0);
break;
case 2:
digitalWriteRGB4(0, 255, 0);
break;
case 3:
digitalWriteRGB4(0, 0, 255);
break;
case 4:
digitalWriteRGB4(128, 0, 128);
break;
case 5:
digitalWriteRGB4(28, 28, 28);
break;
case 6:
digitalWriteRGB4(255, 215, 0);
break;
case 7:
digitalWriteRGB4(192, 192, 192);
break;
default:
digitalWriteRGB4(0, 0, 0);
break;
}
lcd.setCursor(0, 2);
lcd.print("Valor Resistor:");
lcd.setCursor(0, 0);
lcd.print("1");
lcd.write(byte(3));
lcd.print(" ");
lcd.print("2");
lcd.write(byte(3));
lcd.print(" ");
lcd.print("3");
lcd.write(byte(3));
lcd.print(" ");
lcd.print("4");
lcd.write(byte(3));
lcd.setCursor(0, 1);
lcd.print(mode1);
lcd.print(" ");
lcd.print(mode2);
lcd.print(" ");
lcd.write(byte(4));
lcd.print(" ");
if(mode3 == 0){
lcd.setCursor(7, 1);
lcd.print("1");
}
if(mode3 == 1){
lcd.setCursor(6, 1);
lcd.print("10");
}
if(mode3 == 2){
lcd.setCursor(6, 1);
lcd.print("100");
}
if(mode3 == 3){
lcd.setCursor(6, 1);
lcd.print("1K");
}
if(mode3 == 4){
lcd.setCursor(6, 1);
lcd.print("10K");
}
if(mode3 == 5){
lcd.setCursor(6, 1);
lcd.print("100K");
}
if(mode3 == 6){
lcd.setCursor(6, 1);
lcd.print("1M");
}
if(mode3 == 7){
lcd.setCursor(6, 1);
lcd.print("10M");
}
if(mode3 == 8){
lcd.setCursor(6, 1);
lcd.print("100M");
}
if(mode3 == 9){
lcd.setCursor(6, 1);
lcd.print("1G");
}
if(mode3 == 10){
lcd.setCursor(6, 1);
lcd.print("0.1");
}
if(mode3 == 11){
lcd.setCursor(6, 1);
lcd.print("0.01");
}
int fim;
if(pow(10,mode3) == 1){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(mode2);
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) == 10){
fim = (mode1*10+mode2)*10;
lcd.setCursor(1, 3);
lcd.print(fim);
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 99 and pow(10,mode3) < 101){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(".");
lcd.print(mode2);
lcd.print("K");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 999 and pow(10,mode3) < 1001){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(mode2);
lcd.print("K");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 9999 and pow(10,mode3) < 10001){
lcd.setCursor(1, 3);
fim = (mode1*10+mode2)*10;
lcd.print(fim);
lcd.print("K");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 99999 and pow(10,mode3) < 100001){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(".");
lcd.print(mode2);
lcd.print("M");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 999999 and pow(10,mode3) < 1000001){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(mode2);
lcd.print("M");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 999999 and pow(10,mode3) < 10000001){
lcd.setCursor(1, 3);
fim = (mode1*10+mode2)*10;
lcd.print(fim);
lcd.print("M");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 9999999 and pow(10,mode3) < 100000001){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(".");
lcd.print(mode2);
lcd.print("G");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 9999999 and pow(10,mode3) < 1000000001){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(mode2);
lcd.print("G");
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 99999999 and pow(10,mode3) < 10000000001){
lcd.setCursor(1, 3);
lcd.print(mode1);
lcd.print(".");
lcd.print(mode2);
lcd.print(" ");
lcd.write(byte(0));
}
else if(pow(10,mode3) > 99999999 and pow(10,mode3) < 100000000001){
lcd.setCursor(1, 3);
lcd.print("0");
lcd.print(".");
lcd.print(mode1);
lcd.print(mode2);
lcd.print(" ");
lcd.write(byte(0));
}
if(mode4 == 0){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("1");
lcd.write(byte(1));
}
if(mode4 == 1){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("2");
lcd.write(byte(1));
}
if(mode4 == 2){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("0.5");
lcd.write(byte(1));
}
if(mode4 == 3){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("0.25");
lcd.write(byte(1));
}
if(mode4 == 4){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("0.1");
lcd.write(byte(1));
}
if(mode4 == 5){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("0.05");
lcd.write(byte(1));
}
if(mode4 == 6){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("5");
lcd.write(byte(1));
}
if(mode4 == 7){
lcd.setCursor(10, 3);
lcd.write(byte(2));
lcd.print("10");
lcd.write(byte(1));
}
if(mode4 == 0){
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("1");
lcd.write(byte(1));
}
if(mode4 == 1){
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("2");
lcd.write(byte(1));
}
if(mode4 == 2){
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("0.5");
lcd.write(byte(1));
}
if(mode4 == 3){
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("0.25");
lcd.write(byte(1));
}
if(mode4 == 4){
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("0.1");
lcd.write(byte(1));
}
if(mode4 == 5){
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("0.05");
lcd.write(byte(1));
}
if(mode4 == 6){
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("5");
lcd.write(byte(1));
}
if(mode4 == 7){ //kjlkjjlkj
lcd.setCursor(11, 1);
lcd.write(byte(2));
lcd.print("10");
lcd.write(byte(1));
}
delay(300);
lcd.clear();
}