Inhoudsopgave:

Draaikiezer PIC-interface - Ajarnpa
Draaikiezer PIC-interface - Ajarnpa

Video: Draaikiezer PIC-interface - Ajarnpa

Video: Draaikiezer PIC-interface - Ajarnpa
Video: KIES NIET HET VERKEERDE MYSTERY PAD! *MEGA BORDSPEL CHALLENGE DEEL 3* #355 2024, Juli-
Anonim
Draaikiezer PIC-interface
Draaikiezer PIC-interface

Ik heb mezelf gevonden met een overvloed aan roterende telefoons. Sterker nog, ze zijn overal waar ik kijk. In de hoop dat ik er op een dag minder van zie, ben ik begonnen ze uit elkaar te halen en de onderdelen opnieuw te gebruiken voor andere doeleinden.

Om de een of andere reden kreeg ik het in mijn hoofd dat het een goed idee zou zijn om de draaiknop te koppelen met een PIC-chip. Ik kan er op dit moment maar een paar vage toepassingen voor bedenken en geen enkele is bijzonder nuttig, maar ik hoop hier in de toekomst iets leuks mee te doen.

Stap 1: Ga spullen halen

Ga spullen halen
Ga spullen halen

Je hebt nodig: 1 - Draaibare telefoon3 - 220 ohm weerstanden2 - 0.1uF condensatoren 2 - 20K weerstand (kan alles vervangen tussen 10K en 47K)2 - LED's1 - PIC-ontwikkelbord (ik gebruikte de Basic Micro-ontwikkelomgeving)1 - 20 MHZ-resonator of kristal1 - Breadboard1 - 5V stroombron1 - Een voet of zo van aansluitdraad1 - Schroevendraaier1 - Draadstripper

Stap 2: Ontleed de telefoon

Ontleden de telefoon
Ontleden de telefoon
Ontleden de telefoon
Ontleden de telefoon
Ontleden de telefoon
Ontleden de telefoon

Open je draaitelefoon. Aan de binnenkant vallen de paar basisonderdelen op; de draaiknop, het belsignaal, twee aansluitingen, de haakschakelaar en het basiscircuit dat meestal is ingekapseld in een metalen aansluitdoosachtig ding.

Er lopen vier draden van de draaikiezer naar dit junction-box-achtige ding. De draden moeten op hun plaats worden gehouden door iets meer dan aangedraaide schroeven. Draai de schroeven los en koppel de draden los. Koppel daarna de draaikiezer los van de telefoon zelf.

Stap 3: Bepaal wat de draden doen

Bepaal wat de draden doen
Bepaal wat de draden doen
Bepaal wat de draden doen
Bepaal wat de draden doen

Sluit twee LED's aan zoals weergegeven in het onderstaande diagram.

De twee witte draden moeten het paar zijn dat de schakelaar sluit die u laat weten wanneer aan de knop wordt gedraaid. De blauwe en groene draad moet het paar zijn dat u laat weten welk nummer is gekozen. Als u dus aan de knop draait, moet de LED die is aangesloten op de witte draden gaan branden en wanneer u de knop loslaat, moet de LED die is aangesloten op de blauwe en groene draden net zo vaak aan en uit knipperen als het nummer dat u gebeld (zie video). Als u bijvoorbeeld 8 kiest, gaat de LED die is aangesloten op de groene en blauwe draad 8 keer uit en aan. Dit gebeurt omdat een manier om een telefoonnummer te bellen is om de verbinding zo snel mogelijk te verbreken, het aantal keren dat het cijfer dat u probeert te kiezen. Dus nogmaals, om een 8 te kiezen, zou je de verbinding 8 keer snel moeten verbreken.

Stap 4: Verbind de kiezer met de PIC-chip

Sluit de kiezer aan op de PIC-chip
Sluit de kiezer aan op de PIC-chip
Sluit de kiezer aan op de PIC-chip
Sluit de kiezer aan op de PIC-chip

