(本文同步發表於 OSSLab)
這是 I2C 16x2 LCD:
標準 LCD 需要比較多的腳位,I2C LCD 可以減少腳位的使用,而且接線也比較簡單。這個 I2C LCD 的特性如下:
- 16x2 LCD,藍底白字,有背光
- 走 I2C 介面,設備地址為 0x27
- 可調整螢幕顯示對比
- 5V 供電,相容於 Arduino
接線辦法
參考上圖,接線方式為:
- SDA – 接 Arduino 的 Analog Pin 4 (Arduino Mega 為 Pin 20)
- SCL – 接 Arduino 的 Analog Pin 5 (Arduino Mega 為 Pin 21)
- GND – 接 GND
- VCC – 接 +5V
I2C LCD Library
- 16x2 LCD 請下載這個 library
- 16x4 LCD 請下載這個 library
範例程式
執行結果:
14 意見:
Hi,
想請教一下,我使用eclipse來complier結果出現一堆錯誤,Wire.cpp,但使用arduino 1.0.1版本,卻正常,可以run. 不曉得coopermaa可以解惑嗎?
因為試著解,好幾天了,但沒成功
謝謝!
https://docs.google.com/open?id=0B5r_jdatGk_hdWRqMHVjdk1jbUU
我前陣子有小玩一下 Arduino Eclipse Plugin (http://coopermaa2nd.blogspot.tw/2012/10/arduino-eclipse-plugin_10.html)
你是用這個嗎?
你的 project 確實編譯過不了關,原因是 Wire library 裏還用到它所附的 twi library (位於 C:\arduino-1.0.1\libraries\Wire\utility)
我剛試了一下,已經找出方法了,你試試看:
1. 在你的 Project 上按右鍵選 Properties
2. 切到 C/C++ General > Path and Symbols
3. 在右邊的窗格選 GNU C++, 點 Add,輸入 C:\arduino-1.0.1\libraries\Wire\utility
4. 重新編譯
感謝,
一直以來,都是用您的blog來學習arduino.
真是感謝
不客氣
之前我不曉得會有這編譯問題
有你的提問,我也因此學了一個經驗啊,哈~~
不好意思,又來請教問題了
最近看上I2C+LCD的用法,因為只佔用兩個腳位,感覺還挺方便的
不過因為東西還沒有入手想先瞭解一下
我想顯示的字數超過16個字應該會分段到第二行去
那有沒有辦法直接一次顯示多行資訊呢?
例如
第一行顯示數值一
第二行顯示數值二之類的
因為手上的做品參數日益增多,想弄個LCD來顯示這些參數
如果cooper maa兄有經驗,能否提醒一下呢?
感激不盡^^
用 lcd.setCursor(col, row) 設定游標就行了,比如:
// 將游標設到第一行,即 column 0, row 0
lcd.setCursor(0, 0);
lcd.print("1st Line");
// 將游標設到第二行,即 column 0, row 1
lcd.setCursor(0, 0);
lcd.print("2nd Line");
很簡單吧!? 相關資訊可參考這篇:
http://coopermaa2nd.blogspot.tw/2010/12/arduino-lab9-2x16-lcd-world.html
原來我文章看的不夠仔細,之前的教學就有提到了,真是不好意思^^a
總之,非常感謝Cooper maa的熱情回答^^b
不客氣啊,歡迎常來
請問有辦法設定接腳嗎?
(不像文章講的 4 .5 接腳)
這個 library 是用 Hardware I2C,所以只能用 pin 4 & pin 5 接腳
OK
了解
謝謝囉^^
剛剛發現一個叫作 SoftI2CMaster 的 library:
http://todbot.com/blog/2010/09/25/softi2cmaster-add-i2c-to-any-arduino-pins/
顧名思義,這個 SoftI2CMaster 便是軟體 I2C Library,可以讓你用任意 2 支腳位來做 I2C 通訊,不限於 Analog 4 & 5。
你可以試試用 SoftI2CMaster 改寫 I2C LCD Library
改好後記得分享一下啊 ^^
最近要段考
沒時間研究
改天在寫寫看
先收下囉 謝謝 ^^
Hi cooper maa你好,
我是初學者,想請教一下,如果我想用IR和16 X 2 LCD做個people counter,請問LCD果部份應該怎樣寫,IR果部份已經沒有問題,可以有trigger輸出,但唔知點寫在每次觸發輸入,LCD會自動加一,如果在同時在一個display內輸出兩組counter數字,是否只需改變輸出數字的位置就可以。
謝謝幫忙!
kc
張貼留言