Indholdsfortegnelse:

Rotary Dialer PIC -grænseflade: 7 trin
Rotary Dialer PIC -grænseflade: 7 trin

Video: Rotary Dialer PIC -grænseflade: 7 trin

Video: Rotary Dialer PIC -grænseflade: 7 trin
Video: LISTEN TO THIS CUSTOM EXHAUST! 🤯😱 #shorts 2024, Juni
Anonim
Rotary Dialer PIC -grænseflade
Rotary Dialer PIC -grænseflade

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

Gå og få ting
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

Dissekér telefonen
Dissekér telefonen
Dissekér telefonen
Dissekér telefonen
Dissekér telefonen
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

Find ud af, hvad ledningerne gør
Find ud af, hvad ledningerne gør
Find ud af, hvad ledningerne gør
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 opkaldet til PIC -chippen
Tilslut opkaldet til PIC -chippen
Tilslut opkaldet til PIC -chippen
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

Saml koden
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

Test
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

Gå ud over
Gå ud over

Find ud af en anden brug af drejeknappen end at blinke med en LED.

Anbefalede: