株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。

Arduino

Arduino UnoでSPI通信(その2)温度センサADT7310

投稿日:2017年3月11日 更新日:

Arduino UnoでSPI通信の2回目です。前回の Arduino UnoでSPI通信(その1)Arduino2台で通信ではArduino Uno2台でSPI通信を確認しました。今回は実際のデバイスでデータを取得します。ここではADT7310という温度センサを使いました。以前に以下でADT7410を使いましたが、ADT7410はI2C通信で、今回のADT7310はSPI通信です。通信方法以外は同じような使い方なのでここではADT7310を使ってみました。
温度センサADT7410(その2)Arduinoでの利用

ADT7310は以下を使っています。
ADT7310使用 高精度・高分解能 SPI・16Bit 温度センサモジュール

Arduino Unoとは以下のように接続します。
ADT7310 – Arduino
CS – Pin10 SS(CS)
SDI – Pin11 MOSI
SDO – Pin12 MISO
SCL – Pin13 SCK
VDD – 5V
GND – GND

スケッチは以下です。
(※2017/03/23 ソフトウェアリセットを追加しました。これで動作が安定しました。)
(※2017/05/29 問題がありましたのでスケッチを修正しました。)

#include <SPI.h>

/*
 * ADT7310での温度データ取得
 * ADT7310 - Arduino
 *  CS  - Pin10 SS(CS)
 *  SDI - Pin11 MOSI
 *  SDO - Pin12 MISO
 *  SCL - Pin13 SCK
 *  VDD - 5V
 *  GND - GND
 */

int SSPin = 10; // Pin10をSS
 
// 初期化
void setup(void) {
  pinMode(SSPin, OUTPUT);
  Serial.begin(9600);
   
  SPI.setBitOrder(MSBFIRST);  //最上位ビット(MSB)から送信
  SPI.setClockDivider(SPI_CLOCK_DIV128); //通信速度を遅く設定
  SPI.setDataMode(SPI_MODE0); //CPOL(クロック極性):0 CPHA(クロックフェーズ):0

  SPI.begin();
 
  SetSSPin(LOW);

  //ソフトウェアリセット
  SPI.transfer(0xFF);
  SPI.transfer(0xFF);
  SPI.transfer(0xFF);
  SPI.transfer(0xFF);
    
  SPI.transfer(0x54);    // 測定開始(continuously read)
  delay(500);            // 仕様上は、240msで開始
}
 
// メインループ
void loop(void) {
  uint16_t uiVal;
  float fVal;
  int iVal;
 
  uiVal = (uint16_t)SPI.transfer(0) << 8;  // AD変換値 上位
  uiVal |= SPI.transfer(0);                // AD変換値 下位

  uiVal >>= 3;                          // シフトで13bit化   
  //uiVal = 0x1fff; //確認テスト用
 
  if(uiVal & 0x1000) {               // 13ビットで符号判定
    iVal = uiVal - 0x2000;         // マイナスの時 (10進数で8192)
  }
  else{
    iVal = uiVal;                 //プラスの時
  }
  
  fVal = (float)iVal / 16.0;           // 温度換算(摂氏)
  Serial.println(fVal, 4);             // シリアル送信
  
  delay(5000);          //例として5秒待つ
}

/*
 * SSピンの設定
 * Lowでマスタからの通信が有効(セレクト)
 * (Highではマスタから通信出来ない(無視される)セレクト解除の状態)
 */
void SetSSPin(int val)
{ 
    digitalWrite(SSPin, val); 
}

このスケッチでは単純に13ビットモードで温度データを取得しています。SPI通信の処理はArduinoのライブラリで処理しています。初期設定の部分はこのように書いたらデータが取得出来たというところもあります。

温度データは以下のように確認出来ました。

ADT7310は16ビットモードでの温度取得も出来ます。またSPI通信に関しては複数のスレーブになった場合のSS(CS)の使い方などが難しくなってくるとは思いますが、今回はここまでにします。

【永久保証付き】Arduino Uno

Arduinoをはじめよう 第3版 (Make:PROJECTS)

AdSense

AdSense

- Arduino

執筆者: joekool55jp

関連記事

Arduino CC3000 WiFi シールドを使ってみた

前回の記事では、Arduino Ethernetシールドの旧製品版を使ってみました。今回は、CC3000 WiFi シールドを使ってみました。以下の製品です。 CC3000 WiFi シールド 以下は …

