const int pin1 = 2; //cor marron
const int pin2 = 4; //cor vermelho
const int pin3 = 7; //cor orange
const int pin4 = 8; //cor amarelho
void setup() {
Serial.begin(115200);
while(!Serial);
Serial.println("Hello, Escrevendo letras e números com Charlieplexing!");
Serial.println("Descomente a letra ou o número que você quer fazer aparecer.");
}
void setLED(int led) {
pinMode(pin1, INPUT);
pinMode(pin2, INPUT);
pinMode(pin3, INPUT);
pinMode(pin4, INPUT);
switch(led) {
case 0: //led1
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
break;
case 1: //led2
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
digitalWrite(pin2, HIGH);
digitalWrite(pin1, LOW);
break;
case 2: //led3
pinMode(pin1, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin1, HIGH);
digitalWrite(pin3, LOW);
break;
case 3: //led4
pinMode(pin1, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin3, HIGH);
digitalWrite(pin1, LOW);
break;
case 4: //led5
pinMode(pin1, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin1, HIGH);
digitalWrite(pin4, LOW);
break;
case 5: //led6
pinMode(pin1, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin4, HIGH);
digitalWrite(pin1, LOW);
break;
case 6: //led7
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin2, HIGH);
digitalWrite(pin3, LOW);
break;
case 7: //led8
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin3, HIGH);
digitalWrite(pin2, LOW);
break;
case 8: //led9
pinMode(pin2, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin2, HIGH);
digitalWrite(pin4, LOW);
break;
case 9: //led10
pinMode(pin2, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin4, HIGH);
digitalWrite(pin2, LOW);
break;
case 10: //led11
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
break;
case 11: //led12
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin4, HIGH);
digitalWrite(pin3, LOW);
break;
}
}
void letra_A(){
int led_A[] = {1, 3, 5, 6, 7, 8, 9, 11};
for(int i = 0; i < 8; i++) {
setLED(led_A[i]);
delay(1);
}
}
void letra_B(){
int led_B[] = {0, 3, 4, 6, 8, 9, 10, 11};
for(int i = 0; i < 8; i++) {
setLED(led_B[i]);
delay(1);
}
}
void letra_C(){
int led_C[] = {0,1,2,3,6,9,10,11};
for(int i = 0; i < 8; i++) {
setLED(led_C[i]);
delay(1);
}
}
void letra_D(){
int led_D[] = {0,1,3,5,6,8,9,10};
for(int i = 0; i < 8; i++) {
setLED(led_D[i]);
delay(1);
}
}
void letra_E(){
int led_E[] = {0,1,2,3,4,6,9,10,11};
for(int i = 0; i < 9; i++) {
setLED(led_E[i]);
delay(1);
}
}
void letra_F(){
int led_F[] = {0,1,2,3,6,7,9};
for(int i = 0; i < 7; i++) {
setLED(led_F[i]);
delay(1);
}
}
void letra_G(){
int led_G[] = {0,1,2,3,6,8,9,10,11};
for(int i = 0; i < 9; i++) {
setLED(led_G[i]);
delay(1);
}
}
void letra_H(){
int led_H[] = {0,2,3,5,6,7,8,9,11};
for(int i = 0; i < 9; i++) {
setLED(led_H[i]);
delay(1);
}
}
void letra_I(){
int led_I[] = {0,1,2,4,7,9,10,11};
for(int i = 0; i < 8; i++) {
setLED(led_I[i]);
delay(1);
}
}
void letra_J(){
int led_J[] = {2,5,6,8,10};
for(int i = 0; i < 5; i++) {
setLED(led_J[i]);
delay(1);
}
}
void letra_K(){
int led_K[] = {0,2,3,5,6,7,9,11};
for(int i = 0; i < 8; i++) {
setLED(led_K[i]);
delay(1);
}
}
void letra_L(){
int led_L[] = {0,3,6,9,10,11};
for(int i = 0; i < 6; i++) {
setLED(led_L[i]);
delay(1);
}
}
void letra_M(){
int led_M[] = {0,2,3,4,5,6,7,8,9,11};
for(int i = 0; i < 10; i++) {
setLED(led_M[i]);
delay(1);
}
}
void letra_N(){
int led_N[] = {0,1,2,3,5,6,8,9,11};
for(int i = 0; i < 9; i++) {
setLED(led_N[i]);
delay(1);
}
}
void letra_O(){
int led_O[] = {1,3,5,6,8,10};
for(int i = 0; i < 6; i++) {
setLED(led_O[i]);
delay(1);
}
}
void letra_P(){
int led_P[] = {0,1,3,5,6,7,9};
for(int i = 0; i < 7; i++) {
setLED(led_P[i]);
delay(1);
}
}
void letra_Q(){
int led_Q[] = {0,1,2,3,5,6,7,11};
for(int i = 0; i < 8; i++) {
setLED(led_Q[i]);
delay(1);
}
}
void letra_R(){
int led_R[] = {0,1,2,3,5,6,7,9,11};
for(int i = 0; i < 9; i++) {
setLED(led_R[i]);
delay(1);
}
}
void letra_S(){
int led_S[] = {0,1,2,3,8,9,10,11};
for(int i = 0; i < 8; i++) {
setLED(led_S[i]);
delay(1);
}
}
void letra_T(){
int led_T[] = {0,1,2,4,7,10};
for(int i = 0; i < 6; i++) {
setLED(led_T[i]);
delay(1);
}
}
void letra_U(){
int led_U[] = {0,2,3,5,6,8,9,10,11};
for(int i = 0; i < 9; i++) {
setLED(led_U[i]);
delay(1);
}
}
void letra_V(){
int led_V[] = {0,2,3,5,6,8,10};
for(int i = 0; i < 7; i++) {
setLED(led_V[i]);
delay(1);
}
}
void letra_W(){
int led_W[] = {0,2,3,5,6,7,8,9,10,11};
for(int i = 0; i < 10; i++) {
setLED(led_W[i]);
delay(1);
}
}
void letra_X(){
int led_X[] = {0,2,4,7,9,11};
for(int i = 0; i < 6; i++) {
setLED(led_X[i]);
delay(1);
}
}
void letra_Y(){
int led_Y[] = {0,2,3,5,7,10};
for(int i = 0; i < 6; i++) {
setLED(led_Y[i]);
delay(1);
}
}
void letra_Z(){
int led_Z[] = {0,1,2,5,6,9,10,11};
for(int i = 0; i < 8; i++) {
setLED(led_Z[i]);
delay(1);
}
}
///////////////////////////////////////////
void numero_0(){
int num_0[] = {0,1,2,3,5,6,8,9,10,11};
for(int i = 0; i < 10; i++) {
setLED(num_0[i]);
delay(1);
}
}
void numero_1(){
int num_1[] = {1,3,4,7,9,10,11};
for(int i = 0; i < 7; i++) {
setLED(num_1[i]);
delay(1);
}
}
void numero_2(){
int num_2[] = {0,2,5,7,9,10,11};
for(int i = 0; i < 7; i++) {
setLED(num_2[i]);
delay(1);
}
}
void numero_3(){
int num_3[] = {0,1,2,4,5,8,9,10,11};
for(int i = 0; i < 8; i++) {
setLED(num_3[i]);
delay(1);
}
}
void numero_4(){
int num_4[] = {0,2,4,5,6,7,8,11};
for(int i = 0; i < 8; i++) {
setLED(num_4[i]);
delay(1);
}
}
void numero_5(){
int num_5[] = {0,1,2,3,7,8,9,10,11};
for(int i = 0; i < 9; i++) {
setLED(num_5[i]);
delay(1);
}
}
void numero_6(){
int num_6[] = {0,3,4,5,6,8,9,10,11};
for(int i = 0; i < 9; i++) {
setLED(num_6[i]);
delay(1);
}
}
void numero_7(){
int num_7[] = {0,1,2,5,7,9};
for(int i = 0; i < 6; i++) {
setLED(num_7[i]);
delay(1);
}
}
void numero_8(){
int num_8[] = {0,1,2,3,5,7,9,10,11};
for(int i = 0; i < 9; i++) {
setLED(num_8[i]);
delay(1);
}
}
void numero_9(){
int num_9[] = {0,1,2,3,5,6,7,8,11};
for(int i = 0; i < 9; i++) {
setLED(num_9[i]);
delay(1);
}
}
void loop() {
//letra_A();
letra_B();
//letra_C();
//letra_D();
//letra_E();
//letra_F();
//letra_G();
//letra_H();
//letra_I();
//letra_J();
//letra_K();
//letra_L();
//letra_O();
//letra_P();
//letra_Q();
//letra_R();
//letra_S();
//letra_T();
//letra_U();
//letra_V();
//letra_W();
//letra_X();
//letra_Y();
//letra_Z();
//numero_0();
//numero_1();
//numero_2();
//numero_3();
//numero_4();
//numero_5();
//numero_6();
//numero_7();
//numero_8();
//numero_9();
}