今さら聞けないラズパイ×Linux超入門
A-D変換値のSPI 読取りとLCD表示のプログラミング
ラズパイのGPIOと通信方式
![]() |
---|
図1 SPI通信は,CE,MOSI,MISO,SCLKの4本でデータの送受信を行う.I$^2$C通信は,SDAとSCLの2本の信号線でデバイスのアドレスを指定し,データを送信する.画像クリックで動画を見る.または記事を読む.[提供・著]後閑 哲也 詳細:[VOD/KIT] ラズベリー・パイで学ぶLinux&Pythonプログラミング超入門 |
ラズベリー・パイ(ラズパイ)には,I$^2$CやSPIといった通信方式を利用できるGPIO(汎用入出力ピン)が搭載されています.これらを使うことで,外部デバイスとのデータ送受信が可能です.今回のテーマでは,SPI接続のA-Dコンバータ(ADC)MCP3002を使って電圧値を取得し,I$^2$C接続の液晶表示器(LCD)AQM0802に表示するプログラムを作成します.
- ラズパイのGPIOに接続されたSPI機器とI$^2$C機器を制御する
- A-Dコンバータ(MCP3002)を用いて電圧値を取得する
- 取得した電圧値をLCD(AQM0802)に表示する
SPIを使ったA-D変換の読取り
SPI(Serial Peripheral Interface)は,4本の信号線(MOSI,MISO,SCLK,CE)を用いた同期シリアル通信方式です.ラズパイでは,GPIO10(MOSI),GPIO9(MISO),GPIO11(SCLK),GPIO8(CE0)を使用してMCP3002と接続します.
MCP3002は2チャネルのA-Dコンバータで,ラズパイからSPI通信で制御できます.A-D変換の基本的な流れは以下のとおりです.
- CE(チップセレクト)をLowにしてMCP3002をアクティブ化
- 制御ビットをMOSI(送信)ラインに送る
- 変換結果をMISO(受信)ラインで取得
- CEをHighにして通信を終了
MCP3002の変換結果は10ビットのディジタル値として取得できます.取得した値を$V_{in}$に変換するには,以下の計算を行います.
\[ V_{in} = \frac{10\text{bitデータ}}{1024} \times 3.3V \]
I$^2$C通信によるLCD表示
I$^2$C(Inter-Integrated Circuit)は,SDA(データ)とSCL(クロック)の2本の信号線でデバイスと通信する方式です.ラズパイではGPIO2(SDA),GPIO3(SCL)を使ってLCDと接続します.
LCD(AQM0802)は,I$^2$Cバスに接続されており,アドレス0x3Eで識別されます.データ送信の手順は次のとおりです.
- LCDのアドレス(0x3E)を指定して通信を開始
- 制御コマンドを送信してカーソル位置を設定
- 表示するテキスト・データを送信
- 通信を終了
I$^2$C通信では,プルアップ抵抗(通常1.8k$\Omega$?4.7k$\Omega$)が必要です.〈著:ZEPマガジン〉
著者紹介
- 1971年 東北大学 工学部卒 大手通信機メーカにて制御機器開発に従事
- 1996年 ホームページ「電子工作の実験室」を開設
- 2003年 有限会社マイクロチップ・デザインラボ設立 代表取締役 計測制御システムコンサルタント,書籍執筆 セミナ講師
- 2012年 神奈川工科大学 工学部 客員教授
著書
- "[VOD/KIT/Book/data]ラズパイPico W×ChatGPT APIで学ぶ 会話型IoTエッジ開発,ZEPエンジニアリング株式会社.
- [VOD/KIT]PICマイコン オールイン1日学習キット ,ZEPエンジニアリング株式会社.
- [VOD/Pi KIT]ラズベリー・パイで学ぶLinux&Pythonプログラミング超入門,ZEPエンジニアリング株式会社.
- [VOD/Pi KIT]ラズパイ×Node-REDで作ろう!IoTアプリ開発入門,ZEPエンジニアリング株式会社.
- 電子工作のための PIC16F1ファミリ活用ガイドブック,技術評論社.
参考文献
- [VOD/KIT]STM32マイコン&Wi-Fiモジュールで学ぶ C/C++プログラミング入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]M5Stack Core2付き!ESP32で学ぶPython&Arduinoプログラミング入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]STM32マイコン&Wi-Fiモジュールで学ぶ C/C++プログラミング入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]M5Stackで一緒に作ろう!IoTセンシング・エッジ×クラウド連携システム開発[改訂版],ZEPエンジニアリング株式会社.
- [VOD/KIT]実習キットでできる!ラズパイPicoでマイコン入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]LabVIEW×Arduino!初めてのパソコン計測&制御【改訂版】,ZEPエンジニアリング株式会社.