Inhoudsopgave:
- Stap 1: Verwijder de wijzerplaat van de telefoon
- Stap 2: Identificeer de schakelaar
- Stap 3: Maak het circuit
- Stap 4: Ontwikkel de code
- Stap 5: Controleer of het werkt
- Stap 6: Haak het in iets nuttigs
Video: Interface een roterende telefoon naar een Arduino - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:20
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
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
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
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
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
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:
Willekeurige MP3's naar telefoon: 7 stappen
Willekeurige MP3's naar telefoon: wat doet het? Het kopieert willekeurig een "aantal mp3's" van mijn muziekmap naar mijn telefoon! Prelude: Herinner je je nog de tijd dat we mp3's van onze vrienden verzamelden door onze harde schijven aansluiten (of tijdens LAN-Parties), en vaak pijnloos
Game-saves kopiëren naar een MU van Microsoft of een derde partij op een eenvoudige manier: 9 stappen
Game Saves kopiëren naar een Microsoft of 3rd Party MU op de GEMAKKELIJKE MANIER .: Originele tutorial HIER Er zijn tal van Softmod-tutorials die er zijn en ze zijn allemaal goed, maar het is lastig om de opslagbestanden op de Xbox HDD te krijgen, ik heb een leven gemaakt cd die het eenvoudig maakt om dat te doen. Dit is geen complete softmod-tutorial, dit
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): 5 stappen
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): door Jay Amiel AjocGensan PHfacebook.com/geeamealyoutube.com/jayamielajoc
Converteer uw oude telefoon naar een externe schakelaar: 7 stappen (met afbeeldingen)
Converteer uw oude telefoon naar een externe schakelaar: ooit afgevraagd wat u met uw oude basistelefoons moet doen? De komst van een smartphone in het afgelopen decennium maakte alle basistelefoons overbodig. Hoewel ze een goede batterijduur en een fatsoenlijk uiterlijk hadden, zijn ze minder in vergelijking met grote smartphones met grote s
Meldingen naar uw telefoon verzenden vanaf een ESP8266: 3 stappen
Meldingen naar uw telefoon verzenden vanaf een ESP8266.: Zo nu en dan zou het handig zijn om een melding te krijgen op de telefoon over gebeurtenissen in uw Arduino-code. Met de ESP Notify Android-app en de bijbehorende arduino-bibliotheek kun je dat gemakkelijk bereiken en kun je meldingen verzenden vanaf elke ESP8266