コンテンツにスキップ
営業日はカレンダー通り、土日祝日お休みをいただいております。お盆やお正月などの特別なお休みはこちらでお知らせいたします。
営業日はカレンダー通り、土日祝日お休みをいただいております。お盆やお正月などの特別なお休みはこちらでお知らせいたします。
SKU 2023

MCP3008 A/Dコンバータ ピッチ変換済みモジュール

送料区分: 200

商品コード: SSCI-020237

発売日: 2014年11月11日

¥880
¥880 - ¥880
Current price ¥880

Microchipの10bit 8チャンネル A/Dコンバータです。SPI接続です。

仕様

  • SPIモード モード0 モード3
  • 電源電圧 2.7~5.5V
  • 最大サンプリングレート 200ksps
  • 動作温度 -40~+85℃
  • 0.1uFのチップコンデンサをVDD-DGND間に接続
  • 以下の端子が基板上のショートジャンパで接続されています。
    • VrefとVDD → SJ1
    • AGNDとDGND → SJ2
      それぞれの端子に別の配線をしたい場合は、ショートジャンパをカットしてください。

参考

ピンヘッダは添付しません。ご注意ください。
α版からの違いはありません。

作成例

Arduino用 サンプルスケッチ

// MCP3008用サンプルプログラム
//
// CH0とCH1のAD変換値を1秒ごとにシリアル出力
//
//Arduino          MCP3008
//SCK(13) <======> CLK
//MISO(12)<======> DOUT
//MOSI(11)<======> DIN
//SS(10)  <======> /CS
//

#include <SPI.h>
#define slaveSelectPin 10

void **setup**(){
  **Serial**.begin(9600);                      //シリアル通信開始
  pinMode(slaveSelectPin, OUTPUT);          //SS(10)を出力に設定
  SPI.setBitOrder(MSBFIRST);                //MSBから送信
  SPI.setClockDivider(SPI_CLOCK_DIV2);      //クロック分周設定
  SPI.setDataMode(SPI_MODE0);               //SPIモード0
  SPI.begin();                              //SPI通信開始
}

void **loop**()
{
  **Serial**.print("CH0 : ");                  
  **Serial**.println(get_adc(0));              //CH0のAD変換値取得
  **Serial**.print("CH1 : ");
  **Serial**.println(get_adc(1));              //CH1のAD変換値取得
  delay(1000);
}

int get_adc(byte ch)
{
   byte data[2] = {0,0};                                //SPI通信用変数
   int analog_data = 0;                                 //AD変換値(10bit)用変数
   digitalWrite(slaveSelectPin, LOW);                   //SS LOW
   SPI.transfer(0x01);                                  //スタートビット送信
   data[0] = SPI.transfer((ch << 4) | 0x80);            //Single-ended  チャンネル選択 bit9 bit8取得
   data[1] = SPI.transfer(0);                           //bit7 ~ bit0取得
   analog_data = ((data[0] & 0x03) << 8) | data[1];     
   digitalWrite(slaveSelectPin, HIGH);                  //SS HIGH
   return analog_data;
}