Jumat, 28 April 2023

Mini Running Text Led Dot Matrix Max7219

 Haloo semua apa kabar ? Baik Ya

Assalamualaikum WrWB 

Haloo, Kali ini kita Ada sebuah Project Led Dot Matrik  Untuk Mini Running Text, Bahan Yg di pakai dalam Project ini :

1. Led Dot matrik  4 atau 8 Modul

2. Kabel Jamper

3.Arduino Nano Robotdyn

4.kabel data untuk Arduino type Micro

Langsung Di rangkai sesuai data di bawah ini 

 

#define CLK_PIN           13 Arduino

#define DATA_PIN         11 Arduino

#define CS_PIN              10 Arduino

VCC             To                VCC

GND            To                 GND

Setelah di rangkai buka halama arduino seperti di bawah ini :

  1. #include <MD_Parola.h>
  2. #include <MD_MAX72xx.h>
  3. #include <SPI.h>

  4. // set to 1 if we are implementing the user interface pot, switch, etc
  5. #define USE_UI_CONTROL 0

  6. #if USE_UI_CONTROL
  7. #include <MD_UISwitch.h>
  8. #endif

  9. // Turn on debug statements to the serial output
  10. #define DEBUG 0

  11. #if DEBUG
  12. #define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }
  13. #define PRINTS(x) Serial.print(F(x))
  14. #define PRINTX(x) Serial.println(x, HEX)
  15. #else
  16. #define PRINT(s, x)
  17. #define PRINTS(x)
  18. #define PRINTX(x)
  19. #endif

  20. // Define the number of devices we have in the chain and the hardware interface
  21. // NOTE: These pin numbers will probably not work with your hardware and may
  22. // need to be adapted
  23. #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
  24. #define MAX_DEVICES 11
  25. #define CLK_PIN   13
  26. #define DATA_PIN  11
  27. #define CS_PIN    10

  28. // HARDWARE SPI
  29. MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  30. // SOFTWARE SPI
  31. //MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

  32. // Scrolling parameters
  33. #if USE_UI_CONTROL
  34. const uint8_t SPEED_IN = A5;
  35. const uint8_t DIRECTION_SET = 8;  // change the effect
  36. const uint8_t INVERT_SET = 9;     // change the invert

  37. const uint8_t SPEED_DEADBAND = 5;
  38. #endif // USE_UI_CONTROL

  39. uint8_t scrollSpeed = 25;    // default frame delay value
  40. textEffect_t scrollEffect = PA_SCROLL_LEFT;
  41. textPosition_t scrollAlign = PA_LEFT;
  42. uint16_t scrollPause = 2000; // in milliseconds

  43. // Global message buffers shared by Serial and Scrolling functions
  44. #define BUF_SIZE 75
  45. char curMessage[BUF_SIZE] = { "" };
  46. char newMessage[BUF_SIZE] = { "Hello! Enter new message?" }; // Tulis Kata Kata di sini 
  47. bool newMessageAvailable = true;

  48. #if USE_UI_CONTROL

  49. MD_UISwitch_Digital uiDirection(DIRECTION_SET);
  50. MD_UISwitch_Digital uiInvert(INVERT_SET);

  51. void doUI(void)
  52. {
  53.   // set the speed if it has changed
  54.   {

    int16_t speed = map(analogRead(SPEED_IN), 0, 1023, 10, 150);


    if ((speed >= ((int16_t)P.getSpeed() + SPEED_DEADBAND)) ||

      (speed <= ((int16_t)P.getSpeed() - SPEED_DEADBAND)))

    {

      P.setSpeed(speed);

      scrollSpeed = speed;

      PRINT("\nChanged speed to ", P.getSpeed());

    }

  }


  if (uiDirection.read() == MD_UISwitch::KEY_PRESS) // SCROLL DIRECTION

  {

    PRINTS("\nChanging scroll direction");

    scrollEffect = (scrollEffect == PA_SCROLL_LEFT ? PA_SCROLL_RIGHT : PA_SCROLL_LEFT);

    P.setTextEffect(scrollEffect, scrollEffect);

    P.displayClear();

    P.displayReset();

  }


  if (uiInvert.read() == MD_UISwitch::KEY_PRESS)  // INVERT MODE

  {

    PRINTS("\nChanging invert mode");

    P.setInvert(!P.getInvert());

  }

}

#endif // USE_UI_CONTROL


void readSerial(void)

{

  static char *cp = newMessage;


  while (Serial.available())

  {

    *cp = (char)Serial.read();

    if ((*cp == '\n') || (cp - newMessage >= BUF_SIZE-2)) // end of message character or full buffer

    {

      *cp = '\0'; // end the string

      // restart the index for next filling spree and flag we have a message waiting

      cp = newMessage;

      newMessageAvailable = true;

    }

    else  // move char pointer to next position

      cp++;

  }

}


void setup()

{

  Serial.begin(57600);

  Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\nEnd message line with a newline");


#if USE_UI_CONTROL

  uiDirection.begin();

  uiInvert.begin();

  pinMode(SPEED_IN, INPUT);


  doUI();

#endif // USE_UI_CONTROL


  P.begin();

  P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);

}


void loop()

{

#if USE_UI_CONTROL

  doUI();

#endif // USE_UI_CONTROL


  if (P.displayAnimate())

  {

    if (newMessageAvailable)

    {

      strcpy(curMessage, newMessage);

      newMessageAvailable = false;

    }

    P.displayReset();

  }

  readSerial();

}


Bagi Yang Mau Down load Source Code nya silahkan Klik Tautan di bawah ini ;

note : Jika ada permintaan ijin Acces file jngn Ragu untuk meminta , kami pasti memberikan ijin . terima kasih. 

https://drive.google.com/drive/folders/1oTeq-cu5e8HJ0trOgYymjkTB0w-uT5CA?usp=sharing


Bagi yg Belum Jelas Bisa lihat video Tutorialnya  di Bawah ini :

Terima kasih selamat Mencoba .
Waslamulaikum Wr Wb






0 komentar:

Posting Komentar