สอนใช้งาน Arduino IC 74HC165 1 ตัว ขยายขา Digital Input
การรับค่าจากสวิตช์ปกติจะใช้สวิตช์ 1 ตัว ต่อ ขา Arduino 1 ขา โดยใช้คำสั่ง digitalRead() อ่านค่าเข้ามา
แต่ถ้าสวิตช์ที่ต้องการต่อมีมากกว่าขาของ Arduino เช่นต้องการต่อสวิตช์ 100 ตัว ซึ่งขา Arduino มีไม่พอแน่ ๆ จะมีวิธีอ่านค่าจากสวิตช์หลาย ๆ ตัวแบบนี้ได้อย่างไร
บทความนี้จะสอนใช้งาน IC 74HC165 ขยายขา INPUT ของ Arduino ทำให้ Arduino สามารถเชื่อมต่ออ่านค่า Sensor ต่างๆได้มากขึ้น IC 74HC165 1 ตัว สามารถขยายขา Digital input ได้ 8 ขา และยังสามารถนำมาต่อพ่วงกับตัวอื่น ทำให้รับค่าสวิตช์ได้จำนวนมากเท่าที่เราต้องการอุปกรณ์ที่ต้องใช้ใน บทความ สอนใช้งาน Arduino IC 74HC165 1 ตัว ขยายขา Digital Input
วิธีการต่ออุปกรณ์ สอนใช้งาน Arduino IC 74HC165 1 ตัว ขยายขา Digital Input
IC 74HC595 -> Arduino UNO R3
- ขา16 -> 5V
- ขา8 -> GND
- ขา15 -> ขา9
- ขา9 -> ขา11
- ขา1 -> ขา8
- ขา2 -> ขา12
- ขาสวิตช์ต่อดังรูป

โหลด Library RFID Module Arduino
วิธีลง Library ให้ดูตัวอย่างในบทความนี้
ให้ต่ออุปกรณ์ตามรูปด้านบน แล้วอัพโหลดโค้ดตัวอย่างด้างล่างลง บอร์ด Arduino uno r3
---
เปิด Serial Monitor ขึ้นมา เพื่อดูค่าสถานะปุ่มกด
ถ้ามีการกดปุ่ม 2 ปุ่มพร้อมกัน สถานะจะขึ้น 1 ตามรูปโปรแกรมจะวนอ่านค่า สถานะปุ่มกด ตัวแปรที่เก็บสถานะปุ่มกดลอจิก 1 0 คือshift.state(i) i คือ ตำแหน่งขา ถ้าต่อ 1 ตัว จะมี ค่า 0-7 ทั้งหมด 8 ขา
เพียงเท่านี้เราก็สามารถอ่านค่าว่าปุ่มไหนถูกกดเข้ามาบ้าง แล้วเช็คให้ทำตามเงื่อนไข ได้ตามต้องการ
ในตัวอย่างนี้ ถ้ากดปุ่ม 1 เข้ามาไฟ LED จะติด
ถ้ายังไม่กดปุ่มสถานะจะเป็น 0 ทั้งหมด 
IC74HC165 สามารถต่อพ่วงกันได้หลายตัว เพื่อรับค่าจากสวิตช์ได้หลาย ๆ ปุ่มพร้อมกัน
ตัวอย่างเพิ่มเติมที่นี่
https://infectedbytes.com/2016/07/arduino-shiftin.html
ดูสอนวิธีใช้งาน Arduino บทต่อไป
#59 สอนใช้งาน Arduino ควบคุมการหมุน สเต็ปมอเตอร์
#61 สอนใช้งาน Arduino OLED แบบ I2C
หน้าหลักบทความสอน Arduino แบบย่อทั้งหมด