Indholdsfortegnelse:
- Trin 1: Gå og få ting
- Trin 2: Dissekér telefonen
- Trin 3: Find ud af, hvad ledningerne gør
- Trin 4: Tilslut opkaldet til PIC -chippen
- Trin 5: Saml koden
- Trin 6: Test
- Trin 7: Gå videre
Video: Rotary Dialer PIC -grænseflade: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:30
Jeg har fundet mig selv med en overflod af roterende telefoner. Faktisk er de overalt, hvor jeg kigger. I håb om at jeg en dag kan se mindre af dem, er jeg begyndt at skille dem ad og genbruge delene til andre formål.
Af en eller anden grund fik jeg det ind i min hjerne, at det ville være en god idé at tilslutte den roterende kontrol med en PIC -chip. Jeg kan kun tænke på et par vage anvendelser til det i øjeblikket, og ingen er særlig nyttige, men jeg håber at gøre noget fedt med dette i fremtiden.
Trin 1: Gå og få ting
Du skal bruge: 1 - Rotary phone3 - 220 ohm modstande2 - 0.1uF kondensatorer 2 - 20K modstand (kan erstatte alt mellem 10K og 47K) 2 - LED'er1 - PIC udviklingskort (jeg brugte Basic Micro udviklingsmiljøet) 1 - 20 MHz resonator eller krystal1 - Breadboard1 - 5V strømkilde1 - En fod eller deromkring af tilslutningstråd1 - Skruetrækker1 - Wire stripper
Trin 2: Dissekér telefonen
Åbn din roterende telefon. På indersiden vil du bemærke de få grundlæggende dele; drejeknappen, ringetonen, to stik, krogkontakten og det grundlæggende kredsløb, der normalt er indkapslet i en metalforbindelsesbokslignende ting.
Der vil være fire ledninger, der kører fra den roterende dialer til denne kryds-kasse-lignende ting. Ledningerne skal holdes på plads med lidt mere end spændte skruer. Løsn skruerne, og frakobl ledningerne. Derefter skal du afbryde den roterende dialer fra selve telefonen.
Trin 3: Find ud af, hvad ledningerne gør
Tilslut to LED'er som vist i diagrammet herunder.
De to hvide ledninger skal være det par, der lukker kontakten, der giver dig besked, når drejeknappen drejes. Den blå og grønne ledning skal være det par, der lader dig vide, hvilket nummer der blev ringet op. Når du drejer på drejeknappen, skal LED'en, der er tilsluttet de hvide ledninger, tændes, og når du slipper uret, skal LED'en, der er tilsluttet de blå og grønne ledninger, blinke til og fra lige så mange gange som det nummer, du ringes op (se video). Hvis du f.eks. Ringer 8, slukkes og tændes LED'en, der er tilsluttet den grønne og blå ledning, 8 gange. Dette sker, fordi en måde at ringe til et telefonnummer på er hurtigt at afbryde forbindelsen det antal gange for det ciffer, du prøver at ringe til. Så igen, for at ringe til en 8 skulle du hurtigt afbryde forbindelsen 8 gange.
Trin 4: Tilslut opkaldet til PIC -chippen
Tilslut drejeknappen til PIC -chippen som vist i diagrammet. Læg mærke til, at jeg læser i tilstanden af den roterende dialer ved hjælp af RC-timing. Med andre ord tæller PIC -chippen det antal gange, det tager for en kondensator at aflade (hvilket ændres, når der tilføjes modstand).
Det er her, 20K -modstanden kommer ind. Tilføjelse af dette til indgangen giver mulighed for en klar differentiering mellem signalet fra en lukket og åben drejekontaktforbindelse.
Trin 5: Saml koden
For at programmere chippen brugte jeg MBasic -udviklingsmiljøet tilgængeligt fra Basic Micro. MBasic er ganske enkelt en variant af Basic designet til brug med PIC -chips. Det kan let konverteres til et mere universelt (nyttigt) sprog. Koden er i det væsentlige afgørende for, hvornår nogen har drejet drejeknappen og derefter foretager kantregistrering på signalet (bestemmelse af lav-høje overgange), indtil skiven vender tilbage til sin oprindelige tilstand. Efter at have opgjort antallet af gange, den måler en signalovergang, blinker den derefter LED'en i overensstemmelse hermed. For eksempel, hvis du ringer 3, tæller PIC'en tre lav-høje overgange og derefter blinker en LED 3 gange. Lysdioden, som du måske har udledt, er unødvendig for at denne kan fungere og er bare der for at give dig synlig feedback. Du kan erstatte enhver outputenhed, som du finder nødvendig. ********************** Her er lidt kode: ********************** CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0sets/nulstiller værdierhøj B2rctime B2, 1, startcountincountclicks = 0if startcountin> 10 derefter gå til countmeup 'tjek for at se om dial er blevet drejet går til underrutine, hvis den har gået til main '================ countmeup: høj B1rctime B1, 1, clacker'sets sammenligner valuegoto countmeuploop' ============ ===== countmeuploop: høj B1rctime B1, 1, clicker'checks tæller valuelargefig = clacker + 100 angiver en værdi for tærsklen, der vil være større 'end 0, men mindre end mulige pin-høje værdier hvis largefig <clicker thencountclicks = countclicks + 1endif' tilføjer 1 værdi hver gang en lav til høj overgang registreres høj B2rctime B2, 1, startcountinif startcountin <10 derefter hvis countclicks> 0 thengoto blinkelsegoto mainendifendif'checks for at se om urskiven har vendt tilbage til dens i nitial tilstand 'hvis den har, og et nummer blev ringet op, går den til LED -rutinen' ellers, hvis der ikke blev ringet op, går den til mainclacker = klikker 'nulstiller sammenligningsværdien til den aktuelle pinværdi. gå til antal ! '================ blinker: repvar = repvar + 1'tæller hver gentagelse af denne rutinehøje B3pause 1000low B3pause 1000'blinker LEDif repvar = countclicks thenrepvar = 0 gå til mainendif'if den gentagelser svarer til det antal gange, LED'en skal blinke, så går den tilbage til hovedrutinens blinkende blink
Trin 6: Test
Hvis du gjorde alt det samme som jeg, burde det fungere (se video).
Hvis det ikke virker, skal du sørge for, at du har kablet alt korrekt, og at koden er kopieret korrekt. Vær også sikker på, at din resonator (eller krystal) er 20 MHZ. Hvis du skrev din egen kode, skal du sørge for, at der ikke er nogen pauser i rutinen, der kontrollerer for lav-høje overgange.
Trin 7: Gå videre
Find ud af en anden brug af drejeknappen end at blinke med en LED.
Anbefalede:
Rotary Encoder -knap: 6 trin
Rotary Encoder Button: Dette er en roterende fjernbetjening baseret på en roterende encoder. Det har følgende funktioner: Batteri, der drives med meget lavt strømforbrug, når det er aktiveret, Automatisk aktivering, når kontrollen drejes, Automatisk søvn efter en periode med inaktivitet Konfiguration
ROTARY CNC BOTTLE PLOTTER: 9 trin (med billeder)
ROTARY CNC BOTTLE PLOTTER: Jeg hentede nogle ruller, som sandsynligvis bruges i printeren. Jeg kom på ideen om at gøre dem til rotationsaksen for CNC flaskeplotter. I dag vil jeg gerne dele, hvordan man bygger CNC flaskeplotter fra disse ruller og andre rester. Til
Timer med Arduino og Rotary Encoder: 5 trin
Timer med Arduino og Rotary Encoder: Timeren er et værktøj, der ofte bruges i både industrielle og husholdningsaktiviteter. Denne samling er billig og let at lave. Den er også meget alsidig og kan indlæse et program, der er valgt efter behov. Der er flere programmer skrevet af mig til Ardui
DIY Analog Dialer til USB -tastatur: 4 trin
DIY Analog Dialer til USB -tastatur: Jeg lavede dette projekt bare for sjov, men denne ting fungerer som et normalt tastatur med alt. Hav det sjovt
5 Transistor PIC Programmer *Skematisk tilføjet til trin 9 !: 9 trin
5 Transistor PIC -programmer *Skematisk tilføjet til trin 9 !: Lav din egen PIC -programmer til din computers parallelport. Dette er en variation af David Taits klassiske design. Det er meget pålideligt, og der er gratis programmeringssoftware tilgængelig gratis. Jeg kan godt lide IC-Prog og PICpgm programmerer. Bedst af alt, det