主题中讨论的其他器件:ADS124S08
您好、先生、
实际上、我使用 EVM ADC 和 Arduino UNO 完成了与皮肤摩擦传感器的 SPI 连接作为输入。 当我加载皮肤摩擦时、数据有时会改变、有时不会改变、有时数据会重复一段时间、然后会改变。 请建议问题是什么? 我们将如何确保特定的数字值属于该模拟值?
#include #include #define START 6 #define RESET 7 #define CS 4 long signed int stat; SPISettings settings1 (4000000、MSFIRST、SPI_MODE1); void setup (){ SPI.begin(); pinMode (CS、OUTPUT); pinMode (RESET、OUTPUT); pinMode (START、OUTPUT); digitalWrite (RESET,HIGH); delay (5);// Serial.begin(9600); SPI.beginTransaction(settings1); digitalWrite (CS、low); digitalWrite (start、low); } void loop (){ for (int i=0;i<10;i++) { if (i=0){ SPI.transfer (0x42);// WREG 寄存器地址 SPI.transfer (0x07);// WREG 数字字节-1 SPI.transfer (0x24 ); /SPI transfer (0x24)/SPI transfer (0x1000)/SPI transfer (0x24)/IDEST.0X24/ IN1000)/SPI transfer (0x1000)/SPI transfer (0x24/ IN1000)/SPI transfer // IDAC MUX SPI.transfer (0x00);// Vbias SPI.transfer (0x14);//超时位 second =1,默认值为10h SPI.transfer (0x08);//开始转换命令 delay (1); } else { SPI.transfer (0x12);//RDATA command< = SPI.transfer (0); = SPI.stat.transfer (0<8 );= SPI (n.stat.transfer);= n<.stat.transfer (0<.transfer (0<.stat.transfer);= n<.transfer (0.stat.transfer);(0.stat.transfer);/. delayMicroseconds (250);//需要一个额外的延迟以允许下一个转换周期结束 。} //digitalWrite (CS、HIGH); } spi.endTransaction (); }
黄色是时钟脉冲、绿色是数字示波器中的 DOUT。
