Pentru a afisa diferite carcatere alfanumerice, semne de punctuatie sau iconite putem folosi o matrice de leduri. In acest exemplu vom folosi 4 module de 8x8 leduri.

     Fiecare modul contine un numar de 64 de leduri adresabile individual prin intermediul circuitului integrat MAX7219. Acest circuit se conecteaza la Aduino folosind doar 3 conexiuni folosind protocolul SPI.

    Modulul se alimenteaza cu +5V.

    Pretul acestui modul este de 33 lei si se poate achizitiona de aici.

    Conexiunile se fac in felul urmator:

Arduino      ---         MAX7219

VCC            -          VCC

GND            -          GND

DIN             -           D11  (MOSI)

CS               -           D10

CLOCK          -           D13  (SCK)

    Modulul folosit este cel din poza de mai jos:

 

    Pentru a putea folosi acest modul va trebui sa instalam 2 librarii. Pentru a face acest lucru vom deschide Arduino IDE, vom merge la meniul Schita > Incarcare biblioteca > Gestionare biblioteci... Se va deschide o noua fereastra in care, in partea superioara, vom gasi o casuta de cautare. In acea casuta vom tasta MD_MAX72xx si vom apasa tasta Enter. Dupa cateva momente mai jos vor fi afisate rezultatele. Din acele rezultate vom instala atat libraria  MD_MAX72XX cat si libraria MD_PAROLA.

    Dupa instalarea acesto librarii vom incepe testarea modulului.

    Pentru a face acest lucru vom deschide un nou sketch in Arduino si vom incepe sa scriem codul sursa. Pentru inceput va trebui sa declaram librariile folosite:

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

    In urmatoarele 3 randuri de cod de cod vom defini tipul de hardware folosit, numarul maxim de module si pinul digital al Arduino care va fi conectat la pinul CS al modulului:

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 10

    Urmatoarea linie de cod va fi crearea unei instante noi a MD_PAROLA:

MD_Parola matrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

    In functia  void setup() {} vom initializa aceasta instanta creata anterior:

  matrix.begin();  //initializare a obiectului creat
  matrix.setIntensity(0);  //setare a intensitatii intre 0 (minim) si 15 (maxim)
  matrix.displayClear();  //stergere a ecranului

    In functia void loop() {} vom adauga codul dorit pentru a afisa diferite informatii. Pentru acest lucru vom folosi urmatorul cod:

  matrix.setTextAlignment(PA_CENTER);  //setam alinierea textului pe centru
  matrix.print("Centru");    //declaram sirul de caractere pe care-l dorim afisat
  delay(2000);   //intarziere pentru a observa rezultatul
  matrix.setTextAlignment(PA_LEFT);   //setam alinierea textului in stanga
  matrix.print("Stg.");
  delay(2000);
  matrix.setTextAlignment(PA_RIGHT);   //setam alinierea textului in dreapta
  matrix.print("Drp.");
  delay(2000);
  matrix.setTextAlignment(PA_CENTER);
  matrix.print(1234);
  delay(2000);
  matrix.setInvert(true);    //setam inversarea afisarea displayului 
  matrix.print("Centru");
  delay(2000);
  matrix.setTextAlignment(PA_LEFT);
  matrix.print("Stg.");
  delay(2000);
  matrix.setTextAlignment(PA_RIGHT);
  matrix.print("Drp.");
  delay(2000);
  matrix.setTextAlignment(PA_CENTER);
  matrix.print(1234);
  delay(2000);
  matrix.setInvert(false);   //setam revenirea la afisare normala a displayului

    Sketchul rezultat este cel de mai jos:

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 10

MD_Parola matrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

void setup() {
  matrix.begin();
  matrix.setIntensity(0);
  matrix.displayClear();
  
}

void loop() {
  matrix.setTextAlignment(PA_CENTER);
  matrix.print("Centru");
  delay(2000);
  matrix.setTextAlignment(PA_LEFT);
  matrix.print("Stg.");
  delay(2000);
  matrix.setTextAlignment(PA_RIGHT);
  matrix.print("Drp.");
  delay(2000);
  matrix.setTextAlignment(PA_CENTER);
  matrix.print(1234);
  delay(2000);
  matrix.setInvert(true);
  matrix.print("Centru");
  delay(2000);
  matrix.setTextAlignment(PA_LEFT);
  matrix.print("Stg.");
  delay(2000);
  matrix.setTextAlignment(PA_RIGHT);
  matrix.print("Drp.");
  delay(2000);
  matrix.setTextAlignment(PA_CENTER);
  matrix.print(1234);
  delay(2000);
  matrix.setInvert(false);
}

    Un filmulet cu montajul se poate vedea mai jos:

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.