Sommario:

Interfaccia PIC del combinatore rotativo: 7 passaggi
Interfaccia PIC del combinatore rotativo: 7 passaggi

Video: Interfaccia PIC del combinatore rotativo: 7 passaggi

Video: Interfaccia PIC del combinatore rotativo: 7 passaggi
Video: 2024 Hyundai KONA contro 2024 Kia Seltos BACK TO BACK 2024, Luglio
Anonim
Interfaccia PIC del combinatore rotativo
Interfaccia PIC del combinatore rotativo

Mi sono trovato con un'abbondanza di telefoni rotanti. In effetti, sono ovunque io guardi. Nella speranza di poterne vedere un giorno di meno, ho iniziato a smontarli e a riutilizzare le parti per altri scopi.

Per qualche ragione mi sono messo in testa che interfacciare il controllo rotativo con un chip PIC sarebbe stata una buona idea. Posso solo pensare a un paio di usi vaghi per il momento e nessuno è particolarmente utile, ma spero di fare qualcosa di interessante con questo in futuro.

Passaggio 1: vai a prendere le cose

Vai a prendere cose
Vai a prendere cose

Avrai bisogno di:1 - Telefono rotante3 - Resistenze da 220 ohm2 - Condensatori da 0,1uF 2 - Resistenza da 20K (può sostituire qualsiasi cosa tra 10K e 47K)2 - LED1 - Scheda di sviluppo PIC (ho usato l'ambiente di sviluppo Basic Micro)1 - Risonatore da 20 MHZ o cristallo1 - Tagliere1 - Alimentazione 5V1 - Un piede circa di cavo di collegamento1 - Cacciavite1 - Spelafili

Passaggio 2: sezionare il telefono

Seziona il telefono
Seziona il telefono
Seziona il telefono
Seziona il telefono
Seziona il telefono
Seziona il telefono

Apri il tuo telefono rotante. All'interno noterete le poche parti fondamentali; il quadrante rotante, la suoneria, due prese, l'interruttore del gancio e il circuito di base che di solito è racchiuso in una cosa simile a una scatola di giunzione metallica.

Ci saranno quattro fili che vanno dal combinatore rotante a questa cosa simile a una scatola di giunzione. I fili dovrebbero essere tenuti in posizione da poco più di viti serrate. Allentare le viti e scollegare i fili. Successivamente, scollegare il dialer rotante dal telefono stesso.

Passaggio 3: determinare cosa fanno i fili

Determina cosa fanno i fili
Determina cosa fanno i fili
Determina cosa fanno i fili
Determina cosa fanno i fili

Collegare due LED come mostrato nello schema seguente.

I due fili bianchi dovrebbero essere la coppia che chiude l'interruttore che ti fa sapere quando si gira il quadrante. Il filo blu e verde dovrebbe essere la coppia che ti consente di sapere quale numero è stato composto. Pertanto, quando si ruota il quadrante, il LED collegato ai fili bianchi dovrebbe accendersi e quando si rilascia il quadrante, il LED collegato ai fili blu e verde dovrebbe lampeggiare e spegnersi tante volte quanto il numero che si composto (vedi video). Ad esempio, se si compone 8, il LED collegato al filo verde e blu si spegnerà e si accenderà 8 volte. Ciò accade perché un modo per comporre un numero di telefono è interrompere rapidamente la connessione il numero di volte per la cifra che si sta tentando di comporre. Quindi, ancora una volta, per comporre un 8 dovresti interrompere rapidamente la connessione 8 volte.

Passaggio 4: collegare il dialer al chip PIC

Collegare il Dialer al Chip PIC
Collegare il Dialer al Chip PIC
Collegare il Dialer al Chip PIC
Collegare il Dialer al Chip PIC

Collegare il combinatore rotativo al chip PIC come mostrato nello schema. Notare che sto leggendo nello stato del combinatore rotante utilizzando RC-timing. In altre parole, il chip PIC conta il numero di volte che impiega un condensatore per scaricarsi (che cambia quando viene aggiunta la resistenza).

È qui che entra in gioco il resistore da 20K. L'aggiunta di questo all'ingresso consente una chiara differenziazione tra il segnale da una connessione del commutatore rotante chiusa e aperta.

Passaggio 5: assemblare il codice

Assemblare il codice
Assemblare il codice

Per programmare il chip, ho utilizzato l'ambiente di sviluppo MBasic disponibile da Basic Micro. MBasic, molto semplicemente, è una variazione di Basic progettata per l'uso con i chip PIC. È facilmente convertibile in un linguaggio più universale (utile). Il codice determina essenzialmente quando qualcuno ha girato il quadrante e quindi esegue il rilevamento dei bordi sul segnale (determinando le transizioni basso-alto) finché il quadrante non torna al suo stato iniziale. Dopo aver contato il numero di volte in cui misura una transizione di segnale, il LED lampeggia di conseguenza. Ad esempio, se si compone 3, il PIC conterà tre transizioni basso-alto e quindi lampeggerà un LED 3 volte. Il LED, come avrai dedotto, non è necessario per il funzionamento ed è lì solo per darti un feedback visibile. Puoi sostituire qualsiasi dispositivo di output che ritieni necessario. ********************* Ecco un codice: *********************CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain:countclicks = 0repvar = 0'sets/resets valueshigh B2rctime B2, 1, startcountincountclicks = 0se startcountin > 10 quindi goto countmeup' controlla se la selezione è stata attivata passa alla subroutine se è passato a main'================countmeup:high B1rctime B1, 1, clacker'sets compare valuegoto countmeuploop'=========== =====countmeuploop:high B1rctime B1, 1, clicker'controlla il valore di conteggiolargefig = clacker + 100'imposta un valore per la soglia che sarà maggiore 'di 0 ma inferiore ai possibili valori pin-highse largefig < clicker thencountclicks = countclicks + 1endif'aggiunge 1 valore ogni volta che viene registrata una transizione da basso ad alto alto B2rctime B2, 1, startcountinse startcountin < 10 poise countclicks > 0 thengoto blinkelsegoto mainendifendif'controlla se il quadrante è tornato alla sua i stato iniziale'se è stato composto e un numero va alla routine LED'altrimenti, se nessun numero è stato composto va a mainclacker = clicker'reimposta il valore di confronto al valore del pin correntegoto countmeuploop'nessuna pausa in questa routine !'================lampeggiante:repvar = repvar + 1'conta ogni ripetizione di questa routinehigh B3pause 1000low B3pause 1000'fa lampeggiare il LEDse repvar = countclicks thenrepvar = 0vai a mainendif'se il ripetizioni pari al numero di volte in cui il LED dovrebbe lampeggiare 'quindi torna alla routine principale vai al lampeggiatore

Passaggio 6: test

Test
Test

Se hai fatto tutto come me, dovrebbe funzionare (vedi video).

Se non funziona, assicurati di aver cablato tutto correttamente e che il codice sia copiato correttamente. Inoltre, assicurati che il tuo risonatore (o cristallo) sia 20 MHZ. Se hai scritto il tuo codice, assicurati che non ci siano pause nella routine che controlla le transizioni basso-alto.

Passaggio 7: andare oltre

Andare oltre
Andare oltre

Trova una sorta di altro uso per il quadrante rotante diverso dal lampeggiare di un LED.

Consigliato: