---
parent: ControllerRoot
title: コントローラー製作
date: 2016-12-8
tags: 製作, ラダー回路, 回路, DA変換
---

コントローラ製作に関することについて説明します.
説明の項目は以下のとおりです.

* 部品入手
* 製作
* 説明
* 参考文献

===

# 部品入手

    |[部品一覧]
    | 部品名    | 個数          |
    |-----------|--------------|
    | ボタン    | ボタンの個数   |
    | 10KΩ抵抗  | ボタンの個数   |
    | 2KΩ抵抗   | ボタンの個数 + 1 |
    | 1KΩ抵抗   | ボタンの個数 - 1 |
    | ロジックIC(NOT) | ボタンの個数とICピンに応じて変更 *1 |
    
    *1: 例えば、ボタンの個数が6つでICの入力ピンが6つならば必要なICは1つです。

# 製作
    ここではボタンの個数を6つとします.

    # スイッチ部分の回路
        ![スイッチ部分の回路](CURRENT_DIR/Images/Controller/Img1.PNG)

        # x0 ~ x5
            "複数のスイッチ情報を一つにまとめる回路"にあるy0~y5へそれぞれつなぎます。

            詳しく説明すると、合計6個あるボタンにそれぞれ番号―No.0 ~ No.5―をつけるとします.
            No.0~No.5のボタンにあるxピンをそれぞれx0,x1,x2,x3,x4,x5と名付けます.
            そしてx0ピンをy0ピンに、x1ピンをy1ピンに、x2ピンをy2ピンに、x3ピンをy3ピンに、x4ピンをy4ピンに、x5ピンをy5ピンに接続します.


    # 複数のスイッチ情報を一つにまとめる回路(D/A変換)
        ![DA変換回路](CURRENT_DIR/Images/Controller/Img2.PNG)

        # input
            Arduinoに接続するピンです.

# 説明
    # 概要
        複数のスイッチ情報を一つにまとめることができるのはD/A変換のおかげです。
        各スイッチのon,off情報をD/A変換でアナログ値に変えます。
        このアナログ値―0~5V内の電圧値―をArduinoのanalogRead関数で読み込むことで複数のスイッチ情報を1ピンで読み込むことができます。

    # D/A変換
        このコントローラーが使っているD/A変換回路はラダー回路^[url1]というものです.

    # Arduinoに送られるアナログ値
        Arduinoに送られるアナログ値は次の通りです.

        
        $n$: ボタン数 $(n \leq 8)$; デジタル値: $\leq 2^n - 1$
        
        $$アナログ値 = (5V/2^n) \times デジタル値$$

        例: ボタンが3つのとき

        ![ラダー回路](CURRENT_DIR/Images/Controller/Img3.PNG)

        |[ビット値と出力電圧の関係]
        | RB2 | RB1 | RB0 | デジタル値 | output(アナログ値) |
        |-----|-----|-----|-----------|-------------------|
        | 0   | 0   | 0   | 0         | 0                 |
        | 0   | 0   | 1   | 1         | 0.625             |
        | 0   | 1   | 0   | 2         | 1.250             |
        | 0   | 1   | 1   | 3         | 1.875             |
        | 1   | 0   | 0   | 4         | 2.500             |
        | 1   | 0   | 1   | 5         | 3.125             |
        | 1   | 1   | 0   | 6         | 3.750             |
        | 1   | 1   | 1   | 7         | 4.375             |


--------------------------------------------------------------------------------
[url1]: [ラダー抵抗回路によるD/A変換の仕組み(accessed: 1.31.2016)](http://homepage3.nifty.com/mitt/pic/pic7_16.html)