Arduino在1.8.5的程式庫上找不到Newliquidcrystal_1.3.5了,
雖然我更新了LiquidCrystal_PCF8574這個程式庫的說明,
但應該還是有人不想換程式庫跟重新修改程式,所以我自己把1.3.5找回來,
並且還找到了新的1.5.1,但語法有些不一樣,一併提供。
Arduino在1.8.5的程式庫上找不到Newliquidcrystal_1.3.5了,
雖然我更新了LiquidCrystal_PCF8574這個程式庫的說明,
但應該還是有人不想換程式庫跟重新修改程式,所以我自己把1.3.5找回來,
並且還找到了新的1.5.1,但語法有些不一樣,一併提供。
現在Arduino的涵式庫中對於LCD的支援越來越多了,對於PCF8574的支援也更方便,
因為PCF8574對I2C的支援讓1602A的使用很方便,所以不建議再使用傳統多位元的使用方式,
打開Arduino IDE的管理程式庫:
底下提供我自己的設備與心得,我最早玩的時候I2C bus還不算流行,
所以一開始是照著書上的範例用並聯匯流排的方式來實驗,
後來就改用I2C bus模組來節省I/O腳位。
I2C模組照片:
函式庫可以提供很多功能方便使用,底下先將常用的函式庫功能與寫法放上去:
首先程式一開始需依照硬體架構include相關的函式庫,
後面才能正確驅動硬體功能。
並列式用法:
#include <LiquidCrystal.h>
上一篇文章提到了I2C bus好處之一就是可以多個裝置共用匯流排,
但這會產生一個問題,究竟我的I2C bus上有多少裝置?裝置的address
又在哪裡?
所以在Arduino上有人寫了一個 I2C scanner程式,可以讓你執行後
知道匯流排上有多少個裝置,然後所使用的address又是多少。
底下提供我自己的設備與心得,我最早玩的時候I2C bus還不算流行,
所以一開始是照著書上的範例用並聯匯流排的方式來實驗,
後來就改用I2C bus模組來節省I/O腳位。
I2C模組照片:
1602A用並聯匯流排的問題在於太耗I/O腳位了,不管是8位元還是4位元,
最起碼要用上6個IO pin腳,如果還要做其他應用的話,容易顯得捉襟見肘,
所以就有人陸續改造成串連方式使用。
我手上使用的工具書--旗標的超圖解Arduino互動設計入門就有提到使用
74LS164 shift register這顆IC來將串列資料轉成並列資料給1602來使用,
上一篇PART1文章中有提供了1602A的接腳圖,
1602A使用一個8位元(D0-D7)及其他控制腳位作為匯流排(bus),如下圖:
實際上使用時通常是使用4位元模式以節省I/O腳位。
底下以arduino內建的函式庫與範例作為說明,先打開範例程式hello word