Stap 3: implementatie
El codigo:
/////////////////////
#define msgLength 1 String msgBody = "3";
/////////////////////
#define delayInChar 6 #define delayBetweenChar 10
#define LED1 2 #define LED2 3 #define LED3 4 #define LED4 5 #define LED5 6 #define LED6 7 #define LED7 8 byte msgCode [(5 * msgLength) + 10]; Booleaanse pintState; int columnNum = -1; String charToWrite;
void setup {Serial.begin(9600); msgBody.toUpperCase(); pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); pinMode (LED4, OUTPUT); pinMode (LED5, OUTPUT); pinMode (LED6, OUTPUT); pinMode (LED7, OUTPUT);}
void loop {///Convert alle tekst naar binaire matrix / / / als (columnNum == -1) / / dit blok moet een keer gebeuren / / {voor (int c = 0; c < (msgBody.length()); c ++) {//Separate de volgende teken-charToWrite = msgBody.substring (c, c + 1); //Send tot gescheiden characted te addChar functie addChar(charToWrite);} //Add een weinig ruimte na elke addChar("") van karakter; addChar("");}
//////////////////////////////////////////////////////
De binaire matrices worden weergegeven nadat alle tekens zijn gecodeerd / / voor (int c = 0, c < (sizeof(msgCode)); c ++) {pintState = (msgCode [c] / B1000000) % B10; digitalWrite (LED1, pintState);
pintState = (msgCode [c] / B100000) % B10; digitalWrite (LED2, pintState);
pintState = (msgCode [c] / B10000) % B10; digitalWrite (LED3, pintState);
pintState = (msgCode [c] / B1000) % B10; digitalWrite (LED4, pintState);
pintState = (msgCode [c] / B100) % B10; digitalWrite (LED5, pintState);
pintState = (msgCode [c] / B10) % B10; digitalWrite (LED6, pintState);
pintState = msgCode [c] % B10; digitalWrite (LED7, pintState);
delay(delayInChar); Als het teken is voltooid, neem een langere uit periode als ((c + 1) 5% == 0) {digitalWrite (LED1, laag); digitalWrite (LED2, laag); digitalWrite (LED3, laag); digitalWrite (LED4, laag); digitalWrite (LED5, laag); digitalWrite (LED6, laag); digitalWrite (LED7, laag); delay(delayBetweenChar);}} ///////////////////////////////////////// }
VOID addChar (String y) {als (y == '1') {addColumn(B0000100); addColumn(B0011111); addColumn(B1111111); addColumn(B0011111); addColumn(B0011111); addColumn(B0011111); addColumn(B0011111); addColumn(B1111111); addColumn(B0011111); addColumn(B0011110); addColumn(B0001110); addColumn(B0001100);} else if (y == "2") {addColumn(B0011100); addColumn(B0001000); addColumn(B0001000); addColumn(B0001000); addColumn(B0111110); addColumn(B1011101); addColumn(B0011100); addColumn(B0011100); addColumn(B0011100); addColumn(B0011100); addColumn(B0011100); addColumn(B0011100); addColumn(B0011100); addColumn(B0001000);} anders als (y == "3") {addColumn(B1111111); addColumn(B0011111); addColumn(B0011111); addColumn(B1111111); addColumn(B0011111); addColumn(B0001100);
addColumn(B1111111); addColumn(B0011111); addColumn(B0011111); addColumn(B1111111); addColumn(B0011111); addColumn(B0001100);
addColumn(B1111111); addColumn(B0011111); addColumn(B0011111); addColumn(B1111111); addColumn(B0011111); addColumn(B0001100);
ongeldig addColumn(byte x)}} {columnNum += 1, msgCode [columnNum] = (x);}