投稿

ラベル(ADC)が付いた投稿を表示しています

Koshianのレッスンゴレライ3(ADC入力)

イメージ
今夜はADC入力を試してみました。 KoshianにはADC入力が3チャンネルあります。 基準電圧は1300mVで、0V〜1300mVのアナログ入力値が得られるようです。 テストコード iPhoneとKoshianが接続できたら、500msec周期でAIO0、1、2のADC値取得要求を発行します。     timer_hdl = setInterval(function () {         k.analogReference(function (data) {             $("#reference").html("Reference voltage " + data + "mV");         });         k.analogReadRequest(k.AIO0);         k.analogReadRequest(k.AIO1);         k.analogReadRequest(k.AIO2);         $("#message").html(count);         count = count + 1;     }, 500); iPhoneにADC値が通知されると、ADCチャンネル毎にイベントが発生しますので、iPhoneの画面に取得した値を表示しています。 k.updateAnalogValueAio0(function (data) {     "use strict";     $("#adinput0").html("ADC0 input voltage " + data + "mV"); }); 次回は、I2C通信で温度センサーを繋いでみます。

2.4GHz版プロポ作製-ADCテスト編

イメージ
アクセルとステアリング用のVRの読み出しに使うADCのテストを実施。 マイコンの電源(USBパワー)-GND間にVRを2個繋いで、AN0とAN1に入力しました。 1.概要 2つのVR値(電圧)をAD変換を通して読み出しては、USBを通じてPCへ送り続けるアプリです。 PIC18F4550は、AD入力は10チャンネルほどありますが、変換は1チャンネルずつしかできないので、AN0とAN1の入力を切り替えては変換して読み出すという手順となります。 2.メインルーチン部 void main(void) { int ADread0,ADread1;     InitializeSystem();     while(1)     {         #if defined(USB_INTERRUPT) // See HardwareProfile.h             if(USB_BUS_SENSE && (USBGetDeviceState() == DETACHED_STATE))             {                 USBDeviceAttach();             }         #endif     SetChanADC(ADC_CH0); ConvertADC(); //AD変換開始         while( BusyADC());          //AD変換待ち         ADread0 = ReadADC();   ...