2017-08-09 57 views
-2

這是我的第一篇文章。就像標題所說的那樣,如何將模擬信號(如脈衝速率傳感器)轉換爲數字信號,以便我可以使用類似Java的方式讀取脈衝頻率?如何在Arduino中將模擬信號(即來自脈衝速率傳感器)轉換爲數字信號?

這基本上就是它的要義,在任何人問起之前,我發現了這樣的問題,但我還是不太明白。

非常感謝您的幫助。

+0

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 ... 0j​​0i10k1.HSHNMHrAG-A – Professor901

+0

不,我知道這兩個那些。我的意思是將電子/模擬信號轉換成我可以在屏幕上看到的數據。 –

回答

1

如果「脈衝率傳感器」,你的意思是,測量的心臟速率,那麼我想你正在處理的運算放大器(運算放大器)電路,輸出模擬信號

通過模擬,我的意思是信號是隨時間變化的電壓。

在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); 
    } 
} 

} 

在你的情況,你應該:

  1. 聲明樣品的全球緩衝液
  2. 運行serialPort = ...serialPort.openPort()serialPort.setParams(...)在一個循環
  3. ,使用serialPort.readBytes(...)在try ... catch塊將數據存儲在您的緩衝區
  4. 一旦你有足夠的數據,從環打破分析它(用於心跳,等...)

我會向您保證您希望如何顯示您的數據。快樂編碼:)

+0

我只會補充一點:Arduino不適合用作DAC。如果你想要的話,你可以使用NI MyDAC,它不易出錯,並且會給你更準確的結果,而且你可以使用labview以及更適合硬件項目的 –