目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

Similar documents
訂正 _ 第 1 回 1 Arduino Arduino を用意する 入力 アナログ Analog 入出力 任意の電圧を扱える 電源系 外部入力 7 12V デジタル digital 入出力 リセットボタン Low High いわゆる 01 が入出力される 通常は Low 0V GND High 5

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

パーツリスト 組み立て前にすべてのパーツがそろっているかご確認ください 種類 品番 数 種類 品番 数 基板 I2C LCD 1 コンデンサ 0.1uF (104) 積層セラミック 1 IC ATtiny コンデンサ 10uF 電解 1 半固定抵抗 10~50kΩ 1 コネクタ IC ソ

MODBUS ユーザーズマニュアル 페이지 1 / 23

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

MW100 Modbusプロトコルによるデータ通信の設定について

アナログ・接点変換器

スライド 1

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

Arduinoで計る,測る,量る

スライド 1

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

< D A0>

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

IEEE1888 開発キットの活用 電力管理システムを作る 慶應義塾大学 メディアデザイン研究科 秋山寛子

iCLR

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

DCモータの制御

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例

(Microsoft Word - JE000250_\203\312TURTLE-RWModbusTCP\220\332\221\261\220\340\226\276\217\221\(4\224\305\).doc)

RA-485実習キット

Taro-テキスト.jtd

Microsoft PowerPoint - 14th.ppt [互換モード]

Industrial shields brochure_JP

USB モジュール

回路図 部品表 部品番号 型番 個数 U PIC6F823 I/ST (TSSOP 4pin) R 00Ω (/0W, 608) R2 - R9 360Ω (/0W, 608) 8 C μf (25V, 608) LED LN56RA CN ロープロファイルピンソケット CN2 ロープロファイルピン

INDEX 1 必要なものを準備しよう 各部の名称を確認しよう 電源を入れよう スイッチで LED を光らせよう BiZduino で Wi-Fi 通信しよう RTC を使ってみよう 参考資料 7 困ったら... 21

PowerPoint プレゼンテーション

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

AN-1077: ADXL345 Quick Start Guide

※ ポイント ※

