|
19黑幣
本人用AT516電阻儀測量電阻,電阻儀說明書上采樣速率7ms,140次/秒。
讀取電阻儀數據時,向電阻儀發送一次"fetch"指令,電阻儀自動返回一次數據,具體實現有兩種方法:
第一種,電阻儀有232接口,可通過232轉USB線直連電腦,在電腦串口助手上定時發送指令、接收數據。此方法采樣速率50ms-100ms,可達到要求。
11111.png (32.44 KB, 下載次數: 107)
下載附件
2021-5-7 21:02 上傳
第二種:通過232轉TTL芯片接線到單片機(軟串口),單片機通過軟串口向電阻儀發指令,電阻儀返回數據,讀取軟串口數據通過串口發送到電腦。
連線.png (928.29 KB, 下載次數: 110)
下載附件
2021-5-7 20:17 上傳
1局部.jpg (2.97 MB, 下載次數: 110)
下載附件
2021-5-7 20:33 上傳
代碼如下- #include <SoftwareSerial.h>
- SoftwareSerial DLSerial(2, 3); // 軟串口 RX(D2), TX(D3)
- String stringOne="";//存儲接收的類如“+5.5019e+06,BIN00”的數據
- void setup() {
- DLSerial.begin(38400); //軟串口波特率38400
- Serial.begin(9600) ;//默認串口波特率9600
- Serial.println("DLSerial is ready!");
- }
- void loop() {
- DLSerial.listen();
- DLSerial.write("fetch?"); //軟串口發送字節數據
- delay(50); //延時50ms
- while (DLSerial.available()>0) //如果緩存中有接收到的數據
- {
- String stringOne = DLSerial.readString(); //讀取軟串口數據賦給字符串stringOne
- Serial.print(stringOne); //通過串口發到PC
- }
- }
復制代碼 方法可行,我設想通過延時程序改變讀取速度。比如本代碼設置延時50ms,但是實際讀取一次為1050ms,無論設置延時多少,實際都會增加1000ms。
我已嘗試增加串口波特率,未果。
11111.png (18.59 KB, 下載次數: 102)
下載附件
2021-5-7 21:04 上傳
本人為機械專業學生,沒有做過單片機項目,時間緊張,也是第一次發貼求助,可能在閱讀感受上給大家帶來了不變,如有表述不清等問題,感謝大家批評指正,我會及時改正,謝謝大家幫助。

|
-
1.png
(31.24 KB, 下載次數: 102)
下載附件
2021-5-7 19:47 上傳
|