Taula de continguts:
- Pas 1: aneu a buscar coses
- Pas 2: disseccioneu el telèfon
- Pas 3: determinar què fan els cables
- Pas 4: connecteu el marcador al xip PIC
- Pas 5: munteu el codi
- Pas 6: proves
- Pas 7: aneu més enllà
Vídeo: Interfície PIC del marcador rotatiu: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
M'he trobat amb una gran quantitat de telèfons rotatius. De fet, són a tot arreu on miro. Amb l’esperança que algun dia en vegi menys, he començat a desmuntar-los i a tornar a utilitzar les peces per a altres propòsits.
Per alguna raó, vaig tenir al cervell que la interfície del control rotatiu amb un xip PIC seria una bona idea. En aquest moment només se m’acudeixen uns quants usos vagos i cap d’ells no és particularment útil, però espero fer alguna cosa divertida amb això en el futur.
Pas 1: aneu a buscar coses
Necessitareu: 1 - Telèfon rotatiu 3 - Resistències de 220 ohmis 2 - Condensadors 0,1uF 2 - Resistència de 20 K (pot substituir qualsevol cosa entre 10 K i 47 K) 2 - LEDs1 - Tauler de desenvolupament PIC (he utilitzat l'entorn de desenvolupament Micro Basic) 1 - Resonador de 20 MHz o crystal1 - Taula de pa1 - Font d'alimentació 5V1 - Un peu més o menys de filferro de connexió1 - Tornavís1 - Decapant
Pas 2: disseccioneu el telèfon
Obriu el telèfon rotatiu. A l'interior notareu les poques parts bàsiques; el dial rotatiu, el timbre de trucada, dues preses, l'interruptor de ganxo i els circuits bàsics que solen incloure's en una caixa de connexions metàl·liques.
Hi haurà quatre cables que aniran des del marcador rotatiu fins a aquesta caixa de connexions. Els cables s’han de mantenir al seu lloc amb poc més de cargols tensats. Afluixeu els cargols i desconnecteu els cables. Després, desconnecteu el marcador rotatiu del propi telèfon.
Pas 3: determinar què fan els cables
Connecteu dos LEDs tal com es mostra al diagrama següent.
Els dos cables blancs haurien de ser el parell que tanca l’interruptor que us permetrà saber quan es gira el dial. El cable blau i verd hauria de ser el parell que us permeti saber quin número s’ha marcat. Com a tal, quan gireu el dial, el LED connectat als cables blancs s’hauria d’encendre i, quan deixeu anar el dial, el LED connectat als cables verds i blaus hauria d’encendre i apagar-se tantes vegades com el número que marcat (veure vídeo). Per exemple, si marqueu 8, el LED connectat al cable verd i blau s’apagarà i s’encendrà 8 vegades. Això passa perquè una manera de marcar un número de telèfon és trencar ràpidament la connexió el nombre de vegades del dígit que intenteu marcar. Així, de nou, per marcar un 8 hauríeu de trencar ràpidament la connexió 8 vegades.
Pas 4: connecteu el marcador al xip PIC
Connecteu el marcador rotatiu al xip PIC tal com es veu al diagrama. Tingueu en compte que estic llegint en l'estat del marcador rotatiu mitjançant el temps de RC. En altres paraules, el xip PIC compta el nombre de vegades que es necessita que es descarregui un condensador (que canvia quan s’afegeix resistència).
Aquí és on entra la resistència de 20K. Si afegiu això a l'entrada, es pot diferenciar clarament el senyal d'una connexió de commutador rotatiu tancat i obert.
Pas 5: munteu el codi
Per programar el xip, he utilitzat l'entorn de desenvolupament MBasic disponible a Basic Micro. MBasic, senzillament, és una variació de Basic dissenyada per utilitzar-se amb xips PIC. És fàcilment convertible en un llenguatge (universal) més universal. El codi determina essencialment quan algú ha girat el dial i després fa la detecció de vores al senyal (determinant les transicions de baixa a alta) fins que el dial retrocedeix al seu estat inicial. Després de comptar el nombre de vegades que mesura una transició de senyal, llavors parpelleja el LED en conseqüència. Per exemple, si marqueu 3, el PIC comptarà tres transicions de baix a alt i després parpellejarà un LED 3 vegades. El LED, com és possible que hagueu deduït, no és necessari perquè funcioni i només està allà per donar-vos informació visible. Podeu substituir qualsevol dispositiu de sortida que considereu necessari. ********************* Aquí teniu un codi: ********************* CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0sets / resets valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin> 10 then go pass countup passa a la subrutina si té un 'compte principal' ================: alt B1rctime B1, 1, clacker'sets compara valuegoto countmeuploop '=========== ===== countmeuploop: high B1rctime B1, 1, clicker'checks counting valuelargefig = clacker + 100 estableix un valor per al llindar que serà més gran que 0, però inferior als possibles valors pin-highif largefig <clicker thencountclicks = countclicks + 1endif'afegeix 1 valor cada vegada que es registra una transició de menor a més alta B2rctime B2, 1, startcountinif startcountin <10 thenif countclicks> 0 thengoto blinkelsegoto mainendifendif'verifica si el dial ha retrocedit al seu i estat nitial: si té un número marcat, es dirigeix a la rutina LED; en cas contrari, si no s'ha marcat cap número, passa a mainclacker = clicker restableix el valor de comparació al valor actual del pin. ! '================ parpelleig: repvar = repvar + 1' compta cada repetició d'aquesta rutina alta B3pausa 1000baixa B3pausa 1000 'parpelleja el LEDif repvar = countclicks thenrepvar = 0goto mainendif'if les repeticions són iguals al nombre de vegades que el LED ha de parpellejar; llavors torna al parpelleig de rutina principal
Pas 6: proves
Si ho feu tot igual que jo, hauria de funcionar (veure vídeo).
Si no funciona, assegureu-vos que heu connectat tot correctament i que el codi es copia correctament. A més, assegureu-vos que el vostre ressonador (o cristall) sigui de 20 MHz. Si heu escrit el vostre propi codi, assegureu-vos que no hi hagi pauses a la rutina que comprovi si hi ha transicions de baix a alt.
Pas 7: aneu més enllà
Esbrineu algun altre tipus d’ús per al dial rotatiu que no sigui el parpelleig d’un LED.
Recomanat:
Introducció a la interfície del sensor I2C ?? - Interfície del MMA8451 mitjançant ESP32: 8 passos
Introducció a la interfície del sensor I2C ?? - Interfície del MMA8451 mitjançant ESP32s: en aquest tutorial, aprendreu tot sobre com iniciar, connectar-se i aconseguir que el dispositiu I2C (acceleròmetre) funcioni amb el controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Llums del marcador Arduino: 3 passos
Arduino Scoreboard Lights: Aquest és un projecte que vaig fer per a una secció d’un marcador d’esgrima. Volia una cosa que emetgués un so i que s’il·luminés. Aviat em vaig adonar que podríeu fer servir tècnicament això per a molts esports diferents i no només per a esgrima. El que realment fa el projecte, jo
Marcador de pàgines del llibre Stiffie Drive: 4 passos
Marcador de pàgines de llibres Stiffie Drive: Marcador de pàgines de llibres Stiffie Aquí és potser el projecte més senzill d’aquest lloc. Odio llençar qualsevol cosa, però era hora d’abandonar el paquet de discs Stiffie (micro disquet). Però els lliscadors d’alumini semblaven molt bons tirar
Interfície d'un marcatge de telèfon rotatiu a un Arduino: 6 passos (amb imatges)
Interfície d’un marcatge de telèfon rotatiu a un Arduino: un telèfon rotatiu antic es pot utilitzar per a diversos propòsits en els vostres projectes Arduino: utilitzeu-lo com a nou dispositiu d’entrada o utilitzeu l’Arduino per connectar un telèfon rotatiu a l’ordinador. guia molt bàsica que descriu com connectar el dial amb un
Com interpretar la direcció de rotació des d’un commutador rotatiu digital amb un PIC: 5 passos
Com interpretar la direcció de rotació des d’un commutador rotatiu digital amb un PIC: l’objectiu d’aquest instructiu és il·lustrar com interaccionar un commutador rotatiu digital (codificat en quadratura) amb un microcontrolador. No us preocupeu, us explicaré què codificat amb quadratura? significa per a nosaltres. Aquesta interfície i el programari que s’acompanya no