参考
目的
- 0x80アドレスにデータを送ってLEDを光らす。(arduino的には、0x40
- たぶん、秋月でIOエキスパンダーを買った方が安い。
- UNO3は、軽くプルアップがかかっている、らしいが?、プルアップ抵抗は、必要(動けば正義!!!(プルアップ抵抗警察に捕まっちゃうよ!!!
結果
プログラム
//I2C_Slave_1bit_ext_out_C0116_1
//インクルド
#include <Arduino.h>
#include <Wire.h> // I2C
//定義
#define DD PB6 // OUTPUT pin x (ダイレクトドライブ)
//初期化
void setup() {
//I2Cの初期化
Wire.begin(0x80 >> 1); // I2Cスレーブアドレスの設定
Wire.onReceive(receiveEvent); // データが来ると呼ばれる関数
//GPIOの初期化
pinMode(DD, OUTPUT); // sets the LED pin as output
} //setup
//メインループ
void loop() {
delay(3); //ダミー
} //loop
//レシーブイベント(受信)
void receiveEvent(int howMany) {
int x = Wire.read(); // I2C受信データの読み込み
digitalWrite(DD, (x & 0x01)); // 1bit出力
} //receiveEvent