POV de perritos (3 / 4 steg)
Steg 3: Implementación
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]; booleska pintState; int columnNum = -1; Sträng charToWrite;
void setup() {Serial.begin(9600), msgBody.toUpperCase(), pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, utgång); pinMode (LED4, utgång); pinMode (LED5, utgång); pinMode (LED6, utgång), pinMode (LED7, OUTPUT);}
void loop() {///Convert all text till binär matris / / / om (columnNum == -1) / / detta block behöver göras en gång / / {för (int c = 0; c < (msgBody.length()); c ++) {//Separate följande karaktär charToWrite = msgBody.substring (c, c + 1); //Send till avskilda characted att addChar funktion addChar(charToWrite);} //Add en liten plats efter varje karaktär addChar(""); addChar("");}
//////////////////////////////////////////////////////
Visa de binära matriserna efter alla tecken kodas / / för (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); om karaktären är klar, ta en längre bort om ((c + 1) % 5 == 0) {digitalWrite (LED1, låg); digitalWrite (LED2, låg), digitalWrite (LED3, låg), digitalWrite (LED4, låg), digitalWrite (LED5, låg); digitalWrite (LED6, låg), digitalWrite (LED7, låg); delay(delayBetweenChar);}} ///////////////////////////////////////// }
void addChar (String y) {om (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 om (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);} else om (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);
{}} void addColumn(byte x) {columnNum += 1; msgCode [columnNum] = (x);}