Innehållsförteckning:
- Steg 1: Ta bort ratten från telefonen
- Steg 2: Identifiera omkopplaren
- Steg 3: Gör kretsen
- Steg 4: Utveckla koden
- Steg 5: Kontrollera att det fungerar
- Steg 6: Haka det i något användbart
Video: Gränssnitt en roterande telefonratt till en Arduino: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:48
En gammal roterande telefon kan användas för ett antal ändamål i dina Arduino -projekt - använd den som en ny inmatningsenhet, eller använd Arduino för att koppla en roterande telefon till din dator. Detta är en mycket grundläggande guide som beskriver hur du kopplar ratten till en Arduino och få det uppringda numret till en dator över Arduinos seriella länk.
Steg 1: Ta bort ratten från telefonen
Första steget är att ta bort rattenheten från telefonen. Jag använder en GPO -telefon av något slag från 1970 -talet. På den här telefonen dök ratten rakt ut - jag behövde bara dra den. Om det inte gör det kan du behöva öppna telefonen och ta reda på hur du tar bort den. Det var fem kablar anslutna till baksidan av rattenheten. På min telefon var det vanliga spadeanslutningar, så jag lossade skruvarna och drog ut dem. Om du vill montera ihop telefonen igen, kom ihåg att spela in vilken färgkabel som går till vilken anslutning.
Steg 2: Identifiera omkopplaren
När ratten är ute bör det vara relativt enkelt att se hur ratten omvandlar roterande rörelser till pulser. Prova att snurra på ratten för hand och titta på rörelsen på baksidan. Du bör se en strömbrytare som snabbt bryter en krets - så om du slår '9' bör omkopplaren aktiveras nio gånger. gå numret och låt det spool tillbaka. Jag har dokumenterat hur det fungerar för min telefon i anteckningarna på bilden nedan. Det finns också en suddig video av mekanismen som fungerar.
Steg 3: Gör kretsen
När du har hittat omkopplaren som görs och bryts bör du kunna identifiera anslutningarna genom att följa ledningarna tillbaka till anslutningsterminalerna. I mitt fall är switchens två sidor anslutna till de två terminalerna längst till vänster. Anslut dessa terminaler till några bygelkablar och få prototyper! Omkopplaren i min urtavla är alltid på och bryts för varje puls vid uppringning, så jag använde den mycket enkla kretsen nedan. Stift 2 går HÖG för varje puls när ratten roterar. När telefonen inte rings upp stängs omkopplaren i uppringningsenheten (en så kallad NORMALT STÄNGD omkopplare, av uppenbara skäl) så att kretsen ansluter stift 2 till jord (som till Arduino är LÅG). Detta beror på att det är mycket mindre motstånd genom 470 ohm -motståndet än 10K -motståndet. När telefonen ringer öppnas och stängs omkopplaren snabbt (för en 9 öppnas och stängs den nio gånger igen, kom ihåg). När omkopplaren är öppen är stift 2 inte anslutet till jord - istället är det anslutet till 5V -matningen genom ett motstånd på 10470 ohm. Detta tolkas av Arduino som ett HÖGT. Om din urtavla har en NORMALT ÖPPEN omkopplare, bör du byta positioner på 10K -motståndet och ratten gör tricket.
Steg 4: Utveckla koden
Nu behöver vi lite kod för Arduino för att räkna pulserna och skicka det totala antalet per nummer som slås tillbaka genom serieporten. Min kod är nedan. Eftersom vi har att göra med mekanik här kan din vara annorlunda. Prova att leka med konstanta avstängningskonstant och 'hur länge väntar vi innan vi antar att ratten har roterat' konstant. Jag har försökt kommentera det så snyggt som jag kan. Förhoppningsvis är det ganska 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; void setup () {Serial.begin (9600); pinMode (in, INPUT);} void loop () {int reading = digitalRead (in); if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// inte ratten ringer upp, eller precis har ringt upp. if (needToPrint) {// om det bara är klart att ringa upp måste vi skicka numret ner på serien // och återställa antalet. Vi modifierar räkningen med 10 eftersom '0' skickar 10 pulser. Serial.print (antal % 10, DEC); needToPrint = 0; count = 0; rensad = 0; }} if (läsning! = lastState) {lastStateChangeTime = millis (); } om ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - detta händer när det har stabiliserats om (läsning! = trueState) {// detta betyder att omkopplaren antingen just har gått från stängd-> öppen eller vice versa. trueState = läsning; if (trueState == HIGH) {// öka antalet pulser om det har gått högt. räkna ++; needToPrint = 1; // vi måste skriva ut det här numret (när ratten har roterat)}}} lastState = läsning;}
Steg 5: Kontrollera att det fungerar
Kontrollera att det fungerar genom att öppna ett seriefönster (jag använder skärmen på en unix-maskin, du kanske vill använda Hyperterm eller liknande på Windows) och försök slå några nummer. Se till att serieprogrammet är inställt för att läsa från USB- > seriell adapter i din Arduino (kolla Verktygs-> Seriell port-menyn i Arduino-programvaran om du glömmer vad det är) och en överföringshastighet på 9600 bps. Du bör se rätt nummer dyka upp när det ringer.
Steg 6: Haka det i något användbart
Jag kom med en Quartz Composer -fil på min Mac för att ta ingången och göra den snyggt på skärmen. När den väl finns i maskinen som seriell data kan du göra vad som helst med den. Väntar på att höra dina idéer! Jag kommer med en video av den "i aktion" och skriver ut siffrorna på skärmen så snart jag kan få någon att hålla kameran åt mig - önskar att jag hade tre händer.
Rekommenderad:
Komma igång med I2C -sensorgränssnitt ?? - Gränssnitt till din MMA8451 med ESP32: 8 steg
Komma igång med I2C Sensor Interface ?? - Gränssnitt till din MMA8451 Användning av ESP32: I denna handledning lär du dig allt om hur du startar, ansluter och får I2C -enhet (Accelerometer) att arbeta med styrenhet (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Förvandla en roterande telefon till en radio och resa genom tiden: 5 steg (med bilder)
Förvandla en roterande telefon till en radio och resa genom tiden: Jag hackade in en roterande telefon till en radio! Ta upp telefonen, välj ett land och ett decennium och lyssna på bra musik! Hur den fungerar Den här roterande telefonen har en inbyggd mikrodator (en Raspberry Pi) som kommunicerar till radiooooo.com, en webbradio. De
Gränssnitt till en GPS -modul med Raspberry Pi: Dashcam Del 2: 3 steg
Gränssnitt för en GPS -modul med Raspberry Pi: Dashcam Del 2: Detta är del 2 av dashcam -projektet och i det här inlägget lär vi oss hur man kopplar en GPS -modul till Raspberry Pi. Vi kommer sedan att använda GPS -data och lägga till den i videon som en textöverlagring. Läs del 1 genom att använda länken nedan innan du
Gränssnitt för Infineon DPS422 -sensor med Infineon XMC4700 och skicka data till NodeMCU: 13 steg
Gränssnitt för Infineon DPS422 -sensor med Infineon XMC4700 och sändning av data till NodeMCU: I denna handledning lär vi oss hur man använder DPS422 för att mäta temperatur och barometriskt tryck med XMC4700.DPS422DPS422 är en miniatyriserad digital barometrisk lufttrycks- och temperatursensor med hög noggrannhet och låg ström konsumtion.
Arduino -meny på en Nokia 5110 Lcd med en roterande kodare: 6 steg (med bilder)
Arduino -meny på en Nokia 5110 Lcd med hjälp av en roterande kodare: Kära vänner välkomna till en annan handledning! I den här videon kommer vi att lära oss hur man bygger vår egen meny för den populära Nokia 5110 LCD -skärmen för att göra våra projekt mer användarvänliga och mer kapabla. Låt oss komma igång! Detta är projektet