Arduino có một giá trị đầu vào trong pin bị ngắt kết nối


9

Tôi mới sử dụng arduino. Có lẽ là một câu hỏi cơ bản ...

Nếu tôi tải chương trình này:

int mval = 0;
void setup() {
  Serial.begin(9600);
  // set up the LCD's number of columns and rows: 

}

void loop() {

  mval = analogRead(1);
  Serial.println(mval);

  delay(1000);
 }

Tôi nhận được một giá trị thay đổi trong khoảng từ 300 đến 400. Khi tôi nghĩ nó phải là 0, vì không có gì liên quan đến đầu vào đó.

Có ý kiến ​​gì không ?? Đó là một UNO arduino được kết nối với máy tính xách tay của tôi qua USB


Câu trả lời:


12

Bạn đang nhận được một cái gì đó gọi là "đầu vào nổi". Khi bạn nghĩ về nó, một thiết bị lý tưởng để đo đầu vào sẽ có trở kháng đầu vào rất cao, và do đó sẽ không loại bỏ rất nhiều điện từ pin.

Vì vậy, điều xảy ra là các electron ngẫu nhiên nổi lên (hoặc tắt) pin (hoặc do nhiễu điện từ trong môi trường hoặc do tiếp xúc trực tiếp với vật gì đó với một điện tích nhẹ) và bởi vì nó hoạt động như một kết nối điện trở rất cao với mặt đất, phí này sẽ thoát ra rất chậm. Vì vậy, khi bạn đi đo nó, có vẻ như có một số điện áp ở đó! Nói chung, bạn có thể nối thiết bị này với một số thiết bị cung cấp điện áp hoặc đặt điện trở kéo lên hoặc kéo xuống và điều chỉnh kỳ vọng của bạn trên chân đó.

Tôi hy vọng điều đó có ích và nếu tôi không chắc ai đó có liên kết với người khác đã trả lời câu hỏi này một cách thành thạo hơn (tôi thấy trong phần liên quan ít nhất một câu hỏi gần giống nhau ).


5
Sự thật thú vị: Các tài liệu Arduino đề xuất sử dụng giá trị trả về của một analogReadcuộc gọi trên một pin không được sử dụng làm hạt giống cho randomSeedchức năng: arduino.cc/hu/Reference/RandomSeed
Chris Laplante

2
Hà! Điều đó khá gọn gàng, tôi thích nó! Tôi nghĩ rằng việc thêm một dòng dây nhỏ vào bảng mạch của bạn và / hoặc PCB có thể giúp có được sự ngẫu nhiên hơn một chút miễn là bạn tránh được độ dài ăng-ten 60Hz (chỉ liên quan đến Hoa Kỳ) (sau đó đột nhiên nhiễu AC sẽ chiếm ưu thế)
Kit Scuzz

3
Một cách tiếp cận mạnh mẽ hơn (và tiết kiệm không gian) sẽ là sử dụng trình tạo số ngẫu nhiên tiêu chuẩn RFC 1149.5
Chris Laplante

4

Đầu vào là "nổi", vì không có gì được kết nối để "kéo" điện áp theo cách này hay cách khác.
Điều này là hoàn toàn bình thường. Nếu bạn kết nối một điện trở kéo xuống có trở kháng cao (giả sử 10k) từ chân xuống đất, nó sẽ dừng nó khi không có gì được kết nối (mặc dù không có nhu cầu thực sự vì bạn sẽ không đọc nó khi không có gì đã kết nối ;-))


Do điện trở kéo xuống sẽ thay đổi tín hiệu nếu được kết nối với ADC?
dùng30878
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.