0

現在、サーミスターを温度センサーとして使用し、この情報をラズベリーパイを使用して gui に表示するプロジェクトに取り組んでいます。ただし、現在、アナログからデジタルへの変換に固執しています。私が使用しているウェーブシェア広告ボードのサンプル コードを使用して、表示する電圧を取得することができましたが、この vout を分圧式で使用してサーミスターの抵抗を取得する必要があり、その方法がわかりません。実際には32 ビット整数の iTempを使用します変数を適切に変換して、コンソールに表示される実際の数値になります。現在、(1.186 391 V) のような項目の印刷番号を持つ 2 つの印刷行。これは正しいですが、それを実際の数値に変換して、分圧器の式に組み込む必要があります。Ps: コードの一部を print ステートメントに含めました。どんな助けでも大歓迎です。

コード:

 while((ADS1256_Scan() == 0));
        for (i = 0; i < ch_num; i++)
        {
            adc[i] = ADS1256_GetAdc(i);
                 volt[i] = (adc[i] * 100) / 167;    
        }

        for (i = 0; i < ch_num; i++)
        {
                    buf[0] = ((uint32_t)adc[i] >> 16) & 0xFF;
                    buf[1] = ((uint32_t)adc[i] >> 8) & 0xFF;
                    buf[2] = ((uint32_t)adc[i] >> 0) & 0xFF;
                    printf("%d=%02X%02X%02X, %8ld", (int)i, (int)buf[0], 
                           (int)buf[1], (int)buf[2], (long)adc[i]);                

                    iTemp = volt[i];    /* uV  */
                    if (iTemp < 0)
                    {
                        iTemp = -iTemp;
                                printf(" (-%ld.%03ld %03ld V) \r\n", iTemp /1000000, (iTemp%1000000)/1000, iTemp%1000);
                    }
                    else
                    {
                                    printf(" ( %ld.%03ld %03ld V) \r\n", iTemp /1000000, (iTemp%1000000)/1000, iTemp%1000);                   
                    }

        }
            //printf("\33[%dA", (int)ch_num);  
        bsp_DelayUS(100000);    
            }   
    bcm2835_spi_end();
    bcm2835_close();

    return 0;
}
4

1 に答える 1