//int col[6]={18,5,17,16,4,0};
//int row[4] {23,22,21,19};
//int num_col[6] = {0,0,1,0,0,0};
//int num_row[4] = {0,0,0,0};
#include "stdio.h"
int col1[3]={5,17,16};
int col2[3]={32,33,25};
int col3[3]={23,22,15};
int col4[3]={21,19,18};
int col5[3]={4,0,2};
int rowcnt = 0;
char temp ;
int num[][3] = {
{0,1,0},
{1,0,1},
{1,0,1},
{1,0,1},
{0,1,0},
{0,0,1},
{0,0,1},
{0,0,1},
{0,0,1},
{0,0,1},
{1,1,1},
{0,0,1},
{1,1,1},
{1,0,0},
{1,1,1},
{1,1,1},
{0,0,1},
{1,1,1},
{0,0,1},
{1,1,1},
{0,1,1},
{1,0,1},
{1,1,1},
{0,0,1},
{0,0,1},
{1,1,1},
{1,0,0},
{1,1,1},
{0,0,1},
{1,1,1},
{0,1,1},
{1,0,0},
{1,1,1},
{1,0,1},
{1,1,1},
{1,1,1},
{0,0,1},
{0,0,1},
{0,1,0},
{1,0,0},
{1,1,1},
{1,0,1},
{1,1,1},
{1,0,1},
{1,1,1},
{1,1,1},
{1,0,1},
{1,1,1},
{0,0,1},
{0,1,1}
};
int alpha[][3] = {
{0,1,0},
{1,0,1},
{1,1,1},
{1,0,1},
{1,0,1},
{1,1,0},
{1,0,1},
{1,1,1},
{1,0,1},
{1,1,0},
{0,1,1},
{1,0,0},
{1,0,0},
{1,0,0},
{0,1,1},
{1,1,0},
{1,0,1},
{1,0,1},
{1,0,1},
{1,1,0},
{1,1,1},
{1,0,0},
{1,1,1},
{1,0,0},
{1,1,1},
{1,1,1},
{1,0,0},
{1,1,1},
{1,0,0},
{1,0,0},
{1,1,1},
{1,0,0},
{1,0,0},
{1,0,1},
{1,1,1},
{1,0,1},
{1,0,1},
{1,1,1},
{1,0,1},
{1,0,1},
{1,1,1},
{0,1,0},
{0,1,0},
{0,1,0},
{1,1,1},
};
void setup() {
for(int i = 0; i<3; i++)
{
pinMode(col1[i], OUTPUT);
pinMode(col2[i], OUTPUT);
pinMode(col3[i], OUTPUT);
pinMode(col4[i], OUTPUT);
pinMode(col5[i], OUTPUT);
}
//setting layers to output
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
turnEverythingOff();
}
void loop() {
// put your main code here, to run repeatedly:
if(rowcnt < 10)
{
disp(num,rowcnt);
Serial.println(rowcnt);
rowcnt++;
}
else if ( rowcnt< 19){
disp(alpha,rowcnt-10);
temp = ('A'+rowcnt-10);
Serial.println(temp);
rowcnt++;
}
else{
rowcnt = 0;
}
delay(3000);
// this speeds up the simulation
}
void turnEverythingOff()
{
for(int i = 0; i<3; i++)
{
digitalWrite(col1[i], 0);
digitalWrite(col2[i], 0);
digitalWrite(col3[i], 0);
digitalWrite(col4[i], 0);
digitalWrite(col5[i], 0);
}
}
void turnEverythingOn()
{
for(int i = 0; i<3; i++)
{
digitalWrite(col1[i], 1);
digitalWrite(col2[i], 1);
digitalWrite(col3[i], 1);
digitalWrite(col4[i], 1);
digitalWrite(col5[i], 1);
}
}
void disp(int val[][3],int pos)
{
for(int i = 0; i<3; i++)
{
digitalWrite(col1[i], val[pos*5][i]);
digitalWrite(col2[i], val[pos*5+1][i]);
digitalWrite(col3[i], val[pos*5+2][i]);
digitalWrite(col4[i], val[pos*5+3][i]);
digitalWrite(col5[i], val[pos*5+4][i]);
}
//turning on layers
/*
for(int i = 0; i<4; i++)
{
digitalWrite(row[i], num_row[i]);
}
*/
}