ボタン動作
ボタンを押したときに、LEDを表示させるようにするプログラムは、次のようになります。
#define BTN_A 5
#define BTN_B 11
#define COL1 4
#define COL5 10
#define ROW1 21
void setup() {
pinMode(BTN_A,INPUT);
pinMode(BTN_B,INPUT);
pinMode(COL1, OUTPUT);
pinMode(COL5, OUTPUT);
pinMode(ROW1, OUTPUT);
digitalWrite(COL1, 1);
digitalWrite(COL5, 1);
digitalWrite(ROW1, 1);
}
void loop() {
if(!digitalRead(BTN_A)){
digitalWrite(COL1, 0);
}else{
digitalWrite(COL1, 1);
}
if(!digitalRead(BTN_B)){
digitalWrite(COL5, 0);
}else{
digitalWrite(COL5, 1);
}
}
ボタンAを押すと左上のLEDが点灯、ボタンBを押すと右上のLEDが点灯します。
タッチセンサ動作
micro:bitには、タッチセンサとして働く機能があります。micro:bit端子の「0」、「1」、「2」と表示されている端子と、LEDの上にある「ロゴ」が、タッチセンサとして働きます。
この中の「ロゴ」は、Arduinoのポート設定を見ると、26番に割り当てられていますが、動作しませんでした。
Arduinoのポート設定は、[hardware\nRF5\0.8.0\variants\BBCmicrobitV2]フォルダにあります。
[variant.h]のファイルにArduinoで利用できる定義名が書かれています。
[variant.cpp]ファイルにCPUの端子とArduinoのポート番号を関連付けているファイルです。
端子「0」、「1」、「2」はそれぞれ、Arduinoのポート「0」、「1」、「2」に割り当てられています。読み取るときに、アナログ入力「analogRead」で処理します。
#define TOUCH0 0
void setup() {
Serial.begin(9600);
pinMode(TOUCH0,INPUT);
}
void loop() {
Serial.println(analogRead(TOUCH0),DEC);
}
実行させ、「シリアルプロッタ」で表示すると、グラフにしてくれます。 3つのポートとも同じ動作をします。


0 件のコメント:
コメントを投稿