Arduino มีค่าอินพุตในขาที่ไม่ได้เชื่อมต่อ


9

ฉันใหม่สำหรับ arduino อาจเป็นคำถามที่เป็นองค์ประกอบ ...

ถ้าฉันโหลดโปรแกรมนี้:

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

ฉันได้รับค่าที่แตกต่างกันระหว่าง 300 และ 400 เมื่อฉันคิดว่ามันต้องเป็น 0 เพราะมันไม่มีอะไรเชื่อมต่อกับอินพุตนั้น

ความคิดใด ๆ ?? มันเป็น arduino UNO ที่เชื่อมต่อกับแล็ปท็อปของฉันผ่าน USB


คำตอบ:


12

คุณได้รับสิ่งที่เรียกว่า "อินพุตแบบลอย" เมื่อคุณคิดเกี่ยวกับมันอุปกรณ์ที่เหมาะสำหรับการวัดค่าอินพุตจะมีอิมพิแดนซ์อินพุตสูงมากและจะไม่ลบกระแสไฟฟ้าออกจากขา

ดังนั้นสิ่งที่เกิดขึ้นก็คืออิเล็กตรอนแบบสุ่มลอยไปที่ (หรือปิด) พิน (จากการรบกวนของแม่เหล็กไฟฟ้าในสภาพแวดล้อมหรือจากการสัมผัสโดยตรงกับสิ่งที่มีประจุเล็กน้อย) และเพราะมันทำหน้าที่เหมือนการเชื่อมต่อที่มีความต้านทานสูงมาก กราวด์ประจุนี้จะระบายออกช้ามาก ดังนั้นเมื่อคุณไปวัดมันดูเหมือนว่ามีแรงดันไฟฟ้าอยู่ตรงนั้น! โดยทั่วไปคุณอาจต่ออุปกรณ์นี้ซึ่งมีแรงดันไฟฟ้าหรือคุณใส่ตัวต้านทานแบบดึงขึ้น - ลงและปรับความคาดหวังของคุณบนขานั้น

ฉันหวังว่าจะช่วยได้และหากไม่ใช่ฉันมั่นใจว่ามีใครบางคนมีลิงค์ไปยังบุคคลอื่นที่ตอบคำถามนี้อย่างมีประสิทธิภาพมากขึ้น (ฉันเห็นในหัวข้อที่เกี่ยวข้องอย่างน้อยหนึ่งคำถามที่คล้ายกัน )


5
ข้อเท็จจริงที่น่าสนุก: เอกสาร Arduino ของ Arduino แนะนำให้ใช้ค่าส่งคืนของการanalogReadโทรบนพินที่ไม่ได้ใช้เป็นเมล็ดของrandomSeedฟังก์ชัน: arduino.cc/hu/Reference/RandomSeed
Chris Laplante

2
ฮา! มันค่อนข้างเรียบร้อยฉันชอบมัน! ฉันคิดว่าการเพิ่มในสาย squiggily เล็ก ๆ น้อย ๆ ของสายการเขียงหั่นขนมและ / หรือ PCB อาจช่วยให้คุณได้รับบิตแบบแผนมากขึ้นตราบใดที่คุณหลีกเลี่ยงความยาวเสาอากาศ 60Hz (USA กังวลเท่านั้น) (แล้วก็ AC เสียงจะครอง)
ชุด Scuzz

3
แนวทางที่แข็งแกร่ง (และประหยัดพื้นที่) จะใช้ตัวสร้างหมายเลขสุ่มมาตรฐาน RFC 1149.5
Chris Laplante

4

อินพุตคือ "ลอย" เนื่องจากไม่มีอะไรเชื่อมต่อกับ "ดึง" แรงดันไฟฟ้าไม่ทางใดก็ทางหนึ่ง
นี่เป็นเรื่องปกติอย่างสมบูรณ์ หากคุณเชื่อมต่อตัวต้านทานแบบเลื่อนลงความต้านทานสูง (พูด 10k) จากพินกับกราวด์มันจะหยุดการทำเช่นนี้เมื่อไม่มีสิ่งใดเชื่อมต่อ (แม้ว่าจะไม่จำเป็นต้องทำเช่นนั้นจริง ๆ เพราะคุณจะไม่อ่านเมื่อไม่มีอะไร เชื่อมต่อ ;-))


ตัวต้านทานแบบดึงลงจะเปลี่ยนสัญญาณหากเชื่อมต่อกับ ADC หรือไม่?
user30878
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.