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

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