สารบัญ:
- ขั้นตอนที่ 1: สิ่งจำเป็น (ไม่จริง)
- ขั้นตอนที่ 2: ตัวแบ่งแรงดัน
- ขั้นตอนที่ 3: บันไดแบ่งแรงดัน
- ขั้นตอนที่ 4: สรุป
วีดีโอ: วิธีอ่านสวิตช์จำนวนมากด้วยหมุด MCU เดียว: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:09
คุณเคยเลิกยุ่งกับโปรเจ็กต์หนึ่งๆ และโปรเจ็กต์ก็เติบโตขึ้นเรื่อยๆ ในขณะที่คุณเพิ่มสิ่งต่างๆ เข้าไป (เราเรียกว่า Feaping Creaturism) หรือไม่? ในโครงการล่าสุด ฉันกำลังสร้างเครื่องวัดความถี่และเพิ่มเครื่องกำเนิดสัญญาณ/เครื่องสังเคราะห์ความถี่ห้าฟังก์ชัน ในไม่ช้าฉันก็มีสวิตช์มากกว่าที่ฉันมีหมุดเหลืออยู่แล้วผู้ชายต้องทำอย่างไร?
อย่างไรก็ตาม ในไม่ช้าฉันก็มีสวิตช์อีกเจ็ดตัวบน Funbox ของฉัน (ใช่แล้ว นั่นคือสิ่งที่ฉันเรียกว่าตัวสร้างฟังก์ชันของฉัน…ฉันรู้ ฉันไม่มีความคิดสร้างสรรค์) และนี่คือคำแนะนำสั้นๆ ที่แสดงให้คุณเห็นว่าคุณจะทำเช่นเดียวกันได้อย่างไร ไม่ต้องใช้ shift register หรือ IC เฉพาะ อันที่จริง ไม่จำเป็นต้องใช้ไมโครคอนโทรลเลอร์เช่นกัน หากเซมิคอนดักเตอร์แบบแยกเป็นวิธีการหมุนของคุณ นี่เป็นวิธีหนึ่งที่คุณสามารถอ่าน/จัดการสวิตช์หลายตัวโดยใช้พินเดียวบน AVR ของคุณ (หรือไมโครคอนโทรลเลอร์อื่น…ฉันได้ยินมาว่ามีไมโครคอนโทรลเลอร์อื่นนอกเหนือจาก AVR แต่ฉันนึกไม่ออก…):)
ขั้นตอนที่ 1: สิ่งจำเป็น (ไม่จริง)
คุณต้องมีส่วนประกอบสองสามอย่างจึงจะสำเร็จได้ ช่วยให้มีสวิตช์มากมายที่คุณต้องจัดการ คุณจะต้องใช้ตัวต้านทานบางตัวและไมโครคอนโทรลเลอร์ที่มี ADC (การแปลงแอนะล็อกเป็นดิจิทัล) หรือวิธีอื่นที่คุณต้องการระบุว่ามีสวิตช์เปิดใช้งานอยู่และเป็นสวิตช์ตัวใด
หากคุณต้องการ คุณสามารถใช้ออสซิลเลเตอร์ที่ควบคุมด้วยแรงดันไฟฟ้าเพื่อระบุสิ่งนี้ อาจมีไฟกะพริบหรือเสียง ใน ible นี้ ฉันจะแกล้งทำเป็นว่าเรากำลังใช้ AVR แต่ในโลกของคุณ คุณสามารถแสร้งทำเป็นอะไรก็ได้ที่ทำให้คุณมีความสุข ฉันคิดถึงบ๊อบรอส
ขั้นตอนที่ 2: ตัวแบ่งแรงดัน
โดยพื้นฐานแล้ว วิธีที่เราจะทำเช่นนี้คือการใช้เทคนิคและวงจรที่เรียกว่าตัวแบ่งแรงดันไฟ ตัวแบ่งแรงดันทำอย่างที่คุณอาจเดาได้ แบ่ง V,, in,, แรงดันไฟตามค่าที่คุณกำหนด คุณสามารถแบ่งแรงดันไฟด้วยส่วนประกอบต่างๆ ได้ รวมถึงตัวเก็บประจุและตัวเหนี่ยวนำ แต่ในที่นี้ ฉันจะทำกับตัวต้านทาน 'ol ที่ดี แนวคิด สิ่งที่เรากำลังทำคือการใส่สององค์ประกอบในอนุกรมซึ่งจะทำให้เกิดแรงดันไฟฟ้าตกข้ามส่วนประกอบแต่ละส่วน ดูรูปแรกถ้าไม่เข้าใจ มีความแตกต่างที่อาจเกิดขึ้นจากรางถึงราง 9V ระหว่าง 9V ถึง 0V มีตัวต้านทานสองตัวต่ออนุกรมกัน สิ่งเหล่านี้จะประสบกับแรงดันตกคร่อมตัวเอง ขึ้นอยู่กับความต้านทาน ตามที่คุณอาจจำได้จาก V = IR หากคุณทำการวัดแรงดันไฟระหว่างตัวต้านทานสองตัว คุณจะได้ค่าระหว่าง 9V ถึง 0V ขึ้นอยู่กับว่าแรงดันตกคร่อมตัวต้านทานตัวแรกมากน้อยแค่ไหน มีสูตรที่ตรงไปตรงมาสำหรับการคำนวณแรงดันตกคร่อมตัวต้านทานในสถานการณ์นี้ และดูเหมือนว่านี้ ให้แรงดันไฟฟ้าเหนือตัวต้านทาน 1 (R1) เป็น V1 และแรงดันไฟฟ้าเหนือตัวต้านทานสองตัว (R2) เป็น V2 เนื่องจากฉันไม่สามารถใช้การจัดรูปแบบได้อีกต่อไป ให้ดูที่รูปที่ 2 ด้านล่างสำหรับสูตร… ดังนั้นในตัวต้านทานแบบหารของเรา แรงดัน Vout สามารถกำหนดได้โดยสูตรของเราสำหรับ V2 (เนื่องจากเราจะอ้างอิง GND ถึง 0V) สิ่งนี้เกี่ยวข้องกับการตรวจพบสวิตช์จำนวนมากจากพินเดียว เอาล่ะเปิดหน้าแล้วฉันจะแสดงให้คุณเห็น!
ขั้นตอนที่ 3: บันไดแบ่งแรงดัน
ทีนี้ สมมติว่าเรามีสวิตช์ทั้งหมดของเรา บางทีอาจจะหกหรือแปดหรือสิบหก ทั้งหมดเชื่อมต่อผ่านตัวต้านทานซึ่งแต่ละตัวทำหน้าที่เป็นตัวแบ่งแรงดันไฟฟ้า ดังนั้นเมื่อสถานะของขาสวิตช์เปลี่ยนไป แรงดันไฟฟ้าจะถูกอ่านและขึ้นอยู่กับระดับแรงดันไฟฟ้า เรา สามารถทราบได้ว่าสวิตช์ใดเพิ่งเปิดใช้งาน ดูด้านล่าง ในภาพด้านล่าง ฉันได้เชื่อมต่อสวิตช์สองช่วงตึก บล็อกบนสุดมีสวิตช์สองตัว และบล็อกล่างสุดมีสวิตช์ห้าตัว คุณสามารถเชื่อมต่อสวิตช์แยก ชั่วขณะ สัมผัส ฯลฯ ในลักษณะเดียวกันได้ สิ่งสำคัญที่ควรสังเกตคือตัวต้านทานที่สวิตช์ของคุณเชื่อมต่ออยู่ ในตัวอย่างของฉัน ฉันได้เพิ่มความต้านทานของตัวต้านทานตัวถัดไปเกือบสองเท่าเพื่อสร้างช่องว่างแรงดันไฟที่วัดได้ง่ายและไม่ผิดเพี้ยนสำหรับสวิตช์ก่อนหรือหลัง หากคุณไม่เคยสังเกตมาก่อน ให้มองอีกครั้ง และตระหนักว่าเรากลับมาที่ตัวแบ่งแรงดันไฟฟ้าแบบต้านทานเพื่อนเก่าของเรา ตัวต้านทานตัวแรกคือ 10k ohm เชื่อมต่อกับ 5V และตัวต้านทานตัวที่ 2 ซึ่งเป็นตัวต้านทานที่จะกำหนด Vออก สำหรับพิน SWITCH_ADC เชื่อมต่อกับสวิตช์แต่ละตัว ดังนั้น สวิตช์แต่ละตัวจึงเชื่อมโยงกับแรงดันไฟฟ้า Vout เฉพาะที่สามารถอ่านได้จากพิน ADC ที่เชื่อมต่อที่ SWITCH_ADC ถัดไป กำหนด Vout ที่คาดหวังจากสวิตช์แต่ละตัวเช่นนั้น
Vout = วิน * (R2 / (R1 + R2))
สำหรับสวิตช์หนึ่ง:
Vout = 5V * (500 / (10000 + 500)) = 5*0.048 = 0.24V หรือ 240 mV
สำหรับสวิตช์สอง:
Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V หรือ ~ 900mV
และอื่น ๆ.. คุณสามารถแทนที่ค่าของคุณเองสำหรับ R2 ได้หากคุณมีตัวต้านทานบางตัวเท่านั้น…สิ่งสำคัญที่นี่คือการรักษาช่องว่างระหว่างแรงดันไฟฟ้าที่กว้างเพียงพอระหว่างสวิตช์เพื่อให้เกิดข้อผิดพลาดใด ๆ บน ADC นำคุณเข้าสู่แรงดันไฟฟ้าที่คาดหวังจากสวิตช์ข้างเคียง ฉันพบสิ่งที่ง่ายที่สุดที่จะทำคือสร้างบันไดแบ่งและวางมัลติมิเตอร์/โวลต์มิเตอร์บนพิน ADC แล้วกดแต่ละพินแล้วดูว่าคุณจะได้ค่าใด พวกเขาควรจะเป็นจุดที่ดีในสิ่งที่คุณคำนวณ เมื่อคุณมีค่าแรงดันที่คาดหวังทั้งหมดจากสวิตช์แต่ละตัวโดยใช้ตัวต้านทานเฉพาะแล้ว คุณสามารถให้ MCU ของคุณอ่านพิน ADC และเปรียบเทียบกับค่าที่ทราบของคุณเพื่อพิจารณาว่าสวิตช์ตัวใดถูกกด ตัวอย่างเช่น สมมติว่าคุณได้ลงทะเบียนรูทีนบริการขัดจังหวะซึ่งจะถูกเรียกเมื่อใดก็ตามที่มีการเปลี่ยนแปลงที่ตรวจพบบนพิน ADC ภายใน ISR นั้น คุณสามารถอ่าน ADC และเปรียบเทียบค่านั้นกับตารางสวิตช์ของคุณได้ หากคุณใช้ค่า ADC 8 บิต แรงดันไฟฟ้าของคุณจะถูกแปลงเป็นตัวเลขระหว่าง 0 ถึง 255 ซึ่งสอดคล้องกับแรงดันไฟฟ้าระหว่าง 0V ถึง 5V ถือว่าคุณได้กำหนดค่า ADC ด้วยวิธีนี้
ขั้นตอนที่ 4: สรุป
ดังนั้น ตอนนี้คุณควรรู้วิธีประหยัดการใช้พิน GPIO สำหรับสวิตช์ เมื่อใดก็ตามที่คุณใช้พิน GPIO เหลือน้อย หรือแทบไม่ต้องเริ่มต้นเลย หรือถ้าคุณรู้ว่าคุณกำลังจะใช้สวิตช์ธนาคาร ตัวแบ่งตัวต้านทานเป็นวิธีบันทึกพิน GPIO ของคุณในขณะที่ยังให้ กลไกที่แข็งแกร่งในการตรวจจับการเข้าถึงสวิตช์
แนะนำ:
Node Mcu Indian Car Central Lock พร้อม Rfid และ Blynk Timer Unlock: 9 ขั้นตอน
Node Mcu Indian Car Central Lock พร้อม Rfid และ Blynk Timer Unlock: ฉันกำลังแสดงให้คุณเห็นวันนี้รถสไตล์อินเดียล็อคกลางอัตโนมัติเต็มรูปแบบพร้อมแท็ก rfid blynk wifi ควบคุมและปลดล็อคเวลานอกจากนี้ยังมีคุณสมบัติทั้งหมดของเซ็นทรัลล็อคปกติ รถคันนี้ เซ็นทรัลล็อค WORKS OFFLINE ACTIVATION ต้องการ NETWORK LOCKS AN
MCU เข้าถึงบริการอินเทอร์เน็ตผ่าน IFTTT – Ameba Arduino: 3 ขั้นตอน
MCU การเข้าถึงบริการอินเทอร์เน็ตผ่าน IFTTT – Ameba Arduino: การเข้าถึงบริการอินเทอร์เน็ตเป็นงานที่ง่ายสำหรับอุปกรณ์อัจฉริยะ เช่น โทรศัพท์ Android แท็บเล็ต หรือพีซี แต่ไมโครคอนโทรลเลอร์มักต้องการการเชื่อมต่อและการประมวลผลที่ดีกว่า อย่างไรก็ตาม เราอาจถ่ายส่วนที่หนักของ
จอแสดงผลสองหลักโดยใช้เมทริกซ์ LED 8x8 เดี่ยว: 3 ขั้นตอน
จอแสดงผลสองหลักโดยใช้เมทริกซ์ LED 8x8 เดี่ยว: ที่นี่ฉันต้องการสร้างตัวบ่งชี้อุณหภูมิและความชื้นสำหรับห้องของฉัน ฉันใช้เมทริกซ์ LED 8x8 ตัวเดียวเพื่อแสดงตัวเลขสองหลัก และฉันคิดว่าส่วนหนึ่งของโปรเจ็กต์มีประโยชน์มากขึ้น ฉันใส่กล่องสุดท้ายที่สร้างขึ้นโดยใช้กล่องกระดาษแข็ง ความเจ็บปวด
ทำให้คุณเป็นเจ้าของหูฟัง Balanced Armature เดี่ยว - Klipsch X10 + ER4P: 5 ขั้นตอน
ทำให้คุณเป็นเจ้าของหูฟัง Balanced Armature เดี่ยว - Klipsch X10 + ER4P: นี่เป็นเรื่องเกี่ยวกับวิธีสร้างหูฟัง Balanced Armature เพียงตัวเดียวโดยใช้เปลือก Klipsch X10 และไดรเวอร์ Knowles BA (ใช้ใน ER4PS Hi-end IEM) วัสดุทั้งหมดมีอยู่ที่ earphonediylabs.com
ควบคุมทุกอย่างด้วยพิน AVR เดียว: 4 ขั้นตอน
ควบคุมทุกอย่างด้วย AVR Pin หนึ่งอัน: คำแนะนำนี้แสดงวิธีควบคุมกลุ่มของ led ด้วยเอาต์พุตไมโครโปรเซสเซอร์หนึ่งตัว ไมโครที่ฉันจะใช้คือ Atmel Attiny2313