Sluit de draaikiezer aan op de PIC-chip zoals te zien is in het diagram. Merk op dat ik de status van de draaikiezer lees met behulp van RC-timing. Met andere woorden, de PIC-chip telt het aantal keren dat een condensator nodig heeft om te ontladen (wat verandert wanneer weerstand wordt toegevoegd).

Dat is waar de 20K-weerstand om de hoek komt kijken. Door deze aan de ingang toe te voegen, wordt een duidelijk onderscheid gemaakt tussen het signaal van een gesloten en open draaischakelaarverbinding.

Stap 5: Stel de code samen

Stel de code samen
Stel de code samen

Voor het programmeren van de chip heb ik de MBasic-ontwikkelomgeving van Basic Micro gebruikt. MBasic is eenvoudigweg een variant van Basic die is ontworpen voor gebruik met PIC-chips. Het is gemakkelijk om te zetten in een meer universele (nuttige) taal. De code bepaalt in wezen wanneer iemand aan de knop heeft gedraaid en vervolgens randdetectie op het signaal uitvoert (bepalend voor laag-hoog overgangen) totdat de knop terugkeert naar zijn oorspronkelijke staat. Na het tellen van het aantal keren dat het een signaalovergang meet, knippert de LED dienovereenkomstig. Als u bijvoorbeeld 3 kiest, telt de PIC drie laag-hoog overgangen en knippert vervolgens een LED 3 keer. De LED, zoals je misschien hebt afgeleid, is niet nodig om dit te laten werken en is er alleen om je zichtbare feedback te geven. U kunt elk uitvoerapparaat vervangen dat u nodig acht. ********************Hier is een code:************************* CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain:countclicks = 0repvar = 0'sets/reset valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin > 10 ga dan naar countmeup' checks en kijk of dial is ingeschakeld gaat naar subroutine als het naar main moet'================countmeup:high B1rctime B1, 1, clacker's sets vergelijk valuegoto countmeuploop'=========== =====countmeuploop:high B1rctime B1, 1, clicker'checkt telwaardelargefig = clacker + 100'stelt een waarde in voor de drempel die groter is dan 0 maar kleiner dan mogelijke pin-hoge waardenif largefig < clicker thencountclicks = countclicks + 1endif'voegt 1 waarde toe elke keer dat een overgang van laag naar hoog wordt geregistreerd hoog B2rctime B2, 1, startcountinif startcountin < 10 thenif countclicks > 0 ga dan naar blinkelsega naar mainendifendif'controleert of de wijzerplaat is teruggekeerd naar zijn i nitial state'als het heeft en een nummer is gekozen, gaat het naar de LED-routine'anders, als er geen nummer is gekozen, gaat het naar mainclacker = clicker'reset de vergelijkingswaarde naar de huidige pinwaardegoto countmeuploop'ALLEEN pauzes in deze routine !'================blinker:repvar = repvar + 1'telt elke herhaling van deze routine hoog B3pauze 1000laag B3pauze 1000'knippert de LEDif repvar = aantal klikken danrepvar = 0goto mainendif'if the herhalingen gelijk aan het aantal keren dat de LED moet knipperen, dan gaat het terug naar de hoofdroutinega naar knipperlicht

Stap 6: testen

Testen
Testen

Als je alles hetzelfde hebt gedaan als ik, zou het moeten werken (zie video).

Als het niet werkt, zorg er dan voor dat je alles correct hebt aangesloten en dat de code correct is gekopieerd. Zorg er ook voor dat uw resonator (of kristal) 20 MHz is. Als je je eigen code hebt geschreven, zorg er dan voor dat er geen pauzes zijn in de routine die controleert op laag-hoog overgangen.

Stap 7: Ga verder

Ga verder
Ga verder

Bedenk een ander gebruik voor de draaiknop dan het knipperen van een LED.

Aanbevolen: