---
# System prepended metadata

title: 卒業研究経過報告(Eチーム)#17

---

# 卒業研究経過報告(Eチーム)#17
メンバー：鈴木, 堀
[前回のメモ](https://hackmd.io/yrV__nm3Qy6rEMMwB9zVUA)

## 今回やること
マルチプレクサがどのような配線で正しく動くのかをLEDを使い確認する。
## 実験
プログラムを使用しないで、回路だけで各LEDを光らせる。その後プログラムでチャンネルを切り替え、狙ったLEDを光らせる。
#### マルチプレクサをつなげる場所
| microbit(pin)|マルチプレクサ |  |  | 
| ---- | ---- | ----- | ----- |
|7(digital)|A||      | 
|8(digital)|B||
|9(digital)|C|
|3.3V|VCC|COM|
|gnd|INH|VEE|GND|

|マルチプレクサ|7 | 8 | 9 | 
| ---- | ---- | ----- | ----- |
|2|0|1|0      | 
|1|1|0|0
|0|0|0|0
|3|1|1|0

上の表はマルチプレクサのpinをどこにつなぐかまとめたものと7, 8, 9のdigitalpinのどこに電流を流すとマルチプレクサのどこのチャンネルに信号が送られるかまとめたものである。
また、マルチプレクサの2, 1, 0, 3チャンネルはそれぞれLEDにつながり、そのあとgndにつながっている。
#### 回路のみで指定したLEDを光らせる
回路のみで指定したLEDを光らせるにあたり、マルチプレクサのA,B,Cをmicrobitの3.3V,gndに繋いだ。こうすることでプログラムで制御せずに流したい箇所にのみ電流を流せるので、特定のチャンネルをonにできる。

#### LEDを順番に光らせるコード
上記の実験のように指定したチャンネルをonにするために、プログラムで各pinのハイローを指定する。そして四つのチャンネルを一秒ごとに、計4秒間順番に光らせるプログラムを作成する。
```　=c+
#include"MicroBit.h"
#define ID_READ_BUTTON  10
//読み取りボタンインスタンスのID7
MicroBit uBit;
MicroBitButton readButton(MICROBIT_PIN_P19, ID_READ_BUTTON, MICROBIT_BUTTON_ALL_EVENTS, PullUp);

//LEDを順番に表示
void read(){
    static MicroBitPin muxControl[3]={uBit.io.P7, uBit.io.P8,uBit.io.P9};//マルチプレクサ操作用ピン
    //チャンネル2をonに
    muxControl[0].setDigitalValue(0);
    muxControl[1].setDigitalValue(1);
    muxControl[2].setDigitalValue(0);
    uBit.sleep(1000);
    //チャンネル1をonに
    muxControl[0].setDigitalValue(1);
    muxControl[1].setDigitalValue(0);
    muxControl[2].setDigitalValue(0);
    uBit.sleep(1000);
    //チャンネル0をonに
    muxControl[0].setDigitalValue(0);
    muxControl[1].setDigitalValue(0);
    muxControl[2].setDigitalValue(0);
    uBit.sleep(1000);
    //チャンネル3をonに
    muxControl[0].setDigitalValue(1);
    muxControl[1].setDigitalValue(1);
    muxControl[2].setDigitalValue(0);
    uBit.sleep(1000);
}
//ボタンを押した時
void OnButton(MicroBitEvent){
    uBit.display.disable();
    read();
    uBit.display.enable();
}
//メイン
int main(){
    uBit.init();
    uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, OnButton);
    while(true){
        uBit.sleep(1000);
    }
}
```
## 結果
#### 回路のみで光らせた時
![](https://i.imgur.com/idhWgOW.jpg =200x)![](https://i.imgur.com/fmbuP89.jpg =200x)
![](https://i.imgur.com/e8eSJfY.jpg =200x)![](https://i.imgur.com/YDqTWrV.jpg =200x)
#### プログラムで順番に光らせた時
* 動画は貼り方が分からなかったため別で再生を行う。

## 考察
上の画像を見るとわかるように光らせたいLEDを光らせることができている。このことから正しい配線でマルチプレクサが動作していると言える。

## 次回やること
今回の結果をもとに今まで使っていた回路を直し計測を行う。

## 参考資料
[マルチプレクサ仕様書](https://www.chip1stop.com/pdf/product/TOSH/TC74HC4051AF_TC74HC4053AP_JA_DATASHEET_071001.PDF)