Table des matières:

Interface PIC du composeur rotatif : 7 étapes
Interface PIC du composeur rotatif : 7 étapes

Vidéo: Interface PIC du composeur rotatif : 7 étapes

Vidéo: Interface PIC du composeur rotatif : 7 étapes
Vidéo: Fabrication de compost, à l'échelle locale ! 2024, Juillet
Anonim
Interface PIC de numéroteur rot-t.webp
Interface PIC de numéroteur rot-t.webp

Je me suis retrouvé avec une abondance de téléphones à cadran. En fait, ils sont partout où je regarde. Dans l'espoir de pouvoir un jour en voir moins, j'ai commencé à les démonter et à réutiliser les pièces à d'autres fins.

Pour une raison quelconque, je me suis dit qu'interfacer la commande rotative avec une puce PIC serait une bonne idée. Je ne peux penser qu'à quelques vagues utilisations pour le moment et aucune n'est particulièrement utile, mais j'espère faire quelque chose de cool avec cela à l'avenir.

Étape 1: Allez chercher des trucs

Allez chercher des trucs
Allez chercher des trucs

Vous aurez besoin de:1 - Téléphone rotatif3 - Résistances 220 ohms2 - Condensateurs 0,1uF 2 - Résistance 20K (peut remplacer n'importe quoi entre 10K et 47K)2 - LED1 - Carte de développement PIC (j'ai utilisé l'environnement de développement Basic Micro)1 - Résonateur 20 MHZ ou cristal1 - Planche à pain1 - Source d'alimentation 5V1 - Un pied ou plus de fil de raccordement1 - Tournevis1 - Dénudeur de fil

Étape 2: disséquer le téléphone

Disséquer le téléphone
Disséquer le téléphone
Disséquer le téléphone
Disséquer le téléphone
Disséquer le téléphone
Disséquer le téléphone

Ouvrez votre téléphone à cadran. A l'intérieur, vous remarquerez les quelques pièces de base; le cadran rotatif, la sonnerie, deux prises, le crochet commutateur et les circuits de base qui sont généralement enfermés dans une boîte de jonction en métal.

Il y aura quatre fils allant du composeur rotatif à cette chose semblable à une boîte de jonction. Les fils doivent être maintenus en place par un peu plus que des vis serrées. Desserrez les vis et débranchez les fils. Après cela, déconnectez le composeur rotatif du téléphone lui-même.

Étape 3: Déterminez ce que font les fils

Déterminez ce que font les fils
Déterminez ce que font les fils
Déterminez ce que font les fils
Déterminez ce que font les fils

Câblez deux LED comme indiqué dans le schéma ci-dessous.

Les deux fils blancs doivent être la paire qui ferme l'interrupteur qui vous permet de savoir quand le cadran est tourné. Le fil bleu et vert doit être la paire qui vous permet de savoir quel numéro a été composé. Ainsi, lorsque vous tournez la molette, la LED connectée aux fils blancs doit s'allumer, et lorsque vous relâchez la molette, la LED connectée aux fils bleu et vert doit clignoter autant de fois que le nombre que vous composé (voir vidéo). Par exemple, si vous composez le 8, la LED connectée aux fils vert et bleu s'éteindra et s'allumera 8 fois. Cela se produit parce qu'une façon de composer un numéro de téléphone consiste à interrompre rapidement la connexion le nombre de fois correspondant au chiffre que vous essayez de composer. Donc, encore une fois, pour composer un 8, vous devrez rapidement rompre la connexion 8 fois.

Étape 4: Connectez le numéroteur à la puce PIC

Connectez le numéroteur à la puce PIC
Connectez le numéroteur à la puce PIC
Connectez le numéroteur à la puce PIC
Connectez le numéroteur à la puce PIC

Connectez le composeur rotatif à la puce PIC comme indiqué sur le schéma. Notez que je lis dans l'état du composeur rotatif en utilisant la synchronisation RC. En d'autres termes, la puce PIC compte le nombre de fois qu'il faut pour qu'un condensateur se décharge (qui change lorsque la résistance est ajoutée).

C'est là qu'intervient la résistance de 20K. L'ajouter à l'entrée permet une différenciation claire entre le signal d'une connexion de commutateur rotatif fermée et ouverte.

Étape 5: Assemblez le code

Assemblez le code
Assemblez le code

Pour programmer la puce, j'ai utilisé l'environnement de développement MBasic disponible chez Basic Micro. MBasic, tout simplement, est une variante de Basic conçue pour être utilisée avec des puces PIC. Il est facilement convertible en un langage plus universel (utile). Le code détermine essentiellement quand quelqu'un a tourné le cadran, puis effectue une détection de bord sur le signal (détermination des transitions bas-haut) jusqu'à ce que le cadran revienne à son état initial. Après avoir compté le nombre de fois où il mesure une transition de signal, il fait ensuite clignoter la LED en conséquence. Par exemple, si vous composez 3, le PIC comptera trois transitions bas-haut, puis clignotera une LED 3 fois. La LED, comme vous l'avez peut-être déduit, n'est pas nécessaire pour que cela fonctionne et est juste là pour vous donner un retour visible. Vous pouvez remplacer tout périphérique de sortie que vous jugez nécessaire. *********************Voici du code:*********************CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain:countclicks = 0repvar = 0'sets/reset valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin > 10 alors goto countmeup' vérifie si le cadran a été tourné et va au sous-programme s'il agoto main'================countmeup:high B1rctime B1, 1, clacker'sets compare valuegoto countmeuploop'=========== =====countmeuploop:high B1rctime B1, 1, clicker'checks count valuelargefig = clacker + 100'définit une valeur pour le seuil qui sera supérieure à 0 mais inférieure aux valeurs pin-high possiblesif largefig < clicker thencountclicks = countclicks + 1endif'ajoute 1 valeur chaque fois qu'une transition de bas en haut est enregistréehigh B2rctime B2, 1, startcountinif startcountin < 10 thenif countclicks > 0 thengoto blinkelsgoto mainendifendif' vérifie si le cadran est revenu à son i état initial's'il l'a fait et qu'un numéro a été composé, il passe à la routine LED'sinon, si aucun numéro n'a été composé, il passe à mainclacker = clicker'réinitialise la valeur de comparaison à la valeur de broche actuellegoto countmeuploop'no pause DU TOUT dans cette routine !'================clignotant:repvar = repvar + 1'compte chaque répétition de cette routine high B3pause 1000low B3pause 1000'clignote la LEDif repvar = countclicks thenrepvar = 0goto mainendif'if the les répétitions sont égales au nombre de fois que la LED doit clignoter, puis elle revient à la routine principalegoto clignotant

Étape 6: Tester

Essai
Essai

Si vous avez tout fait comme moi, cela devrait fonctionner (voir vidéo).

Si cela ne fonctionne pas, assurez-vous que vous avez tout câblé correctement et que le code est copié correctement. Assurez-vous également que votre résonateur (ou cristal) est à 20 MHZ. Si vous avez écrit votre propre code, assurez-vous qu'il n'y a pas de pause dans la routine qui vérifie les transitions bas-haut.

Étape 7: Allez au-delà

Aller au-delà
Aller au-delà

Trouvez une autre sorte d'utilisation du cadran rotatif autre que le clignotement d'une LED.

Conseillé: