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.
Jedna odpověď
Knihovna TimerOne není kompatibilní s Arduino Uno R4 WiFi a knihovna LedP10 sama od sebe vyžaduje knihovnu TimerOne. Je nějaká možnost použití jiných knihoven, bez nutnosti zakoupení jiného arudina?
Také po stáhnutí knihovny LedP10, je soubor „LedP10.h“ napsán jako „ledP10.h“, tudíž není kompatibilní s vaším kódem :).