สิ่งที่คุณมีเรียกว่าFloating
พิน Digital Input pins มีความไวต่อการเปลี่ยนแปลงมากและหากไม่ได้รับการผลักดันบวกไปยังสถานะหนึ่งหรืออีกสถานะหนึ่ง (สูงหรือต่ำ) จะรับความจุหลงทางจากแหล่งใกล้เคียงเช่นเขียงเขี้ยวนิ้วมือมนุษย์หรือแม้แต่อากาศ สายใด ๆ ที่เชื่อมต่อกับมันจะทำตัวเหมือนเสาอากาศเล็กน้อยและทำให้สถานะอินพุตเปลี่ยนไป และฉันหมายถึงสายใด ๆ ร่องรอยบนกระดานลวดไปยังเขียงหั่นขนมปิ่นเขียงหรือแม้แต่หมุดโลหะของ IC เอง
สิ่งนี้อ้างอิงถึงในหน้าอ้างอิงของ Arduino:
หากพินไม่ได้เชื่อมต่อกับสิ่งใด ๆ digitalRead () สามารถส่งคืน HIGH หรือ LOW (และสามารถเปลี่ยนได้แบบสุ่ม)
หากคุณดูที่Arduino Digital Pin Tutorial :
อย่างไรก็ตามสิ่งนี้ยังหมายถึงว่าหมุดป้อนข้อมูลที่ไม่มีอะไรเชื่อมต่อกับพวกเขาหรือสายเชื่อมต่อกับพวกเขาที่ไม่ได้เชื่อมต่อกับวงจรอื่น ๆ จะรายงานการเปลี่ยนแปลงแบบสุ่มในสถานะพินการรับสัญญาณไฟฟ้าจากสภาพแวดล้อม ของหมุดใกล้เคียง
บ่อยครั้งที่มีประโยชน์ในการคัดพินอินพุตไปยังสถานะที่รู้จักหากไม่มีอินพุตอยู่ สิ่งนี้สามารถทำได้โดยการเพิ่มตัวต้านทาน pullup (ถึง + 5V) หรือตัวต้านทานแบบเลื่อนลง (ตัวต้านทานลงกราวด์) บนอินพุตโดยที่ 10K เป็นค่าทั่วไป นอกจากนี้ยังมีตัวต้านทาน pullup ขนาด 20K ที่สร้างขึ้นในชิป Atmega ที่สามารถเข้าถึงได้จากซอฟต์แวร์ ตัวต้านทานแบบดึงขึ้นในตัวเหล่านี้เข้าถึงได้ในลักษณะดังต่อไปนี้
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
ตัวต้านทานแรงดึงแบบอ่อนเหล่านี้บังคับให้รัฐพินอินพุตเข้าสู่สถานะที่รู้จักและสามารถเขียนทับได้ง่ายด้วยแรงดันไฟฟ้าอินพุตที่แรงขึ้นเช่นการเชื่อมต่อโดยตรงกับกราวด์หรือ + 5v