Inhoudsopgave:

Interface een roterende telefoon naar een Arduino - Ajarnpa
Interface een roterende telefoon naar een Arduino - Ajarnpa

Video: Interface een roterende telefoon naar een Arduino - Ajarnpa

Video: Interface een roterende telefoon naar een Arduino - Ajarnpa
Video: How to use MicroPython on Your Arduino? 2024, Juli-
Anonim
Interface een roterende telefoon met een Arduino
Interface een roterende telefoon met een Arduino
Interface een roterende telefoon met een Arduino
Interface een roterende telefoon met een Arduino

Een oude roterende telefoon kan voor een aantal doeleinden worden gebruikt in uw Arduino-projecten - gebruik hem als een nieuw invoerapparaat of gebruik de Arduino om een roterende telefoon op uw computer aan te sluiten. Dit is een zeer eenvoudige gids die beschrijft hoe u de wijzerplaat kunt aansluiten naar een Arduino en laat het gekozen nummer via de seriële verbinding van de Arduino in een computer worden doorgegeven.

Stap 1: Verwijder de wijzerplaat van de telefoon

Verwijder de wijzerplaat van de telefoon
Verwijder de wijzerplaat van de telefoon
Verwijder de wijzerplaat van de telefoon
Verwijder de wijzerplaat van de telefoon
Verwijder de wijzerplaat van de telefoon
Verwijder de wijzerplaat van de telefoon

De eerste stap is om de kieseenheid van de telefoon te verwijderen. Ik gebruik een soort GPO-telefoon uit de jaren 70. Op deze telefoon kwam de wijzerplaat er recht uit - ik moest er alleen even aan trekken. Als dat niet het geval is, moet je misschien de telefoon openmaken en uitzoeken hoe je hem los kunt krijgen. Er waren vijf kabels aangesloten op de achterkant van de kieseenheid. Op mijn telefoon waren dit gewone spadeverbindingen, dus ik maakte de schroeven los en trok ze eruit. Als je je telefoon weer in elkaar wilt zetten, vergeet dan niet te noteren welke kleur draad naar welke aansluiting gaat.

Stap 2: Identificeer de schakelaar

Identificeer de schakelaar
Identificeer de schakelaar

Als de wijzerplaat eenmaal uit is, zou het relatief eenvoudig moeten zijn om te zien hoe de wijzerplaat roterende beweging omzet in pulsen. Probeer de wijzerplaat met de hand te draaien en kijk naar de beweging op de achterkant. U zou een schakelaar moeten zien die snel een circuit maakt en verbreekt - dus als u '9' kiest, moet de schakelaar negen keer worden ingeschakeld. Voor degenen onder u die misschien nog nooit een draaiknop hebben gebruikt - onthoud dat het kiezen alleen gebeurt als u ga naar het nummer en laat het terugspoelen. Ik heb gedocumenteerd hoe het werkt voor mijn telefoon in de notities van de onderstaande foto. Er is ook een wazige video van het mechanisme dat werkt.

Stap 3: Maak het circuit

Maak het circuit
Maak het circuit
Maak het circuit
Maak het circuit

Zodra u de schakelaar hebt gevonden die wordt gemaakt en verbroken, moet u de verbindingen kunnen identificeren door de draden terug naar de aansluitklemmen te volgen. In mijn geval zijn de twee zijden van de schakelaar verbonden met de twee meest linkse terminals. Sluit deze terminals aan op enkele jumperdraden en maak een prototype! De schakelaar in mijn wijzerplaat is altijd aan en wordt verbroken voor elke puls bij het kiezen, dus ik gebruikte het zeer eenvoudige circuit hieronder. Pin 2 wordt HOOG voor elke puls terwijl de wijzerplaat draait. Wanneer de telefoon niet wordt gekozen, is de schakelaar in de kieseenheid gesloten (een zogenaamde NORMALLY CLOSED-schakelaar, om voor de hand liggende redenen), zodat het circuit pin 2 verbindt met aarde (wat naar de Arduino LAAG is). Dit komt omdat er veel minder weerstand is door de weerstand van 470 ohm dan de weerstand van 10K. Wanneer de telefoon wordt gebeld, gaat de schakelaar snel open en dicht (voor een 9, zal deze negen keer openen en sluiten, onthoud). Wanneer de schakelaar open is, is pin 2 niet verbonden met aarde - in plaats daarvan is deze verbonden met de 5V-voeding via een weerstand van 10470 ohm. Dit wordt door de Arduino geïnterpreteerd als een HIGH. Als je wijzerplaat een NORMALLY OPEN-schakelaar heeft, zou het verwisselen van de posities van de 10K-weerstand en de wijzerplaat de slag moeten slaan.

Stap 4: Ontwikkel de code

Ontwikkel de code
Ontwikkel de code

Nu hebben we een code nodig voor de Arduino om de pulsen te tellen en het totale aantal per gekozen nummer terug te sturen via de seriële poort. Mijn code staat hieronder. Omdat we hier te maken hebben met mechanica, kan die van jou verschillen. Probeer te spelen met de debounce-constante en de constante 'hoe lang wachten we voordat we aannemen dat de wijzerplaat klaar is met draaien'. Ik heb geprobeerd het zo netjes mogelijk te becommentariëren. Hopelijk is het vrij eenvoudig.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) { // de dial wordt niet gekozen of is net gebeld. if (needToPrint) { // als het nog maar net is gebeld, moeten we het nummer naar de seriële // regel sturen en de telling opnieuw instellen. We passen de telling met 10 aan omdat '0' 10 pulsen zal verzenden. Serial.print (telling % 10, DEC); needToPrint = 0; aantal = 0; gewist = 0; } } if (lezing != lastState) { lastStateChangeTime = millis(); } if ((millis() - lastStateChangeTime) > debounceDelay) { // debounce - dit gebeurt zodra het is gestabiliseerd if (lezing! = trueState) { // dit betekent dat de schakelaar net van gesloten -> open is gegaan of omgekeerd. trueState = lezen; if (trueState == HIGH) {// verhoog het aantal pulsen als het hoog is geworden. tellen++; needToPrint = 1; // we moeten dit nummer afdrukken (zodra de wijzerplaat klaar is met draaien) } } } lastState = lezen;}

Stap 5: Controleer of het werkt

Controleer of het werkt door een serieel venster te openen (ik gebruik het scherm op een Unix-machine, misschien wilt u Hyperterm of iets dergelijks gebruiken op Windows), en probeer een aantal nummers te kiezen. Zorg ervoor dat het seriële programma is ingesteld om te lezen van de USB- >seriële adapter in uw Arduino (controleer het menu Tools->Serial Port in de Arduino-software als u vergeet wat dat is), en een baudrate van 9600 bps. U zou het juiste nummer moeten zien verschijnen terwijl het wordt gekozen.

Stap 6: Haak het in iets nuttigs

Haak het in iets nuttigs!
Haak het in iets nuttigs!

Ik bedacht een Quartz Composer-bestand op mijn Mac om de invoer op te nemen en mooi op het scherm weer te geven. Als het eenmaal in de machine zit als seriële data, kun je er alles mee doen. Ik wacht op je ideeën! Ik zal er een video van maken 'in actie' en de cijfers op het scherm afdrukken zodra ik iemand kan krijgen om de camera voor me vast te houden - ik wou dat ik drie handen had.

Aanbevolen: