Innholdsfortegnelse:
- Trinn 1: Fjern ringen fra telefonen
- Trinn 2: Identifiser bryteren
- Trinn 3: Lag kretsen
- Trinn 4: Utvikle koden
- Trinn 5: Sjekk at det fungerer
- Trinn 6: Fest det til noe nyttig
Video: Grensesnitt en roterende telefonoppringning til en Arduino: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:26
En gammel roterende telefon kan brukes til en rekke formål i dine Arduino -prosjekter - bruk den som en ny inngangsenhet, eller bruk Arduino til å koble en roterende telefon til datamaskinen din. til en Arduino, og få nummeret slått til en datamaskin over Arduinos serielle lenke.
Trinn 1: Fjern ringen fra telefonen
Første trinn er å fjerne ringeenheten fra telefonen. Jeg bruker en GPO -telefon av noe slag fra 1970 -tallet. På denne telefonen dukket skiven rett ut - jeg trengte bare å ta den. Hvis den ikke gjør det, må du kanskje åpne telefonen og finne ut hvordan du får den av. Det var fem kabler koblet til baksiden av skivenheten. På telefonen min var dette vanlige spadeforbindelser, så jeg løsnet skruene og dro dem ut. Hvis du vil montere telefonen på nytt, må du huske å registrere hvilken fargekabel som går til hvilken tilkobling.
Trinn 2: Identifiser bryteren
Når skiven er slått ut, bør det være relativt enkelt å se hvordan skiven omdanner roterende bevegelser til pulser. Prøv å snurre skiven for hånd og se bevegelsen på baksiden. Du bør se en bryter lage og bryte en krets raskt - så hvis du ringer '9', bør bryteren koble til ni ganger. gå nummeret og la det spole tilbake. Jeg har dokumentert hvordan det fungerer for telefonen min i notatene på bildet nedenfor. Det er også en uskarp video av mekanismen som fungerer.
Trinn 3: Lag kretsen
Når du har funnet bryteren som blir gjort og ødelagt, bør du kunne identifisere tilkoblingene ved å følge ledningene tilbake til tilkoblingsterminalene. I mitt tilfelle er de to sidene av bryteren koblet til de to terminalene til venstre. Bryteren i skiven min er alltid på og er ødelagt for hver puls når jeg ringer, så jeg brukte den veldig enkle kretsen nedenfor. Pinne 2 går HØY for hver puls når skiven roterer. Når telefonen ikke blir ringt, er bryteren i skivenheten lukket (en såkalt NORMALT STENGT bryter, av åpenbare årsaker), slik at kretsen kobler pin 2 til bakken (som til Arduino er LAV). Dette er fordi det er mye mindre motstand gjennom 470 ohm -motstanden enn 10K -motstanden. Når telefonen ringes, åpnes og lukkes bryteren (for en 9, vil den åpne og lukke igjen ni ganger, husk). Når bryteren er åpen, er ikke pin 2 koblet til jord - i stedet er den koblet til 5V -forsyningen gjennom en motstand på 10470 ohm. Dette tolkes av Arduino som et HØYT. Hvis urskiven din har en NORMALT ÅPEN bryter, bør du bytte posisjoner til 10K -motstanden og skiven skal gjøre susen.
Trinn 4: Utvikle koden
Nå trenger vi litt kode for Arduino for å telle pulser og sende det totale antallet per nummer som er slått tilbake gjennom den serielle porten. Koden min er nedenfor. Siden vi har å gjøre med mekanikk her, kan din variere. Prøv å leke med konstantavvisningskonstanten og hvor lenge vi venter før vi antar at skiven er ferdig med å rotere. Jeg har prøvd å kommentere den så pent jeg kan. Forhåpentligvis er det ganske enkelt. 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; ugyldig oppsett () {Serial.begin (9600); pinMode (in, INPUT);} void loop () {int reading = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// oppringningen ikke blir ringt, eller nettopp har blitt ringt opp. if (needToPrint) {// hvis det bare er ferdig med å bli slått, må vi sende nummeret ned på serien // og nullstille antallet. Vi modifiserer tellingen med 10 fordi '0' sender 10 pulser. Serial.print (telle % 10, DEC); needToPrint = 0; telle = 0; slettet = 0; }} if (reading! = lastState) {lastStateChangeTime = millis (); } hvis ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - dette skjer når det er stabilisert hvis (reading! = trueState) {// dette betyr at bryteren enten nettopp har gått fra lukket-> åpen eller omvendt. trueState = lesing; hvis (trueState == HIGH) {// øker antallet pulser hvis det har gått høyt. telle ++; needToPrint = 1; // vi må skrive ut dette nummeret (når skiven har rotert)}}} lastState = lesing;}
Trinn 5: Sjekk at det fungerer
Kontroller at det fungerer ved å åpne et seriell vindu (jeg bruker skjermen på en unix-maskin, det kan være lurt å bruke Hyperterm eller lignende på Windows), og prøv å slå noen numre. Sørg for at serieprogrammet er satt til å lese fra USB- > seriell adapter i Arduino (sjekk Verktøy-> Seriell port-menyen i Arduino-programvaren hvis du glemmer hva det er), og en overføringshastighet på 9600 bps. Du bør se det riktige nummeret som dukker opp når det ringes.
Trinn 6: Fest det til noe nyttig
Jeg kom med en Quartz Composer -fil på min Mac for å ta input og gjengi det pent til skjermen. Når den er i maskinen som serielle data, kan du gjøre alt med den. Venter på å høre ideene dine! Jeg kommer med en video av den 'in action' og skriver ut tallene til skjermen så snart jeg kan få noen å holde kameraet for meg - skulle ønske jeg hadde tre hender.
Anbefalt:
Slå en roterende telefon til en radio og reis gjennom tiden: 5 trinn (med bilder)
Gjør en roterende telefon til en radio og reis gjennom tiden: Jeg hacket en roterende telefon til en radio! Ta telefonen, velg et land og et tiår, og lytt til god musikk! Hvordan den fungerer Denne roterende telefonen har en innebygd mikrodatamaskin (en Raspberry Pi), som kommuniserer til radiooooo.com, en nettradio. De
Opplæring i grensesnitt HMC5883L kompassensor med Arduino: 10 trinn (med bilder)
Opplæring for grensesnitt HMC5883L kompasssensor med Arduino: Beskrivelse HMC5883L er et 3-akset digitalt kompass som brukes til to generelle formål: å måle magnetiseringen av et magnetisk materiale som en ferromagnet, eller for å måle styrken og i noen tilfeller retningen på magnetfelt på et punkt i s
Enkel RFID MFRC522 -grensesnitt med Arduino Nano: 4 trinn (med bilder)
Enkel RFID MFRC522 -grensesnitt med Arduino Nano: Adgangskontroll er mekanismen innen fysisk sikkerhet og informasjonssikkerhet, for å begrense anonym tilgang/tilgang til ressursene til en organisasjon eller et geografisk område. Handlingen med tilgang kan bety å spise, gå inn eller bruke
Hvordan grensesnitt GPS-modul (NEO-6m) med Arduino: 7 trinn (med bilder)
Slik grensesnitt GPS-modul (NEO-6m) med Arduino: I dette prosjektet har jeg vist hvordan du grensesnitt en GPS-modul med Arduino UNO. Dataene for lengdegrad og breddegrad vises på LCD -skjermen, og plasseringen kan vises på app.Liste over materiale Arduino Uno == > $ 8 Ublox NEO-6m GPS-modul == > $ 15 16x
Opplæring til grensesnitt HX711 med lastcelle rett bar 50 kg: 10 trinn (med bilder)
Opplæring til grensesnitt HX711 med lastcelle rett bar 50kg: HX711 BALASEMODUL Beskrivelse: Denne modulen bruker 24 A / D-omformere med høy presisjon. Denne brikken er designet for høy presisjon elektronisk skala og design, har to analoge inngangskanaler, programmerbar forsterkning på 128 integrert forsterker. Inngangskretsen