117
edits
No edit summary |
|||
Line 6: | Line 6: | ||
martin.johr@uni-weimar.de | martin.johr@uni-weimar.de | ||
== Auszug == | == Auszug == | ||
Line 12: | Line 13: | ||
== Schlagwörter == | == Schlagwörter == | ||
Spieluhr, Arduino, Elektronik, Schrittmotor, Gabellicht-schranke, Optokoppler, R_2R Leiter | Spieluhr, Arduino, Elektronik, Schrittmotor, Gabellicht-schranke, Optokoppler, R_2R Leiter | ||
== EINLEITUNG == | == EINLEITUNG == | ||
Beim Betrachten einer kleinen Walzenspieldose kam mir vor einiger Zeit die Idee ein Gerät zu entwickeln, mit dem man seine eigenen Lieder oder Lieblingslieder mit gerin-gem Aufwand auf einer selbstgebauten elektronisch be-triebenen Spieluhr genießen kann. | Beim Betrachten einer kleinen Walzenspieldose kam mir vor einiger Zeit die Idee ein Gerät zu entwickeln, mit dem man seine eigenen Lieder oder Lieblingslieder mit gerin-gem Aufwand auf einer selbstgebauten elektronisch be-triebenen Spieluhr genießen kann. | ||
== GRUNDLAGEN == | == GRUNDLAGEN == | ||
Um den Aufbau der Apparatur und die Vorgänge darin verstehen zu können ist ein grundliegendes Verständnis der Elektrotechnik nötig. | Um den Aufbau der Apparatur und die Vorgänge darin verstehen zu können ist ein grundliegendes Verständnis der Elektrotechnik nötig. | ||
== Verwendete Elemente == | == Verwendete Elemente == | ||
Line 43: | Line 47: | ||
=== ''Weitere benötigte Teile'' === | === ''Weitere benötigte Teile'' === | ||
4x 100 Ohm Widerstände pro Motorkontakt (MK) 2x kleine npn Transistoren bis 40 mA pro MK 1x stärkerer npn und pnp Transistor bis 2A pro MK 3x 130 Ohm pro Bit der R_2R_Leiter + 1x 130 Ohm oder alternativ Infrarot LED und Infrarot Fototransis-tor pro zu spielenden Ton Empfehlenswert ist ein Breadboard und jede Menge Juperkabel | 4x 100 Ohm Widerstände pro Motorkontakt (MK) 2x kleine npn Transistoren bis 40 mA pro MK 1x stärkerer npn und pnp Transistor bis 2A pro MK 3x 130 Ohm pro Bit der R_2R_Leiter + 1x 130 Ohm oder alternativ Infrarot LED und Infrarot Fototransis-tor pro zu spielenden Ton Empfehlenswert ist ein Breadboard und jede Menge Juperkabel | ||
== Entwicklung eines Rotors für das Medium == | == Entwicklung eines Rotors für das Medium == | ||
Line 51: | Line 56: | ||
'''Bild 1: Schrittmotor.''' | '''Bild 1: Schrittmotor.''' | ||
Der Schrittmotor hat, wie man leicht erkennen kann, drei Kontakte. Diese sind über eine Sternverbindung alle mit-einander verbunden, sodass, wenn zwischen zwei An-schlüssen ein Spannungsunterschied herrscht, ein Strom fließt und der Motor sich ausrichtet. Um den Motor flüs-sig in Drehung zu versetzen, ist es nötig an den drei An-schlüssen in richtiger Reihenfolge Spannungsunter-schiede anzulegen. Dabei fließen bei einem Zustand nur durch zwei Anschlüsse Strom. Um die Reihenfolge ge-nauer zu erklären stelle man sich die Kontakte als drei Bit vor, wobei ein Bit die Werte ‚1‘ (HIGH), ‚0‘ (LOW/GND) und sogar einen weiteren Wert annehmen kann, bei dem der Anschluss kein Potential hat und nicht am Stromkreis-lauf beteiligt ist. Diesen Zustand kennzeichne ich mit ei-nem „Minus“ | Der Schrittmotor hat, wie man leicht erkennen kann, drei Kontakte. Diese sind über eine Sternverbindung alle mit-einander verbunden, sodass, wenn zwischen zwei An-schlüssen ein Spannungsunterschied herrscht, ein Strom fließt und der Motor sich ausrichtet. Um den Motor flüs-sig in Drehung zu versetzen, ist es nötig an den drei An-schlüssen in richtiger Reihenfolge Spannungsunter-schiede anzulegen. Dabei fließen bei einem Zustand nur durch zwei Anschlüsse Strom. Um die Reihenfolge ge-nauer zu erklären stelle man sich die Kontakte als drei Bit vor, wobei ein Bit die Werte ‚1‘ (HIGH), ‚0‘ (LOW/GND) und sogar einen weiteren Wert annehmen kann, bei dem der Anschluss kein Potential hat und nicht am Stromkreis-lauf beteiligt ist. Diesen Zustand kennzeichne ich mit ei-nem „Minus“ | ||
Line 73: | Line 79: | ||
'''Bild 2: Steuerschaltung des Schrittmotors unten, gro-bes Schaltsymbol für den Motor oben.''' | '''Bild 2: Steuerschaltung des Schrittmotors unten, gro-bes Schaltsymbol für den Motor oben.''' | ||
Der erste Ansatz ist eine erweiterte H-Brücke mit NPN- und PNP-Transistoren als Schalter, um den Strom in beide Richtungen fließen lassen zu können. Anhand der Simu-lation habe ich die Widerstände mit 100 Ω gewählt, damit der Strom aus den Arduino-Pins unter 40 mA liegt. Es wird hier eine separate Spannungsversorgung benötigt, da der Arduino nicht genügend Leistung zur Verfügung stel-len kann, um den Motor in Bewegung zu setzen oder be-schädigt werden würde. Außerdem ist zu beachten, dass die Last (Motor) immer am Kollektor der Transistoren lie-gen muss, da die Stromverstärkung sonst zu schwach ist. | Der erste Ansatz ist eine erweiterte H-Brücke mit NPN- und PNP-Transistoren als Schalter, um den Strom in beide Richtungen fließen lassen zu können. Anhand der Simu-lation habe ich die Widerstände mit 100 Ω gewählt, damit der Strom aus den Arduino-Pins unter 40 mA liegt. Es wird hier eine separate Spannungsversorgung benötigt, da der Arduino nicht genügend Leistung zur Verfügung stel-len kann, um den Motor in Bewegung zu setzen oder be-schädigt werden würde. Außerdem ist zu beachten, dass die Last (Motor) immer am Kollektor der Transistoren lie-gen muss, da die Stromverstärkung sonst zu schwach ist. | ||
Line 80: | Line 87: | ||
'''Bild 3(2): Steuerschaltung des Schrittmotors mit Dar-lington-Schaltung. Aus Platzgründen nur eine einfa-che H-Brücke (Bilder sind in dem Ordner „paper & documentation/pictures“ zu finden).''' | '''Bild 3(2): Steuerschaltung des Schrittmotors mit Dar-lington-Schaltung. Aus Platzgründen nur eine einfa-che H-Brücke (Bilder sind in dem Ordner „paper & documentation/pictures“ zu finden).''' | ||
Ich verwende hier kleine NPN-Transistoren vor allen Out-put-Pins und jeweils große PNP- und NPN-Transistoren an der Last, welche mehr Leistung vertragen können. Das ist wichtig, da wir nicht genügend Strom an der Basis ha-ben um die Transistoren vollständig zu öffnen. Das hat zur Folge, dass Spannung über die Transistoren abfällt und somit auch Leistung. Ideal wäre die Wahl eines Transis-tors welcher mit dem, uns zur Verfügung stehenden Strom vollständig öffnet und somit einen nur sehr kleinen Wi-derstand hat. Dies hätte mehr Leistung am Motor und we-niger am Transistor zur Folge. Parallel zu den großen Transistoren liegt, zum Schutz der Transistoren, jeweils eine Freilaufdiode, da sich die Spulen des Motors durch-aus in entgegengesetzter Richtung über die Transistoren entladen können als eigentlich gewünscht. Die Freilaufdi-ode verhindert dies, indem sie den Strom ableitet. | Ich verwende hier kleine NPN-Transistoren vor allen Out-put-Pins und jeweils große PNP- und NPN-Transistoren an der Last, welche mehr Leistung vertragen können. Das ist wichtig, da wir nicht genügend Strom an der Basis ha-ben um die Transistoren vollständig zu öffnen. Das hat zur Folge, dass Spannung über die Transistoren abfällt und somit auch Leistung. Ideal wäre die Wahl eines Transis-tors welcher mit dem, uns zur Verfügung stehenden Strom vollständig öffnet und somit einen nur sehr kleinen Wi-derstand hat. Dies hätte mehr Leistung am Motor und we-niger am Transistor zur Folge. Parallel zu den großen Transistoren liegt, zum Schutz der Transistoren, jeweils eine Freilaufdiode, da sich die Spulen des Motors durch-aus in entgegengesetzter Richtung über die Transistoren entladen können als eigentlich gewünscht. Die Freilaufdi-ode verhindert dies, indem sie den Strom ableitet. | ||
Line 87: | Line 95: | ||
'''Bild 4(2): Steuerschaltung des Schrittmotors mit Dar-lington-Schaltung und genauerem Aufbau der großen Transistoren.''' | '''Bild 4(2): Steuerschaltung des Schrittmotors mit Dar-lington-Schaltung und genauerem Aufbau der großen Transistoren.''' | ||
Nun haben wir gleich zwei Freilaufdioden parallel ge-schaltet vor der Last. Da ich nicht weiß wie groß die Di-ode in dem Transistor ist, gehe ich lieber auf Nummer si-cher und lasse es dabei. | Nun haben wir gleich zwei Freilaufdioden parallel ge-schaltet vor der Last. Da ich nicht weiß wie groß die Di-ode in dem Transistor ist, gehe ich lieber auf Nummer si-cher und lasse es dabei. | ||
Line 95: | Line 104: | ||
'''Bild 5: Zahnrad und Motor.''' | '''Bild 5: Zahnrad und Motor.''' | ||
Der Motor aus dem zerlegten Drucker ist direkt mit einem sehr großen Zahnrad verbunden, welches – wie sich spä-ter zeigte – perfekt zu meinem Rotor passt auf dem ich mein Medium befestige. Wichtig war nun zu wissen, wie oft sich der Motor drehen müsse oder wie viele Zyklen durchlaufen werden müssen, um das Zahnrad einmalig um 360° zu drehen, denn eine Drehung dieses Zahnrades entspricht der Länge, des zu spielenden Liedes. Um dies heraus zu finden, habe ich lediglich eine Markierung an das Zahnrad gelegt und den Motor so lange drehen lassen, bis das Zahnrad sich einmal vollständig um 360° gedreht hat. Ich fand heraus, dass 131 Zyklen durchlaufen werden müssen, damit sich das Zahnrad einmal um die eigene Achse dreht. Das entspricht 16,375 Umdrehungen des Motors. Anstelle dieses Verfahrens, hätte man auch auf-wendig am Motor und am Zahnrad die Zähne zählen und das Verhältnis zueinander aufstellen können. | Der Motor aus dem zerlegten Drucker ist direkt mit einem sehr großen Zahnrad verbunden, welches – wie sich spä-ter zeigte – perfekt zu meinem Rotor passt auf dem ich mein Medium befestige. Wichtig war nun zu wissen, wie oft sich der Motor drehen müsse oder wie viele Zyklen durchlaufen werden müssen, um das Zahnrad einmalig um 360° zu drehen, denn eine Drehung dieses Zahnrades entspricht der Länge, des zu spielenden Liedes. Um dies heraus zu finden, habe ich lediglich eine Markierung an das Zahnrad gelegt und den Motor so lange drehen lassen, bis das Zahnrad sich einmal vollständig um 360° gedreht hat. Ich fand heraus, dass 131 Zyklen durchlaufen werden müssen, damit sich das Zahnrad einmal um die eigene Achse dreht. Das entspricht 16,375 Umdrehungen des Motors. Anstelle dieses Verfahrens, hätte man auch auf-wendig am Motor und am Zahnrad die Zähne zählen und das Verhältnis zueinander aufstellen können. | ||
Line 100: | Line 110: | ||
[[File:motor_power_time_in_microseconds.png|600px]] | [[File:motor_power_time_in_microseconds.png|600px]] | ||
== Code-Motor == | == Code-Motor == | ||
Line 194: | Line 205: | ||
} | } | ||
</source> | </source> | ||
== Medium == | == Medium == | ||
Line 220: | Line 232: | ||
'''Bild 7: Scheibe auf Zahnrad.''' | '''Bild 7: Scheibe auf Zahnrad.''' | ||
Um zu wissen wie ich die Schnitte machen muss, damit | Um zu wissen wie ich die Schnitte machen muss, damit | ||
Line 273: | Line 286: | ||
'''Bild 8: Berechnete Schablone für die Scheibe.''' | '''Bild 8: Berechnete Schablone für die Scheibe.''' | ||
Diese Schablone kann auf A4 Papier gedruckt werden. | Diese Schablone kann auf A4 Papier gedruckt werden. | ||
Line 292: | Line 306: | ||
die tatsächliche Liedlänge auf den Schablonen auf 12 | die tatsächliche Liedlänge auf den Schablonen auf 12 | ||
Takte reduzieren. | Takte reduzieren. | ||
== Sensor == | == Sensor == | ||
Line 308: | Line 323: | ||
'''Bild 9: Gabellichtschranke.''' | '''Bild 9: Gabellichtschranke.''' | ||
Ich habe einen Draht von beiden Seiten so gebogen, dass | Ich habe einen Draht von beiden Seiten so gebogen, dass | ||
Line 316: | Line 332: | ||
'''Bild 10: Simulation der Lichtschranke.''' | '''Bild 10: Simulation der Lichtschranke.''' | ||
Ich habe den Widerstand nach dem Fototransistor so gewählt, | Ich habe den Widerstand nach dem Fototransistor so gewählt, | ||
Line 332: | Line 349: | ||
Lichtschranke habe ich das Kurze Programm | Lichtschranke habe ich das Kurze Programm | ||
„opto.ino“ in dem „opto“-Ordner. | „opto.ino“ in dem „opto“-Ordner. | ||
== Klangerzeugung == | == Klangerzeugung == | ||
Line 390: | Line 408: | ||
'''Bild 11: Simulation der R_2R-Leiter.''' | '''Bild 11: Simulation der R_2R-Leiter.''' | ||
Dieses aufgebaute Konstrukt nennt man Widerstandsleiter | Dieses aufgebaute Konstrukt nennt man Widerstandsleiter | ||
Line 409: | Line 428: | ||
'''Bild 12: Erste Umsetzung der R_2R-Leiter.''' | '''Bild 12: Erste Umsetzung der R_2R-Leiter.''' | ||
[[File:Bild 13.jpg|600px]] | [[File:Bild 13.jpg|600px]] | ||
'''Bild 13: Gelötete Version der R_2R-Leiter. Von links''' | '''Bild 13: Gelötete Version der R_2R-Leiter. Von links''' | ||
nach rechts, unten LSB bis HSB, oben OUTP und GND. | nach rechts, unten LSB bis HSB, oben OUTP und GND. | ||
Line 424: | Line 445: | ||
'''Bild 14: R_2R Leiter mit einem verbundenen Bit''' | '''Bild 14: R_2R Leiter mit einem verbundenen Bit''' | ||
[[File:Bild 15.BMP|600px]] | [[File:Bild 15.BMP|600px]] | ||
'''Bild 15: R_2R Leiter mit zwei verbundenen Bit''' | '''Bild 15: R_2R Leiter mit zwei verbundenen Bit''' | ||
[[File:Bild 16.BMP|600px]] | [[File:Bild 16.BMP|600px]] | ||
'''Bild 16: R_2R Leiter mit vier verbundenen Bit''' | '''Bild 16: R_2R Leiter mit vier verbundenen Bit''' | ||
[[File:Bild 17.BMP|600px]] | [[File:Bild 17.BMP|600px]] | ||
'''Bild 17: R_2R Leiter mit acht verbundenen Bit''' | '''Bild 17: R_2R Leiter mit acht verbundenen Bit''' | ||
Das Signal in Bild 17 ist von einer Sinuswelle fast nicht | Das Signal in Bild 17 ist von einer Sinuswelle fast nicht | ||
Line 450: | Line 475: | ||
'''Bild 18: R_2R Leiter mit acht verbundenen Bit und''' | '''Bild 18: R_2R Leiter mit acht verbundenen Bit und''' | ||
Kurzschluss im höherwertigen Bitpositionsbereich | Kurzschluss im höherwertigen Bitpositionsbereich | ||
Line 465: | Line 491: | ||
Soweit ich den Code entwickeln konnte, ist dieser im Ordner | Soweit ich den Code entwickeln konnte, ist dieser im Ordner | ||
„DACR_2R“ in der Datei „R_2R.ino“ zu finden. | „DACR_2R“ in der Datei „R_2R.ino“ zu finden. | ||
== Digital-Analog-Wandler zur Erfassung mehrerer Schalter mittels eines einzelnen Analog-Pins == | == Digital-Analog-Wandler zur Erfassung mehrerer Schalter mittels eines einzelnen Analog-Pins == | ||
Line 496: | Line 523: | ||
in der Lage sind, mit einem einzigen Arduino-Analog-Pin | in der Lage sind, mit einem einzigen Arduino-Analog-Pin | ||
ganze 8 Schalter gleichzeitig zu erfassen. | ganze 8 Schalter gleichzeitig zu erfassen. | ||
== Ergebnis/Auswertung == | == Ergebnis/Auswertung == | ||
Line 533: | Line 561: | ||
'''Bild 19: Alle Schaltungen: Arduino Mega unten, R_2RNetzwerk''' | '''Bild 19: Alle Schaltungen: Arduino Mega unten, R_2RNetzwerk''' | ||
oben links, Schrittmotor-Ansteuerung oben | oben links, Schrittmotor-Ansteuerung oben | ||
Line 543: | Line 572: | ||
'''Bild 20: Alle Schaltungen: Arduino Mega links, R_2R-Netzwerk oben, Schrittmotor-Ansteuerung unten, Messschaltung für die Lichtschranke verteilt Mitte links und rechts. Arduino [5], Zahnrad [6]''' | '''Bild 20: Alle Schaltungen: Arduino Mega links, R_2R-Netzwerk oben, Schrittmotor-Ansteuerung unten, Messschaltung für die Lichtschranke verteilt Mitte links und rechts. Arduino [5], Zahnrad [6]''' | ||
== Danksagung == | == Danksagung == | ||
Line 550: | Line 580: | ||
Auch meine Freunde, welche am Korrekturlesen der Dokumentation beteiligt waren, möchte ich hier erwähnen. (Katharina, Norman, Maximilian, Christian und Alex) | Auch meine Freunde, welche am Korrekturlesen der Dokumentation beteiligt waren, möchte ich hier erwähnen. (Katharina, Norman, Maximilian, Christian und Alex) | ||
Für genauere Betrachtung bitte im Ordner “paper & documentation/pictures” die Datei “Bild 20.png” öffnen u/o drucken. | Für genauere Betrachtung bitte im Ordner “paper & documentation/pictures” die Datei “Bild 20.png” öffnen u/o drucken. | ||
== REFERENZEN == | == REFERENZEN == |
edits