swlin3223 wrote:剛剛組裝的顯示模組...(恕刪) 這個是LCD模組沒有正確的驅動,原因大概有2大類,1.程式錯誤2.接線錯誤LCD模組接線跟程式有分4BIT介面或8BIT介面,要確認你是哪種介面的接線,檢查接線程式的I/O PORT的分配也要對應接線的PORT上.
swlin3223 wrote:他的驅動模組只有4...(恕刪) 你這個LCD模組是有I2C轉接板的,走的也是I2C的接線,不是一般並列4BIT或8BIT的介面,ARDUINO內建的LCD驅動程式應該也有支援I2C的介面,要確認你的LCD驅動程式是並列還是I2C介面的.最好是把你的程式碼貼出來.也可以Google ARDUINO LCM1602 I2C 或ARDUINO LCM1602 IIC,看看別人程式是怎麼寫的.
Arduino有很多模組需要有相關的Library來驅動與執行相關功能。你這片是很常見的 I2C介面1602 LCD,Arduino範例的LiquidCrystallibrary 無法驅動 I2C介面類型的1602 LCD。買這類模組前先問問賣家有沒有提供相關驅動與範例程式,可以縮短摸索學習的時間至少有範例可以驅動測試東西是否正常,不然找不到驅動就變成沒用的東西了。你的問題是1. 接線錯了: LCD的 SDA、SCL 應該要接Arduino的SDA、SCL接腳。(請看我照片中的白黃線位置,白線SDA接腳,黃線SCL接腳)2. 沒有用到對的Library來驅動。 ( 這片1602 LCD 可以下載我附件中的Library驅動 )安裝到Arduino軟體後,範例中就會多一個LiquidCrystal_I2C 1602V1,裡面的範例就可以驅動這片I2C 1602 LCD。如果你對Arduino操作與電子相關概念還不熟悉,建議可以買"超圖解Arduino互動設計入門"這本書來看,這本書的內容由淺入深講解的很清楚。附加壓縮檔: 201511/mobile01-05f2c92a4765fc4dc4c33abd8ab3e100.zip
#include <LiquidCrystal.h>#define RS 2#define E 3#define D4 4#define D5 5#define D6 6#define D7 7LiquidCrystal lcd(RS,E,D4,D5,D6,D7); //建立 LCD 物件void setup() { //初始設定 (一次性)lcd.begin(16,2); //定義 LCD 為 2 列 16 行顯示器lcd.clear(); //清除螢幕lcd.setCursor(0,0); //游標移到左上角lcd.print("Hello World!"); //在第一列印出 Hello World!}void loop() { //無限迴圈lcd.setCursor(0,1); //游標移到第 2 列第 1 行lcd.print(millis()/1000); //印出秒數}
#include <LiquidCrystal.h>#define RS 2#define E 3#define D4 4#define D5 5#define D6 6#define D7 7LiquidCrystal lcd(RS,E,D4,D5,D6,D7); //建立 LCD 物件void setup() { //初始設定 (一次性)lcd.begin(16,2); //定義 LCD 為 2 列 16 行顯示器lcd.clear(); //清除螢幕lcd.setCursor(0,0); //游標移到左上角lcd.print("Hello World!"); //在第一列印出 Hello World!}void loop() { //無限迴圈lcd.setCursor(0,1); //游標移到第 2 列第 1 行lcd.print(millis()/1000); //印出秒數}這是我原來的上傳接線如下圖
swlin3223 wrote:#include <LiquidCrys...(恕刪) 你這一段程式碼比較像是用 1602 原本的連接埠,但是你現用了有加上 I2C 轉接的 1602,程式庫應該要換一下估狗了一下,找到一段可能的範例,供參考#include <LiquidCrystal_I2C.h>// Set the pins on the I2C chip used for LCD connections:// addr, en,rw,rs,d4,d5,d6,d7,bl,blpolLiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址I2C 界面還要設定 device 的位置,才能正常通訊,可以估狗 ardunio liquidcrystal_i2c 就有一些相關資料可以參考了。
swlin3223 wrote:安裝後進行編譯出現異常訊息..............如圖 你這是Library沒正確安裝LiquidCrystal_I2c 就是驅動這片I2C LCD的函式庫顯示 'LiquidCrystal_I2c' dose not name a type 表示Arduino IDE 不認識這個函式而預設認為這是使用者自定變數,才會出現變數未宣告類型的警告。搜尋一下你Arduino的Library目錄在什麼位置,Windows預設值會安裝在 媒體櫃>文件>Arduino>Library 這個目錄。我給你的檔案解壓縮後,裡面的子目錄放在 Arduino\Library這個目錄下。裡面應該要有這些檔案你的接線我查了一下腳位應該沒有問題,Arduino 的SCL與A5相通,SDA與A4相通,即使不接在原本的SCL與SDA上,接在A4、A5也是一樣的功能。你這片I2C LCD只要正確安裝Library是簡單就可以應用的以下程式碼中會定義包含LiquidCrystal_I2C.h 函式來使用這片LCD,市場上賣的這片LCD其 I2C定址基本上都是0x27 也不用改。#include <Wire.h>#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x27,16,2);最後在void setup() 中, 以 lcd.init(); 初始化這片LCD用lcd.print("Hello, world!"); 就可以顯示文字了。