Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:alazar:rolling_text_matrix [2021/06/03 18:27]
gstefanescu2304
pm:prj2021:alazar:rolling_text_matrix [2021/06/03 18:31] (current)
gstefanescu2304
Line 43: Line 43:
       * #include <​Max72xxPanel.h>​       * #include <​Max72xxPanel.h>​
  
- +Cod: {{:​pm:​prj2021:​alazar:​code_matrix.txt|}}
-......... ​  ​COD ​  ​......... +
- +
- +
-#include <​SPI.h>​ +
-#include <​Adafruit_GFX.h>​ +
-#include <​Max72xxPanel.h>​ +
-//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);​ +
-   } +
-} +
  
 ---- ----
 === Rezultate obtinute === === Rezultate obtinute ===
  
 +{{:​pm:​prj2021:​alazar:​whatsapp_image_2021-06-03_at_18.25.04_1_.jpeg?​nolink&​300|}}
 +{{:​pm:​prj2021:​alazar:​whatsapp_image_2021-06-03_at_18.25.04.jpeg?​nolink&​300|}}
  
 ---- ----
Line 160: Line 59:
   * Arhiva proiect: {{:​pm:​prj2021:​alazar:​stefanescu_georgiana_331ca.rar|}}   * Arhiva proiect: {{:​pm:​prj2021:​alazar:​stefanescu_georgiana_331ca.rar|}}
   * Link video: https://​youtu.be/​J9NHwsOgtKg  ​   * Link video: https://​youtu.be/​J9NHwsOgtKg  ​
 +  * Pdf pagina: {{:​pm:​prj2021:​alazar:​rolling_text_matrix_cs_open_courseware_.pdf|}}
  
 ---- ----
pm/prj2021/alazar/rolling_text_matrix.1622734024.txt.gz · Last modified: 2021/06/03 18:27 by gstefanescu2304
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0