這是我的第一篇文章。就像標題所說的那樣,如何將模擬信號(如脈衝速率傳感器)轉換爲數字信號,以便我可以使用類似Java的方式讀取脈衝頻率?如何在Arduino中將模擬信號(即來自脈衝速率傳感器)轉換爲數字信號?
這基本上就是它的要義,在任何人問起之前,我發現了這樣的問題,但我還是不太明白。
非常感謝您的幫助。
這是我的第一篇文章。就像標題所說的那樣,如何將模擬信號(如脈衝速率傳感器)轉換爲數字信號,以便我可以使用類似Java的方式讀取脈衝頻率?如何在Arduino中將模擬信號(即來自脈衝速率傳感器)轉換爲數字信號?
這基本上就是它的要義,在任何人問起之前,我發現了這樣的問題,但我還是不太明白。
非常感謝您的幫助。
如果「脈衝率傳感器」,你的意思是,測量的心臟速率,那麼我想你正在處理的運算放大器(運算放大器)電路,輸出模擬信號
通過模擬,我的意思是信號是隨時間變化的電壓。
在Arduino中,有一個名爲analogRead(some pin # here)
的內置命令,它測量當時的電壓並返回一個10位數字(即範圍從0-1023)。這個過程被稱爲ADC(模數轉換)。有關ADC的更多信息,請嘗試Sparkfun Electronics的tutorial/article。
在你的問題中,你提到你希望將數據讀入Java應用程序(據我所知)。因此,如何是這樣的:
在您的Arduino:
// ...
void loop() {
// read voltage from 0-5V on pin A0 and store it in our sample buffer
int sample = analogRead(A0);
Serial.println(sample);
delay(10);
}
這將繼續在串行發送轉換後的數字信號,這樣就可以通過USB連接的Arduino到您的計算機,它是運行的Java應用。
有很多方法可以讀取Java中的USB串行端口,但我推薦的庫是jssc,因爲它感覺與Arduino的串行庫相似。
Here一些JSSC例子
你所關心的是如何讀取串口的主要原因之一:
import jssc.SerialPort; import jssc.SerialPortException;
public class Main {
public static void main(String[] args) {
SerialPort serialPort = new SerialPort("COM1");
try {
serialPort.openPort();//Open serial port
serialPort.setParams(9600, 8, 1, 0);//Set params.
byte[] buffer = serialPort.readBytes(10);//Read 10 bytes from serial port
serialPort.closePort();//Close serial port
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
}
在你的情況,你應該:
serialPort = ...
,serialPort.openPort()
和serialPort.setParams(...)
在一個循環serialPort.readBytes(...)
在try ... catch塊將數據存儲在您的緩衝區我會向您保證您希望如何顯示您的數據。快樂編碼:)
我只會補充一點:Arduino不適合用作DAC。如果你想要的話,你可以使用NI MyDAC,它不易出錯,並且會給你更準確的結果,而且你可以使用labview以及更適合硬件項目的 –
1)Arduino不是Java,它是C++。 2)簡單的谷歌搜索會給你答案:https://www.google.de/search?site=&source=hp&q=analogread+arduino&oq=analog+read+arduiono&gs_l=psy-ab.3.0.0i13k1l4.741.3276 .0.4180.20.14.0.0.0.0.335.2276.0j6j4j1.11.0 .... 0 ... 1.1.64.psy-ab..9.11.2275 ... 0j0i10k1.HSHNMHrAG-A – Professor901
不,我知道這兩個那些。我的意思是將電子/模擬信號轉換成我可以在屏幕上看到的數據。 –