ขา digital อ่านค่าได้ 0 กับ 1 ถูกต้องแล้วครับ
ส่วนสถานะที่อ่านได้โดยยังไม่มีลอจิกเข้ามา เป็นเรื่องปกติ เรียกว่า noise
วิธีแก้คือ เราต้องไม่ปล่อยขาให้ลอย ๆ ต้องต่อลงกราวน์ หรือต่อกับไฟบวก เพื่อให้สถานะเป็น 0 หรือ 1 แบบชัดเจน
ลองดูตัวอย่าง ถ้าต่อกับไฟบวกเรียกว่า pullup ถ้าต่อกับกราวน์เรียก pulldow ครับ
https://www.arduino.cc/en/Tutorial/DigitalPins