モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)

Raspberry Pi アナログ入力 (I2C A/D コンバータ)

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

公開日公開日
2016/05/15
最終更新最終更新
2025/01/27
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    Pythonを使ったFlaskアプリ開発が得意

    0
    ステッカーを贈るとは?

    ADS1015 について

    Raspberry Pi には A/D コンバータが内蔵されていません。デジタル入出力、アナログ出力に加えてアナログ入力を行うためには外部 IC を利用する必要があります。ここでは I2C デバイスの ADS1015 を利用します。事前に I2C 設定を行っておいてください。

    Python ライブラリを用いたサンプル

    ADS1015 を扱うための専用ライブラリが Python で提供されています。

    Adafruit_Python_ADS1x15

    以下のコマンドでインストールします。

    sudo pip install adafruit-ads1x15
    

    以前は Adafruit-Raspberry-Pi-Python-Code レポジトリで提供されていましたが、管理が煩雑になったため分離されて pip での提供に変更になったようです。

    Over time we found it difficult to manage so much code in a single repository, and couldn't easily put the code on Python's package index for simple installation. Now we've broken out all of the previous Python code into individual GitHub repositories, and we've loaded all of these repositories on the Python package index so they can be installed with pip.

    回路図は以下の通りです。10k 可変抵抗で A/D 変換を試してみます。

    sample.py (公式ページにもサンプルコードがあります)

    #!/path/to/python
    # -*- coding: utf-8 -*-
    import Adafruit_ADS1x15
    import time
    
    CHANNEL = 0
    GAIN = 1
    
    adc = Adafruit_ADS1x15.ADS1015()
    
    while True:
        print(adc.read_adc(CHANNEL, gain=GAIN))
        time.sleep(0.5)
    

    GAIN の値は A0 端子に入力される電圧によって変更します。

    • 2/3: 0.0V - 6.144V
    • 1: 0.0V - 4.096V
    • 2: 0.0V - 2.048V
    • 4: 0.0V - 1.024V
    • 8: 0.0V - 0.512V
    • 16: 0.0V - 0.256V

    上記設定における ADS1015 の分解能は 11bit (2048) です。3.3V のアナログ入力がなされた場合の値はおおよそ 2048*(3.3/4.096) = 1650 です。

    他の言語で利用するための検討

    残念ながら Python 以外の言語で I2C 通信を行うためのライブラリが充実していません。データシートをもとに i2cget と i2cset コマンドを実行する方法も考えられますが、仕様が複雑です。リアルタイム性が損なわれますが、例えば python スクリプトをコマンド化して、それを各言語のシステム関数で実行するという方法も考えられます。

    adc.py

    !/usr/bin/python
    # -*- coding: utf-8 -*-
    import Adafruit_ADS1x15
    print(Adafruit_ADS1x15.ADS1015().read_adc(0, gain=1))
    

    sample.rb

    #!/usr/bin/ruby
    # -*- coding: utf-8 -*-
    
    while true do
      system "./adc.py"
      sleep 0.5
    end
    

    実行例

    pi@raspberrypi:~ $ chmod +x adc.py
    pi@raspberrypi:~ $ ruby sample.rb
    0
    179
    539
    963
    1340
    1615
    1645
    
    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    Pythonを使ったFlaskアプリ開発が得意

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • 任意の言語で Raspberry Pi デジタル入出力、アナログ出力 (PWM)
        サムネイル画像-ae21424afa
        python を用いた例 書籍や公式ドキュメントなどを見ると、Raspberry Pi は python を (発音が似ているからでしょうか) 標準的な言語としてサポートしているように思われます。python には GPIO を操作するライブラリが標準で導入されています。 デジタル出力 #!/usr/bi
      • Qoosky API + Raspberry Pi5 でLチカしてみた
        はじめに 今回は、Qoosky APIという、WebSocketを利用してインターネット接続されているArduinoやラズパイと通信できるAPIを利用して、Rapsberry Pi 5 でLチカをしてみました!この記事では、Qoosky APIの概要や特徴に触れたあと、Qoosky APIを利用したRapsberry Pi 5 でのLチカまでの方法についてご紹介させていただきます! Qoosky ...
        RSTRST2/24/2025に更新
        いいねアイコン画像1
      • Android Things による LED 点灯 (Raspberry Pi 3)
        サムネイル画像-cd5f619bd1
        電子工作や製品のプロトタイピング (例『地球規模で遠隔操作できるブルドーザー』) で利用される Raspberry Pi 3 について、 Android Things アプリケーションを開発できます。 本ページでは、簡単な例として LED を点灯させるアプリケーションを扱います。より実用的なアプリケーションを開発する際には [GitHub (Android Thin
      • Raspberry Pi 無線接続時の IP 固定
        wlan0 の IP 固定方法 Raspberry Pi の SSID とパスワード設定は終わっている前提で以下のファイルを編集します。 $ sudo vi /etc/network/interfaces 以下の 4 行を一番最後に追加します。適宜自分の環境用に IP を変えてください。 iface wlan0 inet static address 192.168.179.1
        OharaOhara11/30/2021に更新
        いいねアイコン画像0
      • Raspberry Pi ピン配置などを公式ドキュメントで調べる
        サムネイル画像-25c2e558f3
        公式ドキュメント Raspberry Pi 公式ドキュメントにはインストール方法や初期設定などが記載されています。 Raspberry Pi Documentation ピン配置 / GPIO [GPIO: Models A+, B+, Raspberry Pi 2 B and Raspberry Pi