AKI-PIC16F877A開発キット (Ver1

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

情報処理演習 B8クラス

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

920MHzLPWA無線モジュール IM920のご紹介

Microsoft PowerPoint - フェリカ通信仕様書_

はじめに 製作するシステム 外部へデータ保存 製作手順 全体回路図 ソフトウエアの作成 次へのステップ 付録 I2C インターフェースを利用して外付けのEEPRO Mへデータ保存を行います データを保存する方法にはいくつかあります 代表的な例を挙げます 保存媒体 応答速度 通信方法 必要端子 プログ

PowerPoint プレゼンテーション

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

ETCB Manual

GR-SAKURA-SAのサンプルソフト説明

Microsoft Word - FCTT_CS_Mod( )Jver1.doc

EU-SD/MCシリーズ アプリケーションノート

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

Studuinoプログラミング環境

MPL115A

GR-SAKURA-SAのサンプルソフト説明

SiTCP ユーティリティユーザガイド 2014 年 6 月 18 日 0.73 版 Bee Beans Technologies 1

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

PowerPoint プレゼンテーション

SpeC記述のC記述への変換 (SpecCによるソフトウェア記述の実装記述への変換)

電子13-06 エネメータ専用ソフト SAVER CAST for EneMeter Ver3.00設定方法.ppt

MINI2440マニュアル

組込みLinuxシステムに関する調査研究

シリアルEEPROMプログラマ

BluetoothLE 部 ( 無線部 ) 認証 国内電波法 : FCC:CWTUGMZ2AA CE:EN :EN 受信感度 -70dBm( 最大 ) 送信電力 +0dBm( 最大 ) 周波数 2402~2480MHz チャンネル間隔 2.0

作成 承認 簡単取扱説明書 (S&DL 水位計 ) 応用計測サービス株式会社 (1.1)

2006年10月5日(木)実施

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

RS-422/485 ボード取扱説明書 RS-422/485 ボード取扱説明書 Revision 0.3 コアスタッフ株式会社技術部エンジニアリング課 Copyright 2009 Core Staff Co.,Ltd. All Rights Reserved - 1 of 17

1. SMDLR2 SYSMACCCVM1 CVCQM1 PLC NestBus PLC PLC 2. PLC CPU PLC DCS PLC PLC SMDL PLC1 1 SMDL DiDo 512 AiAo 32 PLC PLC SMDLR2 K V AC L170

マニュアル訂正連絡票

注意 本製品は FCC Class A 装置です 一般家庭でご使用になると 電波干渉を起こすことがあります その際には ユーザーご自身で適切な処置を行ってください 本製品は FCC( 米国連邦通信委員会 ) 規則の Part15 に準拠したデジタル装置 Class A の制限事項を満たして設計され

<4D F736F F D2095CF88CA835A B F8EE682E888B582A290E096BE8F F6E F722D A5F

赤外線レーザー 360 距離センサ XV-11 LIDAR Sensor 取り扱い説明書 もくじ お使いになるまえに 各部のなまえと扱い方 2 使い方 (Processing GUI で使う ) 必要なソフトのインストール 3 接続方法 3 GUI の操作方法 4 使い方 ( ロボットに組み込む )

PowerPoint プレゼンテーション

FSC FSC-110 通信仕様書 (CC-Link 通信プロトコル )

このダイナミックリンクライブラリ GaugeC48.dll は 8CH から 48CH 用の DigitalGaugeCounterDG3000 シリーズ共通の DLL です この説明書は GaugeC48.dll を使ったアプリケーションを作成するためのものです 開発環境は MicrosoftVi

- 2 -

Prog1_12th

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

CC-Link通信

1 目次 1 目次 IO-Link システム概要 電源投入後 IO-Link プロトコル プロセスデータ (PD) サービスデータ (SD) イベント 伝送性能 リトライ QoS

KR-501 USB Serial Converter Module USB シリアル変換モジュール取扱説明書 Version2.3 対応版 USB Serial Converter はマイコンモジュールと PC 間を接続する際に使用する通信変換モジュールです ATMEGA Mini Module

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

ファイル入出力

講習会 Arduino

CommCheckerManual_Ver.1.0_.doc

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Arduino UNO IS Report No. Report Medical Information System Laboratory

ファイル入出力

DUSx200 シリーズコントローラ I2C インターフェース仕様書

第 7 章 TRX-305MB 基板上の各コネクタの信号 TRX-305MB 基板には, 周辺機器とつなぐためのさまざまなコネクタが搭載されています.TRX-305MB の機能を 拡張する場合に使います. また, ご自分で作った基板を接続することも可能です. それでは, 各コネクタのそれ ぞれの信号

みんなの Arduino 入門 課題と演習 本資料は みんなの Arduino 入門 を使っている方々への課題 ( 演習含む ) を参考としてま とめたものです 本書の理解度の確認と今後のステップアップのためにご利用下さい ( 最終更新日 :2014 年 4 月 25 日 ) 株式会社タブレイン T

UIOUSBCOM.DLLコマンドリファレンス

NCB564個別00版

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

UMB-CP2114 User's Manual

CS-DRC1操作説明書

Taro-ファイル処理(公開版).jtd


Microsoft Word - COP_MasterSim_Installation_Supplement_A00.doc

PSoC5LP で USBMIDI 2015/5/23 第 2 回 PSoC まつり (Sat) 於 本サイプレス本社 ( 中野 ) PSoC5LP で USBMIDI ectoyfan ectoyfan アラフィフ ( 電 回路玩具ファン ) Electronic Circui

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

スライド 1

Transcription:

第5回 Arduino入門 I2C通信編 プレゼン by いっちー

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラム 7 読込み 19 センサ読込み概要① 8 Arduinoの設定 20 センサ読込み概要② 9 加速度センサの設定 21 センサ読込み概要③ 10 シリアルモニタの表示 22 Unityへ送る 11 回路図 12 結線図

1 I2Cとは アイスクウェアドシーと読むよ フィリップス社で開発されたシリアルバス シリアル通信の一種 である 低速な周辺機器をマザーボードへ接続したり 組み込みシステム 携帯電話などで使われている ウィキペディアより いろんなセンサで使われているよ 他にもEEPROMや液晶 モータードライバなども制御できるよ 通信速度 1 標準モード 100kbps 2 ファーストモード 400kbps

2 センサの多くがI2Cに対応 ジャイロセンサ 照度センサ 地磁気センサ 加速度センサ カラーセンサ 気圧センサ 距離センサ 温度センサ 電流センサ 温度湿度センサ 雷センサ 秋月電子HPより

3 マイコンでのI2C通信例 I2C通信をする場合はマスター 同期用クロック信号 およびの書込み 読み込みの指示を行う側 とスレーブ 受け側 設定の必要なし を決める 同期用クロックを送信する の書込み 読み込みもこちらから指示を出す 設定の必要なし の送受信一本 マイコンA マスター マイコンB スレーブ クロック信号用一本 同期用のクロック信号をマスターから送信する

4 接続方法 スレーブは複数つなぐことができる プルアップ抵抗が必要 デバイス センサ は固有の を所有し マスターは送受信の指示 を各別に出せる 電源 各ラインは抵抗を介し 電源に接続する 低 抗 低 抗 マイコンA マスター クロック スレーブ側 デバイスA スレーブ側 デバイスA スレーブ側 デバイスA

5 タイミングパラメータ I2C通信の基本フォーマットは次の通り 1byteの書込み マスター スタート (S) スレーブ WRITE (W) レジスタ スレーブ ストップ (P) 複数のbyteの書込み マスター S スレーブ W レジスタ スレーブ P 1byteの読込み マスター S スレーブ W スレーブ リスタート (RS) レジスタ スレーブ READ (R) N P 複数のbyteの読込み マスター S スレーブ スレーブ W レジスタ RS スレーブ R N P

6 書込み スタートコンディション クロックがHighのときに がHigh Lowに変化 ストップコンディション クロックがHighのときに がLow Highに変化 WRITE 書込み要求 1bitの0 スタートコンディション を送信 通信を開始 スタート マスター (S) スレーブ 7bit のお尻に0を追加する 合計は8bit スレーブ WRITE (W) レジスタ スレーブ 書き込むレジスタの (8bit)を送信 ストップ (P) 書き込む (8bit)を送信 ストップコンディション を送信 8bitの受信ごとに(1bitの0)を返す 次のレジストに書き込まれる マスター S 連続でを 書き込む場合 スレーブ スレーブ W レジスタ P

7 読込み リスタートコンディション 一度 クロックをLowにしてから をHighにする それからスタートコンディションを送る READ 読込み要求 1bitの1 リスタートコンディションを送信する マスター S スレーブ W リスタート (RS) レジスタ スレーブ スレーブ 7bit のお尻に1を追加する N(1bitの1)を返す スレーブ READ (R) N P 連続でを 読込む場合 マスター S スレーブ スレーブ W レジスタ RS スレーブ R N P 次のレジストのが読み込まれる

8 Arduinoの設定 Arduino側の出力ピン SDAピン 出力用 SCLピン クロック用出力

9 加速度センサの設定 ADXL345 アナログデバイセス の出力ピン クロック用 電源 3.3V GND 電源 3.3V 電源 3.3V プルアップ抵抗は基板に搭載 センサ仕様より 電源電圧範囲 2.0 3.6V 3.3Vで使用する センサの使用する電圧値と Ardunoの信号の電圧値が合わないよ 用 セレクト用 不使用

10 電圧変換モジュールの設定 I2Cバス用双方向電圧レベル変換モジュール PCA9306 の出力ピン 電源 5V 電源 3.3V SCL センサ SCL Arduno SDA センサ SDA Arduno 不使用 5Vの信号を3.3Vに 3.3Vの信号を5Vに変換するよ GND

11 回路図 Arduino 加速度センサ 電圧レベル変換モジュールの接続

12 結線図 下記のように結線する センサのCS SDOは基板裏面で結線済み

13 結線写真

14 WHO_AM_I デバイスは固有のIDを持っている ADXL345シートより抜粋 0x00のレジスタに固有 11100101 が格納されている これを読込んでみる 11100101 2進数 229 10進数 まずはI2C通信ができているか確認するため 固有IDを確認する

15 I2C読込みプログラム プログラムをArduinoに書込む ツールからシリアルモニタを開く 固有ID 229 が表示される

16 I2C読込みスクリプト概要① #include <Wire.h> I2C用ライブラリ Wire.h を追加する #define AclSenAdrs 0x1D AclSenAdrsを 0x1D と定義する センサの これ以降AclSenAdrsは0x1Dと書いたことと同じになる int AclSen int 整数型 の変数AclSenを宣言する Wire.begin() Wireライブラリの初期化 Arduino側をマスタと定義する Serial.begin(9600) マイコン側の通信速度を設定9600bps(ビット/秒)にする Serial.println(AclSen) パソコンに文字列 文字+改行 AclSen を送信する delay(500) 500ms待つ

17 I2C読込みスクリプト概要② Wire.beginTransmission(AclSenAdrs) I2C通信の開始 スレーブ側のの定義する endtransmission()で送信を実行する Wire.write(0x00) 読込みを開始するレジストの定義 Wire.endTransmission() スレーブデバイスに対する送信を完了 Wire.requestFrom(AclSenAdrs, 1) スレーブをもう一度定義 レジスタ 0x00 から1のを読み込む AclSen = Wire.read() 読込んだをAclSenに格納 参考 1byteの読込みタイミングパラメーター マスター S スレーブ スレーブ W リスタート (RS) レジスタ スレーブ READ (R) N P

18 センサ読込みプログラム プログラムをArduinoに書込む 加速度センサを動かすと 値が変化する ±2Gを±256として表示する

19 センサ読込み概要① Wire.beginTransmission(AclSenAdrs) Wire.write(0x2D) Wire.write(0x08) Wire.endTransmission() 書込みレジスタ 0x2D を定義し 0x08 00001000 の書き込みを実行する Measureモードになり 測定が開始される 参考 1byteの書込みパラメーター マスター スレーブ スタート (S) スレーブ WRITE (W) レジスタ ストップ (P) ADXL345シートより抜粋 Measureビットを1にすると測定モードになる 0だとスタンバイモード 初期値はすべて0となっている またレジスタ0x31を変更すると 測定レンジを±2g ±4g ±8g ±16g 変更できる 初期値では±2gとなっている

20 センサ読込み概要② Wire.requestFrom(AclSenAdrs,2) レジスタ 0x32 から2のを読み込む Wire.available read()で読み取ることができるバイト数を返す このプログラムの場合 最初は2で 2回を読み込むと0になる AclSenL = Wire.read() AclSenH = Wire.read() レジスタ 0x32 のをAclSenLに格納 レジスタ 0x33 のをAclSenHに格納 X方向の加速度は全10ビットある 0x32 には下位の8ビット 0x33 には上位2ビットが分けられて入っている 参考 複数のbyteの読込みパラメーター マスター S スレーブ スレーブ W レジスタ RS スレーブ R N P

21 センサ読込み概要③ AclSen = 0; AclSen = AclSenL + AclSenH * 0x100 上位2ビットと下位8ビットをつなぎ合わせ 10ビットのを作成する がX方向の正となる ADXL345シートより抜粋 ±2g設定では全は10ビットになる ADXL345シートより抜粋 0x32 にはX方向下位の8ビット 0x33 には上位2ビットが分けられて入っている

22 Unityへ送る Unityへ送る 概要 AclSen = AclSen/4; Unityにを送るために を10ビットから8ビットに減らす AclSen = AclSen + 127; が±になっているので正の 整数に変換する -64 +64が0 +127になる 第三回と同じようにすれば Unityとを送受信できるよ 第三回のUnityプログラムで受け取れる のは8ビットの正の整数

訂正 誤 電源 5V 正 電源 3.3V 電源 3.3V 電源 5V SCL Arduno SCL センサ SCL センサ SCL Arduno SDA Arduno SDA センサ SDA センサ SDA Arduno 不使用 GND 不使用 GND

Arduino入門 は 以上で終了です みなさん 長い間お疲れさまでした