Inhaltsverzeichnis:

PIC-Schnittstelle mit Drehwähler - Gunook
PIC-Schnittstelle mit Drehwähler - Gunook

Video: PIC-Schnittstelle mit Drehwähler - Gunook

Video: PIC-Schnittstelle mit Drehwähler - Gunook
Video: Die Klappenschrank-Vermittlung 2024, Juli
Anonim
PIC-Schnittstelle mit Drehwähler
PIC-Schnittstelle mit Drehwähler

Ich habe mich mit einer Fülle von Wählscheibentelefonen wiedergefunden. Tatsächlich sind sie überall, wo ich hinschaue. In der Hoffnung, eines Tages weniger davon zu sehen, habe ich begonnen, sie auseinander zu nehmen und die Teile für andere Zwecke wiederzuverwenden.

Aus irgendeinem Grund habe ich es mir in den Kopf gesetzt, dass es eine gute Idee wäre, den Drehregler mit einem PIC-Chip zu verbinden. Ich kann mir im Moment nur ein paar vage Verwendungen dafür vorstellen und keine sind besonders nützlich, aber ich hoffe, dass ich in Zukunft etwas Cooles damit machen kann.

Schritt 1: Holen Sie sich Sachen

Gehen Sie Zeug holen
Gehen Sie Zeug holen

Sie benötigen: 1 - Drehtelefon3 - 220-Ohm-Widerstände2 - 0,1uF-Kondensatoren 2 - 20K-Widerstand (kann alles zwischen 10K und 47K ersetzen)2 - LEDs1 - PIC-Entwicklungsplatine (ich habe die Basic Micro-Entwicklungsumgebung verwendet)1 - 20-MHZ-Resonator oder Kristall1 - Steckbrett1 - 5V Stromquelle1 - Etwa ein Fuß des Anschlusskabels1 - Schraubendreher1 - Abisolierzange

Schritt 2: Untersuchen Sie das Telefon

Sezieren Sie das Telefon
Sezieren Sie das Telefon
Sezieren Sie das Telefon
Sezieren Sie das Telefon
Sezieren Sie das Telefon
Sezieren Sie das Telefon

Öffnen Sie Ihr Telefon mit Wählscheibe. Im Inneren werden Sie die wenigen grundlegenden Teile bemerken; das Drehrad, der Klingelton, zwei Buchsen, der Gabelschalter und die Grundschaltung, die normalerweise in einem metallenen Anschlusskasten-ähnlichen Ding untergebracht ist.

Es werden vier Drähte vom Drehwähler zu diesem anschlusskastenähnlichen Ding verlaufen. Die Drähte sollten nur durch festgezogene Schrauben an Ort und Stelle gehalten werden. Lösen Sie die Schrauben und trennen Sie die Drähte. Trennen Sie danach das Wählrad vom Telefon selbst.

Schritt 3: Bestimmen Sie, was die Drähte tun

Bestimmen Sie, was die Drähte tun
Bestimmen Sie, was die Drähte tun
Bestimmen Sie, was die Drähte tun
Bestimmen Sie, was die Drähte tun

Verdrahten Sie zwei LEDs wie in der Abbildung unten gezeigt.

Die beiden weißen Drähte sollten das Paar sein, das den Schalter schließt, der Sie informiert, wenn das Zifferblatt gedreht wird. Der blaue und der grüne Draht sollten das Paar sein, das Ihnen mitteilt, welche Nummer gewählt wurde. Wenn Sie das Zifferblatt drehen, sollte die mit den weißen Drähten verbundene LED aufleuchten, und wenn Sie das Zifferblatt loslassen, sollte die LED, die mit dem blauen und grünen Draht verbunden ist, so oft ein- und ausgeschaltet werden, wie Sie die Nummer haben gewählt (siehe Video). Wenn Sie beispielsweise 8 wählen, schaltet sich die mit dem grünen und blauen Kabel verbundene LED 8-mal aus und wieder ein. Dies geschieht, weil eine Möglichkeit zum Wählen einer Telefonnummer darin besteht, die Verbindung so oft für die Ziffer, die Sie zu wählen versuchen, schnell zu unterbrechen. Um eine 8 zu wählen, müssten Sie die Verbindung 8 Mal schnell trennen.

Schritt 4: Verbinden Sie den Dialer mit dem PIC-Chip

Verbinden Sie den Dialer mit dem PIC-Chip
Verbinden Sie den Dialer mit dem PIC-Chip
Verbinden Sie den Dialer mit dem PIC-Chip
Verbinden Sie den Dialer mit dem PIC-Chip

