影片中的LCD螢幕和WII的左手搖桿都是利用I2C介面控制的,
這裡一樣是參考Cooper Maa大大的文章,
WII nunchuck: http://coopermaa2nd.blogspot.tw/2012/08/wii-nunchuk-arduino.html
I2C LCD: http://coopermaa2nd.blogspot.tw/2012/09/i2c-16x2-lcd.html
(線路接法)
基本上超級簡單的,把Arduino的數位接腳A2~A5拉到麵包板上,SCL接A5,SDA接A4,VCC接A3,GND接A2,
至於WiiChuck的話,也是一樣的接法,但是因為上面可能沒印接腳,所以請記得最靠近切邊的是GND,或是使用下圖來幫助接線
為什麼LCD可以直接由A2跟A3供電呢?其實這是因為WIICHUCK的library會把A2變成HIGH電位,準備供電給NunChuck所以就可以供電了。
不過其實NunChuck的工作電壓應該是3.3V,所以最好是另外接電給NunChuck。
程式碼下載處:https://box.nctu.edu.tw/public.php?service=files&t=6f1ed03752ae4e587e1036cb1e02f625&download
程式碼如下:
#include #include #include <LiquidCrystal_I2C.h> Wiichuck wii; LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { Serial.begin(115200); wii.init(); wii.calibrate(); // calibration lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); } void loop() { if (wii.poll()) { lcd.clear(); lcd.setCursor(0, 0); //lcd.print("joy:"); lcd.print(wii.joyX()); lcd.print(","); lcd.print(wii.joyY()); lcd.print(","); //lcd.print("accle:"); lcd.print(wii.accelX()); lcd.print(","); lcd.print(wii.accelY()); lcd.print(","); lcd.setCursor(0, 1); lcd.print(wii.accelZ()); lcd.print(","); //lcd.print("button:"); lcd.print(wii.buttonC()); lcd.print(","); lcd.print(wii.buttonZ()); //lcd.println(""); } delay(1000); }
----
其他資訊
1. I2C教學影片:http://www.youtube.com/watch?v=D29NePyvxNI。By 立錡資訊。
2. I2C介面的SDA跟SCL BUS應該要有上昇電阻,不過我在教學文章裡都沒看到?但是都可以動。還是說這顆電阻被Arduino內建了?
3. I2C BUS上的電容,不可以超過400pF。
留言列表