![ปุ่มกดเมมเบรน 1x4 W / Arduino: 4 ขั้นตอน ปุ่มกดเมมเบรน 1x4 W / Arduino: 4 ขั้นตอน](https://img.gwsigeps.com/img/circuits/1x4-membrane-keypad-w/-arduino-1.jpg)
สารบัญ:
ในการกำหนดค่าองค์ประกอบนี้อาจเป็นเรื่องง่าย แต่สำหรับฉันที่ยังใหม่ต่อการใช้งานอิเล็กทรอนิกส์ฉันพบว่าตัวเองสับสนเมื่อพยายามแก้ไขด้วยผลิตภัณฑ์เฉพาะนี้ ส่วนหนึ่งเป็นเพราะความจริงที่ว่าฉันไม่สามารถหาข้อมูลใด ๆ เกี่ยวกับวิธีการใช้ส่วนประกอบนี้ผ่านทาง Google, บอร์ด Arduino, ฯลฯ ดังนั้นฉันคิดว่าคนอื่นอาจไม่ได้รับเช่นเดียวกับฉัน..
ผลิตภัณฑ์:
โปรดจำไว้ว่านี่เป็นคำสั่งแรกของฉัน
วัสดุ:
ขั้นตอนที่ 1: BOM
Arduino (ฉันใช้ UNO แต่รูปแบบอื่น ๆ ก็เพียงพอแล้ว)
ปุ่มกด 1x4 w / 5 พิน
5 สายจัมเปอร์
ตัวต้านทานและไฟ LED (หากคุณต้องการภาพ)
ขั้นตอนที่ 2: การประกอบ
แทรก 1x4 ส่วนหัวของปุ่มกดลงในเขียงหั่นขนมปังของคุณและวางสายจัมเปอร์ 1 อันไว้ด้านหน้าของแต่ละส่วนหัว
(จากซ้ายไปขวา)
สายแรกควรเชื่อมต่อกับ GRND Pin บน Arduino ของคุณ
สายที่ 2, 3, 4 และ 5 ควรเชื่อมต่อกับ Digital Pins 4 อันบน Arduino ของคุณ เพื่อให้ง่ายฉันเลือกพิน 9-12
- Digital Pin # 9 จะเป็นหมายเลข # 1 บนแป้นพิมพ์ของคุณ
- Digital Pin # 10 จะเป็นปุ่ม # 2 บนแป้นพิมพ์ของคุณ
- Digital Pin # 11 จะเป็นปุ่ม # 3 บนแป้นพิมพ์ของคุณ
- Digital Pin # 12 จะเป็นปุ่ม # 4 บนแป้นพิมพ์ของคุณ
ตรวจสอบการเชื่อมต่อของคุณ
ขั้นตอนที่ 3: รหัส
วางสิ่งต่อไปนี้ลงใน Arduino Sketch & บันทึกที่ว่างเปล่า ดำเนินการต่อไปยังขั้นตอนถัดไปสำหรับคำอธิบาย
/*
ปุ่มกด 1x4 จาก Adafruit.com (แหล่งที่มาไม่เป็นทางการ) ต้นฉบับดั้งเดิม: ปุ่มอ้างอิงการสอนบน Arduino.com: http://arduino.cc/en/Tutorial/InputPullupSerial อ้างอิง:
เปิดและปิด Pin หรือ Prints ที่ระบุไปยัง Serial Monitor เมื่อมีการกดแป้นบนแป้นพิมพ์ 1x4 จาก Adafruit.com
The (OLD) วงจร: * LED ติดจาก pin 13 ถึง ground * pushbutton ที่แนบไปกับ pin 2 จาก + 5V * pushbutton ที่แนบไปกับ pin 3 จาก + 5V * 10K resistor ที่แนบมากับ pin 2 จากพื้นดิน
วงจร (ใหม่) (2014):
* องค์ประกอบใดก็ตามที่คุณต้องการแนบไปกับ Pin 13 (เช่น - LED) * 1x4 ปุ่มกด w / ขาหลักที่แนบกับกราวด์และปุ่ม 1-4 ที่ต่อกับ PINS 9-12 * การตรวจสอบแบบอนุกรมใช้สำหรับเอาท์พุท (สำหรับการทดสอบ ถึง Pin 13)
* บันทึก:
สร้าง 2005 โดย DojoDave modified 30 ส.ค. 2554 โดย Tom Igoe ดัดแปลง 10 เม.ย. 2555 โดย mpilchfamily ดัดแปลง 8 ธ.ค. 2557 โดย C Cunningham
*
/ ค่าคงที่จะไม่เปลี่ยนแปลง พวกมันใช้ที่นี่เพื่อ // กำหนดหมายเลขพิน: const int buttonPin = {9,10,11,12}; // จำนวนของหมุดปุ่มกด const int ledPin = 13; // จำนวนพิน LED
// ตัวแปรจะเปลี่ยน: int buttonState = 0; // ตัวแปรสำหรับอ่านสถานะปุ่มกด
การตั้งค่าเป็นโมฆะ () {/ / เริ่มต้น pin LED เป็นเอาท์พุท: pinMode (ledPin, OUTPUT); // เริ่มต้นการตรวจสอบพอร์ตอนุกรม @ 9600 Serial.begin (9600); // เตรียมใช้งานหมุดปุ่มกดเป็นอินพุต: สำหรับ (int x = 0; x <2; x ++) {pinMode (buttonPin x, INPUT_PULLUP); }}
void loop () {// อ่านสถานะของค่าปุ่มกด: สำหรับ (int x = 0; x <2; x ++) {// แสดงสถานะของปุ่มที่อยู่ในโดยการอ่านพินที่เหมาะสม # buttonState = digitalRead (buttonPin x);
// ตรวจสอบว่ามีการกดปุ่มกดบนปุ่มกดหรือไม่ // ถ้าเป็นเช่นนั้น buttonState คือ LOW: if (buttonState == LOW && buttonPin x == 9) {// ปิด LED ดับ: Serial.print ("OFF *"); // digitalWrite (ledPin, LOW); } if (buttonState == LOW && buttonPin x == 10) {// ปิดไฟ LED: Serial.print ("ON *"); // digitalWrite (ledPin, LOW); }}}
ขั้นตอนที่ 4: คุณทำเสร็จแล้ว!
ตรวจสอบและรวบรวม, อัปโหลดและเปิดการตรวจสอบแบบอนุกรมของคุณ กดปุ่มของคุณ ฉันใช้ปุ่ม 1 & 2 สำหรับฟังก์ชั่นเปิด / ปิดเท่านั้น รหัสสามารถขยายได้เพื่อทำสิ่งดีๆอื่น ๆ ด้วย..