Verbinden Sie den Drehwähler mit dem PIC-Chip, wie in der Abbildung gezeigt. Beachten Sie, dass ich den Status des Drehwählers mit RC-Timing einlese. Mit anderen Worten, der PIC-Chip zählt, wie oft ein Kondensator entladen ist (was sich ändert, wenn ein Widerstand hinzugefügt wird).

Hier kommt der 20K-Widerstand ins Spiel. Durch Hinzufügen dieses zum Eingang kann das Signal eines geschlossenen und offenen Drehschalteranschlusses eindeutig unterschieden werden.

Schritt 5: Stellen Sie den Code zusammen

Stellen Sie den Code zusammen
Stellen Sie den Code zusammen

Um den Chip zu programmieren, habe ich die MBasic-Entwicklungsumgebung von Basic Micro verwendet. MBasic ist ganz einfach eine Variante von Basic, die für die Verwendung mit PIC-Chips entwickelt wurde. Es lässt sich leicht in eine universellere (nützliche) Sprache umwandeln. Der Code bestimmt im Wesentlichen, wann jemand das Zifferblatt gedreht hat und führt dann eine Flankenerkennung des Signals durch (Bestimmung von Tief-Hoch-Übergängen), bis das Zifferblatt in seinen Anfangszustand zurückkehrt. Nach der Zählung, wie oft es einen Signalübergang misst, blinkt die LED entsprechend. Wenn Sie beispielsweise 3 wählen, zählt der PIC drei Low-High-Übergänge und blinkt dann dreimal eine LED. Die LED ist, wie Sie vielleicht vermutet haben, für den Betrieb nicht erforderlich und dient nur dazu, Ihnen ein sichtbares Feedback zu geben. Sie können jedes beliebige Ausgabegerät ersetzen, das Sie für notwendig erachten. ********************Hier ist ein Code:************************CPU = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain:countclicks = 0repvar = 0'sets/reset valueshigh B2rctime B2, 1, startcountincountclicks = 0if startcountin > 10 then goto countmeup' prüft, ob Dial gedreht wurde und Geht zum Unterprogramm, wenn es zu main gegangen ist'================countmeup:high B1rctime B1, 1, cacker'sets Compare valuegoto countmeuploop'=========== =====countmeuploop:high B1rctime B1, 1, clicker'checks count valuelargefig = cacker + 100'sets einen Wert für den Schwellenwert, der größer als 0, aber kleiner als mögliche Pin-High-Werte sein wird if largefig < clicker thencountclicks = countclicks + 1endif'fügt jedes Mal 1 Wert hinzu, wenn ein Übergang von niedrig nach hoch aufgezeichnet wirdhigh B2rctime B2, 1, startcountinif startcountin < 10 thenif countclicks > 0 thengoto Blinkelsegoto mainendifendif'prüft, ob das Zifferblatt auf seine i. zurückgerückt ist Grundzustand'wenn vorhanden und eine Nummer gewählt wurde geht es in die LED Routine'sonst wenn keine Nummer gewählt wurde geht es in mainclacker = clicker'setzt den Vergleichswert auf den aktuellen Pinwert zurückgoto countmeuploop'keine Pausen in dieser Routine !'================blinker:repvar = repvar + 1'zählt jede Wiederholung dieser Routinehigh B3pause 1000low B3pause 1000'blinkt die LEDif repvar = countclicks thenrepvar = 0goto mainendif'if the Wiederholungen entsprechen der Anzahl von Malen, die die LED blinken sollte, dann geht es zurück zur Hauptroutinegoto blinker

Schritt 6: Testen

Testen
Testen

Wenn du alles genauso gemacht hast wie ich, sollte es funktionieren (siehe Video).

Wenn es nicht funktioniert, vergewissern Sie sich, dass Sie alles richtig verkabelt haben und der Code richtig kopiert wurde. Stellen Sie außerdem sicher, dass Ihr Resonator (oder Quarz) 20 MHz hat. Wenn Sie Ihren eigenen Code geschrieben haben, stellen Sie sicher, dass es keine Pausen in der Routine gibt, die auf Low-High-Übergänge überprüft.

Schritt 7: Gehen Sie darüber hinaus

Weitergehen
Weitergehen

Finden Sie eine andere Verwendung für das Drehrad als das Blinken einer LED heraus.

Empfohlen: