Maticový 32×16 LED displej modul P10

V tomto článku ti ukážeme základní práci s modulem LED displeje 32×16 bodů. Modul budeme ovládat pomocí Arduino UNO.

Příprava

Jako první je potřeba zprovoznit podporu pro ovládání v Arduino IDE. Pro jednoduchost použijeme knihovnu LedP10. Knihovnu stačí stáhnout, rozbalit a nakopírovat do složky s knihovnami Arduino IDE – C:\Users\xxxx\Documents\Arduino\libraries.
Knihovna ještě potřebuje jednu podpůrnou knihovnu a tou je TimerOne. Ta se nainstaluje již standardně pomocí Správce knihoven.

Tím je příprava hotová a můžeš se pustit do otestování.

Propojení panelu s Arduino UNO

Propojení Arduina s panelem nejlépe naznačuje následující obrázek:

Pro jednoduchost otestování není v případě použití jednoho panelu nutné zapojovat externí napájení panelu a postačí pouze propojení s datovými piny Arduina. Panel je napájen pomocí nich. Panel však nemusí dosahovat plného jasu LED diod, ale to na prvotní seznámení s funkcemi panelu není na závadu.

Test funkčnosti

Knihovna umožňuje jednoduchým způsobem na panelu zobrazovat statický a dynamický jednořádkový a dvouřádkový text, běžící jdnořádkový a dvouřádkový text.

Statický text

#include "TimerOne.h"
#include "SPI.h"
#include "LedP10.h"
 
LedP10 myled;

void setup()
{
  myled.init(3,4,8,9,1);
  /*
    P10 Pin A                - Arduino Pin 3
    P10 Pin B                - Arduino Pin 4
    P10 Store Pin            - Arduino Pin 8
    P10 OE Pin               - Arduino Pin 9
    Pocet propojenych panelu - 1 (Muze byt vice jak 10)
  */
}
void loop()
{
  myled.showmsg_single_static("123",0); // Pro jednoradkovy text
  //myled.showmsg_double_static("123", "456", 0); // Pro dvouradkovy text
  delay(500);
}

Procedura showmsg_single_static přijímá následující parametry:
showmsg_single_static(pole_znaku_k_zobrazeni, font);. Parametrem font lze vybrat jakým fontem se text zobrazí. V knihovně jsou k dispozici fonty dva – 0: Arial_Black_16 a 1: Arial_14. U dvouřádkového textu je automaticky použitý font 1: Arial_14 nehledě na nastavení.
U procedury showmsg_double_static je pouze navíc parametr s textem, který se má zobrazit na druhém řádku.

Dynamický text

Jedná se o statické zobrazování měnícího se textu, např. naměřené hodnoty na analogovém pinu.

#include "TimerOne.h"
#include "SPI.h"
#include "LedP10.h"
 
LedP10 myled;

void setup()
{
  myled.init(3,4,8,9,1);
  /*
    P10 Pin A                - Arduino Pin 3
    P10 Pin B                - Arduino Pin 4
    P10 Store Pin            - Arduino Pin 8
    P10 OE Pin               - Arduino Pin 9
    Pocet propojenych panelu - 1 (Muze byt vice jak 10)
  */
}
void loop()
{
  int analogValue1 = analogRead(A0);
  int analogValue2 = analogRead(A1);
  myled.showmsg_single_static(analogValue1, 0);
  //myled.showmsg_double_static(analogValue1, analogValue2, 0);
  delay(500);
}

Běžící text

#include "TimerOne.h"
#include "SPI.h"
#include "LedP10.h"
 
LedP10 myled;

void setup()
{
  myled.init(3,4,8,9,1);
  /*
    P10 Pin A                - Arduino Pin 3
    P10 Pin B                - Arduino Pin 4
    P10 Store Pin            - Arduino Pin 8
    P10 OE Pin               - Arduino Pin 9
    Pocet propojenych panelu - 1 (Muze byt vice jak 10)
  */

  myled.showmsg_single_scroll("Test beziciho textu", 2, 3, 0);
  //myled.showmsg_double_scroll("Test beziciho textu na 1. radku", "Test beziciho textu na 2. radku", 10, INF, 3, 1, 0);
  delay(1000);
}
void loop()
{

}

Procedura showmsg_single_scroll přijímá následující parametry:
showmsg_single_scroll( pole_znaku_k_zobrazeni, pocet_opakovani_zobrazeni_textu, rychlost_posouvani_textu, font);
Hodnota rychlosti se zadává v rozsahu 0 – 30, kde 0 znamená rychlost nejnižší a 30 rychlost nejvyšší. Nastavení fontu je stejné jako u statického textu.

U dvouřádkového textu:
showmsg_double_scroll( pole_znaku_k_zobrazeni_na_1radku, pole_znaku_k_zobrazeni_na_2radku, pocet_opakovani_textu_na_1radku, pocet_opakovani_textu_na_2radku , rychlost_posouvani_textu_na_1radku, rychlost_posouvani_textu_na_2radku, font);

Font je stejně jako u statického dvouřádkového textu automaticky nastaven na 1: Arial_14. Hodnoty počtu opakování a rychlostí posouvání se mohou u obou řádků lišit.

V našem příkladu je u druhého řádku použita hodnota počtu opakování INF. Tato hodnota značí, že text na daném řádku se bude opakovat stále. Tuto hodnotu lze použít i u jednořádkového běžícího textu.

Při použití hodnoty INF měj na paměti, že žádný další kód už nebude vykonáván, protože použitím této hodnoty je text zobrazován v nekonečné smyčce.

Řízení jasu panelu

Panel umožňuje i řízení jasu LED diod.

myled.setbrightness(50);

Tato procedura má pouze jeden parametr, který určuje hodnotu svítivosti LED. Nastavení jasu je možné v rozsahu 0 – 255, kde 0 znamená nejmenší jas – LED diody nesvítí a 255 znamená jas nejvyšší – LED diody svítí na plno.

Sdílet článek

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Mohlo by se také líbit