Table des matières:
- Étape 1: Supprimer le cadran du téléphone
- Étape 2: Identifiez le commutateur
- Étape 3: faire le circuit
- Étape 4: Développer le code
- Étape 5: Vérifiez que cela fonctionne
- Étape 6: Accrochez-le à quelque chose d'utile
Vidéo: Interfacer un cadran téléphonique rotatif avec un Arduino : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:11
Un ancien téléphone à cadran peut être utilisé à diverses fins dans vos projets Arduino - utilisez-le comme nouveau périphérique d'entrée ou utilisez l'Arduino pour interfacer un téléphone à cadran à votre ordinateur. Il s'agit d'un guide très basique décrivant comment interfacer le cadran à un Arduino et obtenez le numéro composé transmis à un ordinateur via la liaison série de l'Arduino.
Étape 1: Supprimer le cadran du téléphone
La première étape consiste à retirer l'unité de numérotation du téléphone. J'utilise un téléphone GPO des années 1970. Sur ce téléphone, le cadran est sorti tout droit - j'avais juste besoin de le tirer. Si ce n'est pas le cas, vous devrez peut-être ouvrir le téléphone et trouver comment le retirer. Il y avait cinq câbles connectés à l'arrière de l'unité de numérotation. Sur mon téléphone, il s'agissait de connexions à fourche normales, j'ai donc desserré les vis et les ai retirées. Si vous souhaitez réassembler votre téléphone, n'oubliez pas d'enregistrer quelle couleur de fil va à quelle connexion.
Étape 2: Identifiez le commutateur
Une fois le cadran sorti, il devrait être relativement facile de voir comment le cadran convertit le mouvement rotatif en impulsions. Essayez de faire tourner le cadran à la main et de regarder le mouvement au dos. Vous devriez voir un interrupteur faire et couper un circuit rapidement - donc si vous composez le « 9 », l'interrupteur devrait s'enclencher neuf fois. allez le numéro et laissez-le revenir en arrière. J'ai documenté comment cela fonctionne pour mon téléphone dans les notes de la photo ci-dessous. Il y a aussi une vidéo floue du fonctionnement du mécanisme.
Étape 3: faire le circuit
Une fois que vous avez trouvé le commutateur en cours de fabrication et de rupture, vous devriez être en mesure d'identifier les connexions en suivant les fils jusqu'aux bornes de connexion. Dans mon cas, les deux côtés du commutateur sont connectés aux deux bornes les plus à gauche. Branchez ces bornes à des câbles de démarrage et lancez le prototypage ! L'interrupteur de mon cadran est toujours allumé et est cassé à chaque impulsion lors de la numérotation, j'ai donc utilisé le circuit très simple ci-dessous. La broche 2 deviendra HAUT pour chaque impulsion pendant que le cadran tourne. Lorsque le téléphone n'est pas composé, le commutateur de l'unité de numérotation est fermé (un commutateur dit NORMALEMENT FERMÉ, pour des raisons évidentes) de sorte que le circuit connecte la broche 2 à la terre (qui pour l'Arduino est FAIBLE). C'est parce qu'il y a beaucoup moins de résistance à travers la résistance de 470 ohms que la résistance de 10K. Lorsque le téléphone est composé, le commutateur s'ouvre et se ferme rapidement (pour un 9, il s'ouvrira et se refermera neuf fois, rappelez-vous). Lorsque l'interrupteur est ouvert, la broche 2 n'est pas connectée à la terre - à la place, elle est connectée à l'alimentation 5V via une résistance de 10470 ohms. Ceci est interprété par l'Arduino comme un HAUT. Si votre cadran a un commutateur NORMALEMENT OUVERT, alors échanger les positions de la résistance 10K et le cadran devrait faire l'affaire.
Étape 4: Développer le code
Maintenant, nous avons besoin d'un code pour que l'Arduino compte les impulsions et envoie le nombre total par numéro composé via le port série. Mon code est ci-dessous. Comme nous traitons ici de mécanique, la vôtre peut différer. Essayez de jouer avec la constante anti-rebond et la constante "combien de temps attendons-nous avant de supposer que le cadran a fini de tourner". J'ai essayé de la commenter aussi précisément que possible. Espérons que c'est assez simple.int needToPrint = 0;int count;int in = 2;int lastState = LOW;int trueState = LOW;long lastStateChangeTime = 0;int cleared = 0;// constantsint dialHasFinishedRotatingAfterMs = 100;int debounceDelay = 10; void setup(){ Serial.begin(9600); pinMode(in, INPUT);}void loop(){ int reading = digitalRead(in); if ((millis() - lastStateChangeTime) > dialHasFinishedRotatingAfterMs) { // le numéro n'est pas composé, ou vient de finir d'être composé. if (needToPrint) { // s'il vient juste d'être composé, nous devons envoyer le numéro sur la ligne // série et réinitialiser le compte. Nous modifions le compte par 10 car '0' enverra 10 impulsions. Serial.print (compter % 10, DEC); besoinPourImprimer = 0; compte = 0; effacé = 0; } } if (lecture != lastState) { lastStateChangeTime = millis(); } if ((millis() - lastStateChangeTime) > debounceDelay) { // debounce - cela se produit une fois qu'il est stabilisé if (reading != trueState) { // cela signifie que le commutateur vient de passer de fermé-> ouvert ou vice versa. trueState = lecture; if (trueState == HIGH) { // incrémente le nombre d'impulsions s'il est élevé. compte++; besoinPourImprimer = 1; // nous aurons besoin d'imprimer ce numéro (une fois que le cadran aura fini de tourner) } } } lastState = read;}
Étape 5: Vérifiez que cela fonctionne
Vérifiez que cela fonctionne en ouvrant une fenêtre série (j'utilise screen sur une machine Unix, vous pouvez utiliser Hyperterm ou similaire sous Windows), et essayez de composer des numéros. Assurez-vous que le programme série est configuré pour lire à partir de l'USB- > adaptateur série dans votre Arduino (vérifiez le menu Outils-> Port série dans le logiciel Arduino si vous oubliez ce que c'est), et un débit en bauds de 9600 bps. Vous devriez voir le bon numéro s'afficher au fur et à mesure qu'il est composé.
Étape 6: Accrochez-le à quelque chose d'utile
J'ai créé un fichier Quartz Composer sur mon Mac pour prendre l'entrée et la rendre bien à l'écran. Une fois qu'il est dans la machine en tant que données série, vous pouvez en faire n'importe quoi. En attendant d'entendre vos idées ! tenir l'appareil photo pour moi - j'aurais aimé avoir trois mains.
Conseillé:
Téléphone portable à cadran rotatif de style rétro : 4 étapes (avec photos)
Téléphone portable à cadran rotatif de style rétro : ce projet a été motivé à la fois par un besoin pratique et par le désir de faire quelque chose d'amusant. Comme la plupart des familles modernes, nous avons cessé d'avoir un vrai « chez-soi »; téléphone (filaire) il y a de nombreuses années. Au lieu de cela, nous avons une carte SIM supplémentaire associée à notre "ancien" numéro de domicile
Tutoriel pour interfacer le capteur de boussole HMC5883L avec Arduino : 10 étapes (avec photos)
Tutoriel pour interfacer le capteur de boussole HMC5883L avec Arduino : DescriptionLe HMC5883L est une boussole numérique à 3 axes utilisée à deux fins générales : mesurer l'aimantation d'un matériau magnétique comme un ferromagnétique, ou mesurer la force et, dans certains cas, la direction du champ magnétique en un point de s
Contrôle du volume du PC à cadran rotatif vintage : 7 étapes (avec photos)
Contrôle du volume du PC à cadran rotatif vintage : Si vous êtes comme moi, vous vous retrouvez à changer le volume de votre ordinateur assez souvent. Certaines vidéos sont plus fortes que d'autres, parfois vous souhaitez que le volume de votre ordinateur soit coupé pendant que vous écoutez des podcasts ou de la musique, et vous devrez peut-être arrêter
Comment interfacer le module GPS (NEO-6m) avec Arduino : 7 étapes (avec photos)
Comment interfacer un module GPS (NEO-6m) avec Arduino : Dans ce projet, j'ai montré comment interfacer un module GPS avec Arduino UNO. Les données de longitude et de latitude sont affichées sur l'écran LCD et l'emplacement peut être consulté sur l'application.Liste du matériel Arduino Uno ==> 8 $ Module GPS Ublox NEO-6m ==> 15 $ 16x
Tutoriel pour interfacer RGB Led WS2812B avec Arduino UNO : 7 étapes (avec photos)
Tutoriel pour interfacer RGB Led WS2812B avec Arduino UNO: Ce tutoriel va vous apprendre quelques bases sur l'utilisation de Sparkfun RGB Led WS2812B avec Arduino UNO