Innholdsfortegnelse:

Rotary Dialer PIC -grensesnitt: 7 trinn
Rotary Dialer PIC -grensesnitt: 7 trinn

Video: Rotary Dialer PIC -grensesnitt: 7 trinn

Video: Rotary Dialer PIC -grensesnitt: 7 trinn
Video: don't move!!!!!! #squidgame 2024, Juli
Anonim
Rotary Dialer PIC -grensesnitt
Rotary Dialer PIC -grensesnitt

Jeg har funnet meg selv med en overflod av roterende telefoner. Faktisk er de overalt jeg ser. I håp om at jeg en dag kan se mindre av dem, har jeg begynt å skille dem fra hverandre og bruke delene til andre formål.

Av en eller annen grunn fikk jeg det inn i hjernen min at det ville være en god idé å koble rotasjonskontrollen til en PIC -brikke. Jeg kan bare tenke på et par vage bruksområder for det for øyeblikket, og ingen er spesielt nyttige, men jeg håper å gjøre noe kult med dette i fremtiden.

Trinn 1: Gå Få ting

Gå Få ting
Gå Få ting

Du trenger: 1 - Rotary phone3 - 220 ohm motstander2 - 0.1uF kondensatorer 2 - 20K motstand (kan erstatte alt mellom 10K og 47K) 2 - LEDs1 - PIC utviklingskort (jeg brukte Basic Micro utviklingsmiljøet) 1 - 20 MHz resonator eller crystal1 - Brødbrett1 - 5V strømkilde1 - En fot eller så med tilkoblingstråd1 - Skrutrekker1 - Wire stripper

Trinn 2: Dissekrer telefonen

Dissekere telefonen
Dissekere telefonen
Dissekere telefonen
Dissekere telefonen
Dissekere telefonen
Dissekere telefonen

Åpne den roterende telefonen. På innsiden vil du legge merke til de få grunnleggende delene; dreiehjulet, ringetonen, to kontakter, krokbryteren og grunnkretsen som vanligvis er innkapslet i en metallkoblingsbokslignende ting.

Det vil være fire ledninger som går fra den roterende dialeren til denne koblingsbokslignende tingen. Ledningene skal holdes på plass med litt mer enn stramme skruer. Løsne skruene og koble fra ledningene. Etter det, koble den roterende oppringeren fra selve telefonen.

Trinn 3: Finn ut hva ledningene gjør

Finn ut hva ledningene gjør
Finn ut hva ledningene gjør
Finn ut hva ledningene gjør
Finn ut hva ledningene gjør

Koble til to lysdioder som vist i diagrammet nedenfor.

De to hvite ledningene skal være paret som lukker bryteren som gir deg beskjed når skiven dreies. Den blå og grønne ledningen skal være paret som lar deg vite hvilket nummer som ble slått. Som sådan bør LED -en som er koblet til de hvite ledningene slått på, når du slår på skiven, og når du slipper skiven, bør LED -en som er koblet til de blå og grønne ledningene blinke av og på like mange ganger som nummeret du oppringt (se video). For eksempel, hvis du ringer 8, vil LED -en som er koblet til den grønne og blå ledningen slås av og på 8 ganger. Dette skjer fordi en måte å ringe et telefonnummer på er å raskt koble tilkoblingen antall ganger for sifferet du prøver å ringe. Så igjen, for å slå en 8 må du raskt koble tilkoblingen 8 ganger.

Trinn 4: Koble oppringeren til PIC -brikken

Koble oppringeren til PIC -brikken
Koble oppringeren til PIC -brikken
Koble oppringeren til PIC -brikken
Koble oppringeren til PIC -brikken

Koble dreieknappen til PIC -brikken som vist på diagrammet. Legg merke til at jeg leser i tilstanden til den roterende dialeren ved å bruke RC-timing. Med andre ord, PIC -brikken teller antall ganger det tar for en kondensator å tømmes (som endres når motstand legges til).

Det er her 20K -motstanden kommer inn. Ved å legge dette til inngangen kan du skille tydelig mellom signalet fra en lukket og åpen dreiebryterforbindelse.

Trinn 5: Sett sammen koden

Sett sammen koden
Sett sammen koden

For å programmere brikken brukte jeg MBasic -utviklingsmiljøet som er tilgjengelig fra Basic Micro. MBasic, ganske enkelt, er en variant av Basic designet for bruk med PIC -brikker. Det kan lett konverteres til et mer universelt (nyttig) språk. Koden er i hovedsak avgjørende for når noen har dreid rattet, og deretter gjør det kantdeteksjon på signalet (bestemmer lav-høy overganger) til skiven går tilbake til sin opprinnelige tilstand. Etter å ha oppgitt antall ganger den måler en signalovergang, blinker den deretter LED -en tilsvarende. For eksempel, hvis du ringer 3, vil PIC telle tre lav-høye overganger og deretter blinke en LED 3 ganger. Lysdioden, som du kanskje har antatt, er unødvendig for at dette skal fungere og er bare der for å gi deg synlig tilbakemelding. Du kan bytte ut hvilken som helst utskriftsenhet du anser nødvendig. ********************** Her er noen kode: ********************* CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0setter/tilbakestiller valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin> 10 så gå til countmeup 'sjekker for å se om dial er slått går til underrutine hvis den har gått til main '================ countmeup: høy B1rctime B1, 1, clackersett sammenligner valuegoto countmeuploop' ============ ===== countmeuploop: høy B1rctime B1, 1, clicker'check teller valuelargefig = clacker + 100s angir en verdi for terskelen som vil være større 'enn 0, men mindre enn mulige pin-høye verdier hvis largefig <clicker thencountclicks = countclicks + 1endif'legger 1 verdi hver gang en lav til høy overgang registreres høy B2rctime B2, 1, startcountinif startcountin <10 thenif countclicks> 0 thengoto blinkelsegoto mainendifendif'checks to see if the dial has backed to its i nitial tilstand 'hvis den har og et nummer er slått, går den til LED -rutinen' Ellers, hvis ikke noe nummer ble slått, går den til mainclacker = clicker'nullstiller sammenligningsverdien til gjeldende pin -verdi. gå til countmeuploop'n ! '================ blinker: repvar = repvar + 1'teller hver repetisjon av denne rutinenhøy B3pause 1000low B3pause 1000'blinker LEDif repvar = countclicks thenrepvar = 0 gå til mainendif'if den repetisjoner er like mange ganger LED -lampen skal blinke, så går den tilbake til hovedrutineginknipperen

Trinn 6: Testing

Testing
Testing

Hvis du gjorde alt på samme måte som meg, burde det fungere (se video).

Hvis det ikke fungerer, må du kontrollere at du har koblet alt riktig og at koden er kopiert riktig. Vær også sikker på at din resonator (eller krystall) er 20 MHZ. Hvis du skrev din egen kode, må du kontrollere at det ikke er noen pauser i rutinen som sjekker om lav-høy overganger.

Trinn 7: Gå utover

Gå utover
Gå utover

Finn ut en annen bruk for dreiehjulet enn å blinke med en LED.

Anbefalt: