あーさん日記

https://akkera102.sakura.ne.jp/gbadev/ の中の人

mbed メモ2

・MCP3208 + LM35DZ(ADコンバータとアナログ温度センサ)
http://akizukidenshi.com/catalog/g/gI-00238/
http://akizukidenshi.com/catalog/g/gI-00116/
http://developer.mbed.org/cookbook/SPI-communication-with-external-ADC-MCP3


今回は公式サイトを参考に構築しましたが嘘だらけで信用だだ下がり中です。
とりあえず間違っていたのは2点。
・配線図、VDDとVREFは繋ぐ必要あり
・ロジアナの図とソースコードの不一致


2時間無駄にしました。。
最終的にロジアナ引っ張ってきてテスト。時間掛かってしょうがないです。
http://f.st-hatena.com/images/fotolife/a/akkera102/20141214/20141214211341_original.png

#include "mbed.h"
 
SPI spi(p5, p6, p7);
DigitalOut cs(p8);
Serial pc(USBTX, USBRX);

int main(void)
{
    spi.format(8, 0);
    spi.frequency(1000000);
 
    printf("Starting MCP3208 + LM35DZ\n");
    
    while(1)
    {
        cs = 0;
 
        spi.write(0x06);
        
        uint8_t d1 = spi.write(0x00);
        uint8_t d2 = spi.write(0x00);
        uint16_t d = (d1 << 8) | d2;
 
        float volt = 3.3 * (float)d / 4095;

        printf("d=%d temp=%5.2f\n", d, volt * 100);

        cs = 1;
        wait(1);
    }
}

・mbedのログ

Starting MCP3208 + LM35DZ
d=278 temp=22.40
d=278 temp=22.40
d=277 temp=22.32
d=279 temp=22.48 # 指でセンサーをつまむ
d=290 temp=23.37
d=296 temp=23.85
d=304 temp=24.50
d=311 temp=25.06
d=316 temp=25.47
d=318 temp=25.63
d=324 temp=26.11 # 指を離す
d=322 temp=25.95
d=318 temp=25.63
d=317 temp=25.55
d=312 temp=25.14
d=312 temp=25.14
d=308 temp=24.82
d=306 temp=24.66
d=307 temp=24.74
d=302 temp=24.34
d=301 temp=24.26
d=303 temp=24.42
d=299 temp=24.10
d=297 temp=23.93