AnalogIn - アナログ入力
AnalogIn - アナログ入力
Information
本ページは私家版のため、誤り等あればご指摘ください。
最新の情報は公式のドキュメントをご参照ください。
http://mbed.org/handbook/AnalogIn
ピンをアナログ入力に設定し、電圧を読み取ります。
12ビットのADコンバーターを搭載しています。
初期化
AnalogIn name(pin);
name: 名前(自由に決めて良い)
pin: ピン名(p15~p20)
入力
val = name;
val = name.read();
valには0(0V)~1.0(3.3V)の数値(float)が代入されます。
val = name.read_u16();
valには0(0V)~65535(0xffff, 3.3V)の数値が代入されます。(上位12ビットが有効)
Warning
一部のCPUのmbedライブラリについて、アナログ入力ピンの内蔵プルアップ/プルダウンがONになっているものがあります。(意図してか、意図せずか不明)
この場合、ドライブ能力の低い電圧源や、抵抗器を介したアナログ入力の値がおかしくなります。
ピンモードを設定しているレジスタを直接アクセスして、プルアップ/プルダウンをOFFにしてください。
例
アナログ入力を読み取り、1V(3.3V
#include "mbed.h" AnalogIn ain(p20); DigitalOut led(LED1); int main() { while (1){ if(ain > 0.3) { led = 1; } else { led = 0; } } }
LPCXpresso LPC1768 コード
AD0入力
#include "LPC17xx.h" int main() { int ad, ch = 0; LPC_SC->PCONP |= (1 << 12); // PCADC LPC_SC->PCLKSEL0 &= ~(3 << 24); // PCLK_ADC ck/4 (00) LPC_PINCON->PINSEL1 &= ~(3 << 14); // ADC0.0 LPC_PINCON->PINSEL1 |= (1 << 14); // ADC0.0 LPC_PINCON->PINMODE1 |= (2 << 14); // floating LPC_ADC->ADCR = (((SystemCoreClock / 4 / 120000 - 1) & 0xff) << 8)|(1 << 21)|(1 << ch); // PDN LPC_ADC->ADCR |= (1 << 24); // START while (! (LPC_ADC->ADGDR & (1 << 31))); // DONE ad = (LPC_ADC->ADGDR >> 4) & 0x0fff; LPC_ADC->ADCR &= ~(7 << 24); // STOP }
2 comments on AnalogIn - アナログ入力:
Please log in to post comments.
アナログ入力ピンの内蔵プルダウンがオンになっている場合、どうすればプルダウンをオフにできるでしょうか