#include #include #include //Vcc - Vcc //Gnd - Gnd //Din - Mosi (Pin 11) //Cs - SS (Pin 10) //Clk - Sck (Pin 13) int buttonPin = 2; // variable to check if the button is pressed or not int buttonState; // helper variable to check if the button is pressed or not int reading; //// flag to determine on/off for the button boolean onOffFlag = true; //// last state of the button for debounce alg int lastButtonState = LOW; //// the last time the output pin was toggled unsigned long lastDebounceTime = 0; //// the debounce time; increase if the output flickers unsigned long debounceDelay = 50; //// helper variable to check if the sensor detects movement or not int movementState = LOW; const int pinCS = 10; const int numberOfHorizontalDisplays = 8; const int numberOfVerticalDisplays = 1; Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); const int wait = 50; // Velocidad a la que realiza el scroll const int spacer = 1; const int width = 5 + spacer; // Ancho de la fuente a 5 pixeles void setup(){ Serial.begin(9600); matrix. setIntensity ( 1 ) ; // Adjust the brightness between 0 and 15 matrix. setPosition ( 0 , 0 , 0 ) ; // The first display is at <0, 0> matrix. setPosition ( 1 , 1 , 0 ) ; // The second display is at <1, 0> matrix. setPosition ( 2 , 2 , 0 ) ; // The third display is in <2, 0> matrix. setPosition ( 3 , 3 , 0 ) ; // The fourth display is at <3, 0> matrix. setPosition ( 4 , 4 , 0 ) ; // The fifth display is at <4, 0> matrix. setPosition ( 5 , 5 , 0 ) ; // The sixth display is at <5, 0> matrix. setPosition ( 6 , 6 , 0 ) ; // The seventh display is at <6, 0> matrix. setPosition ( 7 , 7 , 0 ) ; // The eighth display is in <7, 0> matrix. setPosition ( 8 , 8 , 0 ) ; // The ninth display is at <8, 0> matrix. setRotation ( 0 , 1 ) ; // Display position matrix. setRotation ( 1 , 1 ) ; // Display position matrix. setRotation ( 2 , 1 ) ; // Display position matrix. setRotation ( 3 , 1 ) ; // Display position matrix. setRotation ( 4 , 1 ) ; // Display position matrix. setRotation ( 5 , 1 ) ; // Display position matrix. setRotation ( 6 , 1 ) ; // Display position matrix. setRotation ( 7 , 1 ) ; // Display position matrix. setRotation ( 8 , 1 ) ; // Display position pinMode(buttonPin, INPUT_PULLUP); } void loop() { String string = " Acesta este proiectul meu la PM"; long int time = millis(); while(Serial.available() && onOffFlag) { string += char(Serial.read()); } for(int i = 0; i < width * string.length() + matrix.width() - 1 - spacer && onOffFlag; i++) { buttonState = digitalRead(buttonPin); // for (int i = 0; i < BUTTONS_NO; i++) { /* compare the buttonState to its previous state */ if (buttonState != lastButtonState) { /* if the state has changed, increment the counter */ if (buttonState == HIGH) { /* if the current state is HIGH then the button went from off to on */ delay(3000); onOffFlag = true; } else { /* if the current state is LOW then the button went from on to off */ delay(3000); onOffFlag = false; } // Delay a little bit to avoid bouncing delay(50); } // save the current state as the last state, for next time through the loop lastButtonState = buttonState; matrix.fillScreen(LOW); int letter = i / width; int x = (matrix.width() - 1) - i % width; int y = (matrix.height() - 8) / 2; // Centrar el texto while(x + width - spacer >= 0 && letter >= 0) { if(letter < string.length()){ matrix.drawChar(x, y, string[letter], HIGH, LOW, 1); } letter--; x -= width; } matrix.write(); // Muestra loscaracteres delay(wait); } }