สารบัญ:
- ขั้นตอนที่ 1: ไปรับสิ่งของ
- ขั้นตอนที่ 2: ผ่าโทรศัพท์
- ขั้นตอนที่ 3: กำหนดว่าสายไฟทำอะไร
- ขั้นตอนที่ 4: เชื่อมต่อ Dialer กับชิป PIC
- ขั้นตอนที่ 5: รวบรวมรหัส
- ขั้นตอนที่ 6: การทดสอบ
- ขั้นตอนที่ 7: ไปไกลกว่านั้น
วีดีโอ: อินเทอร์เฟซ PIC Dialer แบบหมุน: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:08
ฉันพบว่าตัวเองมีโทรศัพท์แบบโรตารี่มากมาย อันที่จริง พวกมันอยู่ทุกที่ที่ฉันมอง ด้วยความหวังว่าสักวันหนึ่งฉันจะได้เห็นพวกเขาน้อยลง ฉันจึงเริ่มแยกชิ้นส่วนและนำชิ้นส่วนเหล่านี้กลับมาใช้ใหม่เพื่อจุดประสงค์อื่น
ด้วยเหตุผลบางอย่าง ฉันก็นึกขึ้นมาได้ว่าการเชื่อมต่อตัวควบคุมแบบโรตารี่กับชิป PIC จะเป็นความคิดที่ดี ฉันสามารถนึกถึงการใช้งานที่คลุมเครือได้เพียงสองสามอย่างในขณะนี้และไม่มีใครมีประโยชน์โดยเฉพาะ แต่ฉันหวังว่าจะทำอะไรเจ๋ง ๆ กับสิ่งนี้ในอนาคต
ขั้นตอนที่ 1: ไปรับสิ่งของ
คุณจะต้องการ:1 - โทรศัพท์แบบหมุน3 - ตัวต้านทาน 220 โอห์ม2 - ตัวเก็บประจุ 0.1uF 2 - ตัวต้านทาน 20K (สามารถทดแทนอะไรก็ได้ระหว่าง 10K ถึง 47K)2 - LED1 - บอร์ดพัฒนา PIC (ฉันใช้สภาพแวดล้อมการพัฒนา Basic Micro) 1 - 20 MHZ resonator หรือคริสตัล1 - เขียงหั่นขนม1 - แหล่งพลังงาน 5V1 - ปลายสายเชื่อมต่อ 1 - ไขควง1 - ที่ปอกสายไฟ
ขั้นตอนที่ 2: ผ่าโทรศัพท์
เปิดโทรศัพท์แบบหมุนของคุณ ด้านในคุณจะสังเกตเห็นชิ้นส่วนพื้นฐานบางอย่าง แป้นหมุน ตัวสั่น แจ็คสองตัว สวิตช์ขอเกี่ยว และวงจรพื้นฐานซึ่งมักจะหุ้มอยู่ในสิ่งที่เหมือนกล่องรวมสัญญาณโลหะ
จะมีสายสี่เส้นวิ่งจากแป้นหมุนไปยังสิ่งที่เหมือนกล่องรวมสัญญาณ ควรยึดสายไฟให้เข้าที่โดยใช้สกรูที่ขันให้แน่นเล็กน้อย คลายสกรูและถอดสายไฟ หลังจากนั้นให้ถอดสายหมุนออกจากโทรศัพท์
ขั้นตอนที่ 3: กำหนดว่าสายไฟทำอะไร
ต่อสายไฟ LED สองดวงตามที่แสดงในแผนภาพด้านล่าง
สายสีขาวสองเส้นควรเป็นคู่ที่ปิดสวิตช์ซึ่งจะแจ้งให้คุณทราบเมื่อหมุนแป้นหมุน สายสีน้ำเงินและสีเขียวควรเป็นคู่ที่ช่วยให้คุณรู้ว่าหมายเลขใดถูกหมุน ดังนั้น เมื่อคุณหมุนแป้นหมุน ไฟ LED ที่เชื่อมต่อกับสายไฟสีขาวควรเปิดขึ้น และเมื่อคุณปล่อยแป้น LED ไฟ LED ที่เชื่อมต่อกับสายสีน้ำเงินและสีเขียวควรกะพริบหลายครั้งตามจำนวนที่คุณระบุ โทรออก (ดูวิดีโอ) ตัวอย่างเช่น หากคุณหมุนหมายเลข 8 ไฟ LED ที่เชื่อมต่อกับสายสีเขียวและสีน้ำเงินจะปิดและเปิดขึ้น 8 ครั้ง สิ่งนี้เกิดขึ้นเนื่องจากวิธีหนึ่งในการกดหมายเลขโทรศัพท์คือตัดการเชื่อมต่ออย่างรวดเร็วตามจำนวนครั้งที่คุณพยายามโทรออก ดังนั้น หากต้องการหมุนหมายเลข 8 คุณจะต้องตัดการเชื่อมต่ออย่างรวดเร็ว 8 ครั้ง
ขั้นตอนที่ 4: เชื่อมต่อ Dialer กับชิป PIC
เชื่อมต่อแป้นหมุนหมายเลขเข้ากับชิป PIC ตามที่เห็นในแผนภาพ สังเกตว่าฉันกำลังอ่านสถานะของแป้นหมุนโดยใช้ RC-timing กล่าวอีกนัยหนึ่ง ชิป PIC กำลังนับจำนวนครั้งที่ตัวเก็บประจุใช้ในการคายประจุ (ซึ่งจะเปลี่ยนแปลงเมื่อมีการเพิ่มความต้านทาน)
นั่นคือที่มาของตัวต้านทาน 20K การเพิ่มสิ่งนี้ลงในอินพุตช่วยให้สามารถแยกความแตกต่างระหว่างสัญญาณจากการเชื่อมต่อสวิตช์โรตารี่แบบปิดและแบบเปิดได้อย่างชัดเจน
ขั้นตอนที่ 5: รวบรวมรหัส
ในการตั้งโปรแกรมชิป ฉันใช้สภาพแวดล้อมการพัฒนา MBasic จาก Basic Micro MBasic ค่อนข้างง่าย เป็นรูปแบบของ Basic ที่ออกแบบมาเพื่อใช้กับชิป PIC สามารถแปลงเป็นภาษาสากล (มีประโยชน์) ได้ง่ายขึ้น รหัสเป็นตัวกำหนดโดยพื้นฐานแล้วเมื่อมีคนหมุนแป้นหมุน จากนั้นทำการตรวจจับขอบของสัญญาณ (กำหนดช่วงการเปลี่ยนภาพต่ำ-สูง) จนกว่าแป้นหมุนจะกลับสู่สถานะเริ่มต้น หลังจากนับจำนวนครั้งที่วัดการเปลี่ยนแปลงของสัญญาณแล้ว ไฟ LED จะกะพริบตามลำดับ ตัวอย่างเช่น หากคุณหมุนหมายเลข 3 PIC จะนับช่วงการเปลี่ยนภาพต่ำ-สูงสามครั้ง จากนั้นไฟ LED จะกะพริบ 3 ครั้ง LED อย่างที่คุณอาจอนุมานได้ ไม่จำเป็นสำหรับสิ่งนี้เพื่อใช้งาน และอยู่ที่นั่นเพื่อให้คุณเห็นข้อเสนอแนะที่มองเห็นได้ คุณสามารถเปลี่ยนอุปกรณ์ส่งออกใด ๆ ที่คุณเห็นว่าจำเป็น *********************นี่คือรหัสบางส่วน:************************CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain:countclicks = 0repvar = 0'sets/resetsvalueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin > 10 จากนั้นให้ไปที่การนับจำนวนการตรวจสอบ ไปที่รูทีนย่อยถ้ามัน hasgoto main'===============countmeup:high B1rctime B1, 1, clacker'sets comparison valuegoto countmeuploop'=========== =====countmeuploop:high B1rctime B1, 1, clicker'checks counting valuelargefig = clacker + 100' ตั้งค่าสำหรับขีดจำกัดที่จะมากกว่า '0 แต่น้อยกว่าค่า pin-high ที่เป็นไปได้ถ้า bigfig < clicker thencountclicks = countclicks + 1endif'เพิ่ม 1 ค่าทุกครั้งที่บันทึกการเปลี่ยนแปลงจากต่ำไปสูงสูง B2rctime B2, 1, startcountinif startcountin < 10 จากนั้นหากนับคลิก > 0 จากนั้นไปที่การกะพริบตาหลักendifendif'ตรวจสอบเพื่อดูว่าแป้นหมุนกลับมาที่ i หรือไม่ สถานะ nitial'ถ้ามีและโทรออกจำนวนหนึ่งจะไปที่รูทีน LED' มิฉะนั้นถ้าไม่มีการโทรออกมันจะไปที่ maincracker = clicker'รีเซ็ตค่าเปรียบเทียบกับค่าพินปัจจุบันไปที่ countmeuploop'no หยุดเลยในรูทีนนี้ !'================blinker:repvar = repvar + 1'counts การทำซ้ำของรูทีนแต่ละครั้งสูง B3pause 1000low B3pause 1000'blinks LEDif repvar = countclicks thenrepvar = 0goto mainendif'if การทำซ้ำเท่ากับจำนวนครั้งที่ไฟ LED ควรกะพริบจากนั้นจะกลับไปที่ไฟกระพริบหลักตามปกติ
ขั้นตอนที่ 6: การทดสอบ
หากคุณทำทุกอย่างเหมือนกับฉัน มันน่าจะได้ผล (ดูวิดีโอ)
หากไม่ได้ผล ตรวจสอบให้แน่ใจว่าคุณต่อสายทุกอย่างถูกต้องและคัดลอกรหัสอย่างถูกต้อง ตรวจสอบให้แน่ใจด้วยว่าเรโซเนเตอร์ (หรือคริสตัล) ของคุณคือ 20 MHZ หากคุณเขียนโค้ดของคุณเอง ตรวจสอบให้แน่ใจว่าไม่มีการหยุดชั่วคราวในรูทีนที่ตรวจสอบการเปลี่ยนช่วงต่ำ-สูง
ขั้นตอนที่ 7: ไปไกลกว่านั้น
พิจารณาการใช้งานอื่น ๆ สำหรับแป้นหมุนแบบหมุนนอกเหนือจากการกะพริบไฟ LED
แนะนำ:
พล็อตเตอร์ขวด CNC แบบหมุน: 9 ขั้นตอน (พร้อมรูปภาพ)
พลอตเตอร์ขวด CNC แบบหมุน: ฉันหยิบลูกกลิ้งขึ้นมา ซึ่งอาจใช้ในเครื่องพิมพ์ ฉันเกิดความคิดที่จะเปลี่ยนให้เป็นแกนหมุนของเครื่องพล็อตเตอร์ขวด CNC วันนี้ ฉันต้องการแบ่งปันวิธีการสร้างเครื่องพลอตเตอร์ขวด CNC จากลูกกลิ้งเหล่านี้และเศษอื่นๆ เพื่อ d
อินเทอร์เฟซ Arduino Mega พร้อมโมดูล GPS (Neo-6M): 8 ขั้นตอน
อินเทอร์เฟซ Arduino Mega พร้อมโมดูล GPS (Neo-6M): ในโครงการนี้ ฉันได้แสดงวิธีการเชื่อมต่อโมดูล GPS (Neo-6M) กับ Arduino Mega ไลบรารี่ TinyGPS ใช้เพื่อแสดงข้อมูลของลองจิจูดและละติจูด และ TinyGPS++ ใช้สำหรับแสดงละติจูด ลองจิจูด ระดับความสูง ความเร็ว และจำนวนดาวเทียม
รูปแบบรางรถไฟควบคุมด้วยแป้นพิมพ์ V2.5 - อินเทอร์เฟซ PS/2: 12 ขั้นตอน
รูปแบบรางรถไฟควบคุมด้วยแป้นพิมพ์ V2.5 | อินเทอร์เฟซ PS/2: การใช้ไมโครคอนโทรลเลอร์ Arduino มีหลายวิธีในการควบคุมเค้าโครงรถไฟจำลอง แป้นพิมพ์มีประโยชน์อย่างมากในการมีแป้นจำนวนมากเพื่อเพิ่มฟังก์ชันมากมาย มาดูกันว่าเราจะเริ่มด้วยเลย์เอาต์ง่ายๆ กับหัวรถจักรและ
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: 4 ขั้นตอน
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: ในคำแนะนำนี้ เราจะเชื่อมต่อเซ็นเซอร์ ADXL335 (accelerometer) บน Raspberry Pi 4 กับ Shunya O/S
ไฟ LED แบบหมุน (หรือพัดลม LED Lit): 5 ขั้นตอน
ไฟ LED แบบหมุน (หรือพัดลม LED Lit): ในขณะที่สงสัยว่าควรสั่งสอนแบบใดฉันควรทำอย่างไรจึงจะเจอไฟ LED บางตัว สงสัยว่าจะทำอย่างไรกับพวกเขาในที่สุดฉันก็คิดออก พัดลมที่มีไฟ LED ในตัว! แน่นอนว่าคุณสามารถซื้อได้ แต่คุณไม่สามารถเปลี่ยนสีหรือตำแหน่งของ L