我将 ADS131E08S 与 PIC18f26k22配合使用、以读取力传感器值。 我使用的传感器是 FSG020WNPB。
这些是我的寄存器设置、
配置1 0xF2
CONFIG2 0xE0
接口3. 0xE8.
通道1SET 0x20
使用以下代码初始化寄存器后、我将从 ADC 读取值并将其打印在终端上。
(二
CS = 0;
PORTCbits.RC0 = 1;//START 引脚变为高电平
spiwritecommand (adc_start_cmd);
CS = 1;
时钟= 0;
_DELAY_us (10);
时钟= 1;
PORTCbits.RC1 = 1;//使 DRDY 引脚为低电平
//根据数据表、在 DRDY 变为低电平后发出此命令以读取转换结果
CS = 0;
spiwritecommand (adc_read_data_cmd);
CS = 1;
char pri [15];
int x;
CS = 0;
对于(x=0;x<27;x++)
{
adcArray[adcArrayIndex]= SPI_WRITE (0x00);
adcArrayIndex++;
}
CS = 1;
adcvalue1 = parse_24bit_adc_values (Channel1_index);
sprintf (pri、"%ld"、adcvalue1);
sendResponseViaUart (pri);
uartWriteByte (0x0D);
PORTCbits.RC0 = 0;
(三
我使用以下公式将 ADC 读取的值转换为电压、
电压= ADC 值* Vref/ADC 分辨率
其中 Vref = 2.4V
这些是我在对力传感器施加力时获得的值和相应电压
ADC 值 电压
| 12615897 | 1.797199 |
| 14409920. | 2.052767 |
| 14729408 | 2.098279 |
我尝试将电位器连接到通道1并施加固定电压
| 电位计上的电压为0.348V (固定电压) | |||
| 16711696 | 2.380666 | ||
| 65552 | 0.009338 | ||
| 262120 | 0.03734 | ||
| 电位计上的电压为0.257V (固定电压) | 8323072 | 1.185664 | |
| 589840 | 0.084026 | ||
| 393232. | 0.056018 | ||
| 196624. | 0.02801 | ||
| 720912 | 0.102698 | ||
| 655376 | 0.093362 |
每次值不断变化。 即使施加任何固定电压、值(由 ADC 读取)也会发生变化。
请建议如何继续。