Thijs
2016-09-25 16:40:28 UTC
我的設置如下:
- Arduino IDE 1.6.11
- 作為ISP的Arduino Pro Mini
- 帶I2C板的ATtiny85 1602A LCD
我使用的庫是:
- TinyWireM(來源: https://github.com/adafruit/TinyWireM)
- LiquidCrystal_I2C(針對ATTiny進行了修改)(來源: http://playground.arduino.cc/Code/USIi2c)
草圖I用於測試:
#include <TinyWireM.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F,16,2); //設置地址& 16個字符/ 2行void setup(){TinyWireM.begin(); //初始化I2C lib lcd.init(); //初始化LCD lcd.backlight(); lcd.clear(); //將消息打印到LCD。} void loop(){lcd.setCursor(0,0); lcd.print(“ Hello World on Attiny85”); delay(2000);}
地址為0x3F,我是使用掃描儀草圖找到的,我還直接使用Arduino Pro Mini測試了LCD,效果很好。
此設置的結果是一行黑色塊。我的猜測是初始化以某種方式失敗了。我已經嘗試了一些方法來使其工作:
- SDA和SCL上的上拉
- 與Arduino隔離,具有穩壓電源
- 設置合同背面裝有電位計
- 重新安裝PC
- 重新安裝Arduino IDE
- 1MHz,8Mhz,TinyCore默認值和高科技含量較低的
- 已更換FTDI
- 已更換Tiny85
- 已更換LCD
- 已更換Arduino Pro Mini
一些圖片:
[編輯]
最終草圖:
#include <TinyWireM.h> //用於ATTinys的I2C主庫USI // #include <LiquidCrystal_I2C.h>#include“ LiquidCrystal_attiny.h” LiquidCrystal_I2C lcd(0x27,16,2); void setup(){//現在設置LCD
//lcd.begin(16,2); //初始化LCD pinMode(4,OUTPUT); lcd.init(); lcd.backlight(); lcd.home(); //回家lcd.print(“ Weatherstation”); lcd.setCursor(0,1); //轉到位置lcd.print(“ BMP180”); delay(2000);}無效循環(){digitalWrite(4,HIGH);延遲(100); digitalWrite(4,LOW); delay(100);}
評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/46142/discussion-on-question-by-thijs-attiny85-i2c-lcd)。
好像您沒有連接SCL線.....確保您使用的是正確的引腳!對於SDA,默認為pin0;對於SCL,默認為pin2。
請在上面的聊天室中發表更多評論。此處發布的評論可能會被刪除。
只是一個問題,當您可以使用Arduino編程任何I2C時,為什麼要使用和ATtiny?附言請嘗試學習,所以請不要討厭這個問題。
沒問題,我會跳過我通常的仇恨回复:)尼克可能會因為不使用聊天框而討厭回复,哈哈。我選擇Arduino上的ATTiny,因為我的項目會睡很多,並使用3.7V電池電源。 ATTiny將運行數週/數月,而Arduino運行數天。