Inhoudsopgave:
- Stap 1: Ga spullen halen
- Stap 2: Ontleed de telefoon
- Stap 3: Bepaal wat de draden doen
- Stap 4: Verbind de kiezer met de PIC-chip
- Stap 5: Stel de code samen
- Stap 6: testen
- Stap 7: Ga verder
Video: Draaikiezer PIC-interface - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
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
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
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
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 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
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
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
Bedenk een ander gebruik voor de draaiknop dan het knipperen van een LED.
Aanbevolen:
PIC MCU en Python seriële communicatie: 5 stappen
PIC MCU en Python seriële communicatie: Hallo, jongens! In dit project zal ik proberen mijn experimenten op PIC MCU en Python seriële communicatie uit te leggen. Via internet zijn er veel tutorials en video's over hoe te communiceren met PIC MCU via een virtuele terminal, wat erg handig is. maar
Draadloze communicatie met behulp van goedkope 433MHz RF-modules en Pic-microcontrollers. Deel 2: 4 stappen (met afbeeldingen)
Draadloze communicatie met behulp van goedkope 433MHz RF-modules en Pic-microcontrollers. Deel 2: In het eerste deel van deze instructable demonstreerde ik hoe je een PIC12F1822 programmeert met behulp van MPLAB IDE en XC8-compiler, om een eenvoudige string draadloos te verzenden met goedkope TX/RX 433MHz-modules. De ontvangermodule was via een USB aangesloten op UART TTL kabel advertentie
Op JDM2 gebaseerde PIC-programmeur: 4 stappen:
JDM2 Gebaseerde PIC Programmeur: Schematische & layout voor een bijgewerkte JDM2 PIC Programmer. Inclusief klok & datafilter, Vpp-spanningsdeler voor moderne PIC-microcontrollers (bijv. USB PIC 18F2455/4455). Voorafgaand aan het lezen van sites zoals www.hackaday.com & www.makezine.com/blog Ik heb
ICSP voor PIC-microcontrollers begrijpen: 4 stappen (met afbeeldingen)
ICSP voor PIC-microcontrollers begrijpen: het programmeren van microcontrollers is niet moeilijk. Het bouwen van een programmeur is een geweldig eerste elektronicaproject. Het doel van deze instructable is om de eenvoudige 'in circuit serial programming'-methode uit te leggen die wordt gebruikt met Microchip PIC's
5 Transistor PIC Programmer * Schematisch toegevoegd aan stap 9!: 9 stappen
5 Transistor PIC Programmer *Schema toegevoegd aan Stap 9!: Maak uw eigen PIC programmer voor de parallelle poort van uw computer. Dit is een variatie op het klassieke ontwerp van David Tait. Het is zeer betrouwbaar en er is gratis goede programmeersoftware beschikbaar. Ik hou van IC-Prog en PICpgm programmeur. Het beste van alles is dat het