LCD液晶顯示器

LCD1602雖然小,能夠顯示的文字資訊不會太多,再加上沒辦法顯示中文,最近逐漸有被OLED和TFT取代的趨勢,但因為它便宜而且有厚實感,所以還是有滿多人使用這種old school的顯示器。之前原本的BlocklyDuino的LCD積木我覺得功能不多,所以又重新寫了它的積木,並新增了可以顯示一些特殊符號的積木,還加上了可以顯示自訂圖案以及捲動的功能,希望有使用到這個顯示器的人有更多的功能可以使用。這個積木除了可用在LCD1602,也可以用在LCD2004上。積木的位置在「吉哥積木」→「模組」→「LCD顯示器裡。

範例一:顯示溫濕度感測值

以下的程式在ESP32的GPIO13連接DHT11溫濕度感測器,並將感測值顯示在LCD1602螢幕上。


程式結果:

範例二:顯示特殊字元

有一些ASCII的特殊字元無法用鍵盤輸出,這個時候可以靠ASCII的編碼來顯示。例如圓周率𝝿這個符號,從以下的符號表可以看出它的位置,𝝿的橫座標是1111,縱座標是0111,組合成的二進位編號是11110111或是十進位的247(先橫後縱)

以下的範例顯示二行文字
𝝿×2=2𝝿
angle=180°


程式結果:

範例三:顯示自建點陣圖

除了顯示一般英數字及ASCII特殊字元之外,也可以自行以點陣圖的方式繪製想要顯示的任何符號、圖案,甚至是中文。LCD1602提供8個自建點陣圖的空間提供繪製,這些自建自元編號是0~7,透過這些編號便能夠將你想要的圖案顯示在LCD上。LCD1602的每個字元寬5像素,高8像素,所以可以提供繪製的大小是5*8,如果想要繪製中文字的話,簡單筆畫的中文OK,太複雜就不行。以下這二個積木,一個提供繪製的空間,另一個積木則是顯示在LCD上的積木,搭配相同的編號(0~7)即可。


以下的程式從NTP抓取正確的時間放入RTC之後,讓正確時間顯示在LCD上,而且會出現年、月、日等中文。年、月、日是以自建點陣圖的方式繪製,並在LCD上適當的座標軸顯示出來。


程式結果:

範例畫面的捲動

除了顯示特殊文字或是自訂點陣圖之外,LCD螢幕還有捲動的功能。LCD1602寬度能容納16個字元,如果字串長度超過16,也可以用捲動的方式以跑馬燈的型式在畫面上向左或向右捲動。以下的程式在螢幕上會顯示「2024年1月1日 Happy New Year!」,並且以每800毫秒向左捲動一個字。