簡體   English   中英

我需要幫助閱讀arduino mega2560中的模擬電壓

[英]I need help reading analog voltages in an arduino mega2560

我是微控制器的新手,我需要幫助來讀取電壓並將其打印在串行監視器中。 我已經使用電位計完成了此操作,但是我想知道是否可以僅使用電壓就可以做到這一點。 下面是讀取電位計值時使用的代碼:

我曾嘗試讀取電壓,但是當我在引腳A0中輸入的電壓小於3-5V之間時,串行監視器中的輸出為0

int potPin = 0;    // select the input pin
int val = 0;       // variable to store the value coming from the function generator
void setup()
{
  Serial.begin(9600);   // opens serial port, sets data rate to 9600 bps
}
void loop() {
  val = analogRead(potPin); // read the value from the function generator
  Serial.println(val);
  delay(1000); //Sampling rate for the signal
}

正如Udo Klein所說,這看起來像是硬件問題。 嘗試像這樣設置電路: http : //imgur.com/PYbeqLq

請注意,函數發生器和arduino之間共享接地-這對於確保正確測量電壓非常重要。 請記住,電壓實際上是電位 ,因此您需要一個公共參考點進行測量。

要回答您的問題,是的,您可以從另一硬件讀取電壓。

正如Gearbot告訴您的那樣,在arduino和其他硬件之間保持共同點很重要。

另外請注意,arduino只能測量0至5伏之間的電壓。 不要嘗試在不調整電路的情況下測量更高的電壓,因為這樣可能會損壞arduino板。

如果不確定,請先用萬用表將電壓連接到arduino上。

Uno有6個模擬輸入,標記為A0至A5,每個模擬輸入提供10位分辨率(即1024個不同值)。 默認情況下,它們的測量范圍是從地到5伏,盡管可以使用AREF引腳和AnalogReference()函數更改其范圍的上限。

編輯:

在您的帖子底部沒有看到添加的評論。 這確實表明存在硬件問題(可能在您的電路中)

為確保arduino能夠正確執行操作,請在連接硬件並正常工作時用萬用表測量引腳A0和GND之間的電壓。 您應該能夠在那里讀取正確的電壓。

我懷疑它會提供與Arduino相同的值。 然后,用萬用表(保持GND連接)追溯您的電路,以找出問題所在。

嘗試使用地圖功能將0到5或1-5v輸入縮放。

int setValue = map(ana1Value,0,1023,0,100);

可能對您有幫助。

模擬輸入電壓的比例為0-100,則可以使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM