16個のセンサを接続する
ここでは16個のセンサを接続する方法を述べます。
※回路図は示しましたがここでは回路は作っていません。ADCINA2/ADCINA3のポートの使い方だけを示しました。他のポートも同じです。f-paletteの回路図を参照してください。
ハードウエア編
ADCをする対象としてわかりやすいのでボリュームを使った。ここで使ったのは10KΩの可変抵抗となります。プラスマイナス電極はないのでどちらでもVcc/GNDは良い。可変する真ん中のピンがADCポートにつながっていれば良い。
ソフトウエア編
F28035_template_main.cを変更して使ってください。
void main(void) { Uint16 AdcResults[16]; char msg1[16]; char msg2[16]; initNolibM(); //初期化 while(1) { AdcResults[0] = sensor(ADCINA0); AdcResults[1] = sensor(ADCINA1); AdcResults[2] = sensor(ADCINA2); //AdcResults[2] = sensor(CN7);と同意義 AdcResults[3] = sensor(ADCINA3); //AdcResults[3] = sensor(CN10);と同意義 AdcResults[4] = sensor(ADCINA4); AdcResults[5] = sensor(ADCINA5); AdcResults[6] = sensor(ADCINA6); AdcResults[7] = sensor(ADCINA7); AdcResults[8] = sensor(ADCINB0); AdcResults[9] = sensor(ADCINB1); AdcResults[10] = sensor(ADCINB2); AdcResults[11] = sensor(ADCINB3); AdcResults[12] = sensor(ADCINB4); AdcResults[13] = sensor(ADCINB5); AdcResults[14] = sensor(ADCINB6); AdcResults[15] = sensor(ADCINB7); sprintf(msg1,"adc[A3]:%4d",AdcResults[2]);//配列の数字を変えれば違うポートの値も確認できるぞ sprintf(msg2,"adc[A4]:%4d",AdcResults[3]);//配列の数字を変えれば違うポートの値も確認できるぞ //lcd_CLR();//LCDクリア lcd_HOME();//カーソルをホームへ lcd_PUTS((unsigned char *)msg1); lcd_LF(); lcd_PUTS((unsigned char *)msg2); wait(100); } }
16個のセンサを接続(モータドライバ使用時はADCINB3/4/5が使用不可)
サンプルプログラムを実行すると以下のようにLCDにADC変換した値を表示します。