Arduino互換機の「びんぼうでいいの(S)」を使ってみた

Arduino互換機のびんぼうでいいの(S)という製品を買ってきて使ってみました。 これは何といってもネーミングにインパクトがあったので買いました。メーカのaitendoのページによると、「お金をかけ …

感染症対策のためのIoT技術(その3)超音波距離センサーでの距離測定

感染症対策のためのIoT技術について書いています。今回は超音波距離センサーでの距離測定についてです。 新型コロナウイルスによる感染症の対策が始まってから意識する必要が出てきたソーシャルディスタンスとい …

ESP-WROOM-02でもセンサネットワーク稼働試験

ESP-WROOM-02でもセンサネットワークを稼働してみます。ESP-WROOM-02でもというのは今までRaspberry Piで稼働してきたのでESP-WROOM-02でも稼働してみようというこ …

LeafonyでRCカーを作ってみました(その1)全体概要・導入編

Leafonyとは以下の公式ページによりますと「超小型、電池で動く、組み立て簡単なオープンイノベーション・プラットフォーム」とのことです。 トリリオンノード研究会 用語の説明 Leafony(リーフォ …

PREV
Arduino UnoでSPI通信(その1)Arduino Uno2台で通信
NEXT
Raspberry Piでも温度センサADT7310をつかってみる
no image

2023/03/29

代表西田五郎のメールアドレス変更につきまして

no image

2023/03/29

株式会社インデペンデンスシステムズ横浜は鋭意営業中です

2021/06/07

Raspberry Pi 4にOpenCVをインストールしてPythonで動作確認

2021/05/31

Kivyでの画面遷移(Screen Managerの使い方)について

2021/05/20

Raspberry PiでKivy2.0.0を導入する

  • 代表西田五郎のメールアドレス変更につきまして
  • 株式会社インデペンデンスシステムズ横浜は鋭意営業中です
  • Raspberry Pi 4にOpenCVをインストールしてPythonで動作確認
  • Kivyでの画面遷移(Screen Managerの使い方)について
  • Raspberry PiでKivy2.0.0を導入する
  • 3Dプリンター (6)
  • Android (11)
  • Arduino (20)
  • ASP.NET (24)
  • Bluetooth Low Energy (4)
  • debian (3)
  • iOS (3)
  • IoT (12)
  • Leafony (2)
  • Node.js (4)
  • OpenCV (16)
  • Raspberry Pi (52)
  • Remote.it (2)
  • SkyWay (8)
  • Tesseract-OCR (3)
  • Tiva C (11)
  • VirtualBox (3)
  • お知らせ (5)
  • プログラミング基礎 (2)
  • 使ってみた (29)
  • 感染症対策のIoT技術 (7)
  • 未分類 (1)
  • 通信制御 (15)
  • 開発実績 (2)
  • Raspberry PiやArduinoでのソリューション提供について
  • フィードバックページ
  • 会社案内(自己紹介)
  • お仕事のご相談・お問い合わせ等

玻璃钢生产厂家玻璃钢景观雕塑设计方案河南玻璃钢人物雕塑厂家价格深圳玻璃钢雕塑推荐货源佛像玻璃钢雕塑哪家专业安阳玻璃钢彩绘雕塑定制重庆抽象玻璃钢雕塑定做价格河北步行街玻璃钢雕塑生产厂家玻璃钢雕塑厚度在多少玻璃钢雕塑是什么工艺神湾商场美陈菏泽制作玻璃钢雕塑报价哪家好河南季节性商场美陈销售厂家常州玻璃钢仿铜雕塑价格北京秋季商场美陈销售厂家霍州玻璃钢关公雕塑玻璃钢商场dp美陈雕塑江苏玻璃钢卡通雕塑厂家安徽玻璃钢雕塑定做多重优惠珠海玻璃钢动物雕塑费用美佳乐商场陈耀强萍乡景观玻璃钢雕塑生产厂家常德永州玻璃钢雕塑报价盐城广场玻璃钢花盆组合式玻璃钢雕塑摆件生产广州公园玻璃钢动物雕塑商场外广场美陈清远动物玻璃钢雕塑江苏常用商场美陈销售广西小区玻璃钢雕塑加工广州玻璃钢雕塑仿真水果雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化