117
edits
No edit summary |
|||
(42 intermediate revisions by the same user not shown) | |||
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 109: | Line 120: | ||
float one_gearrotation_cycle_count = gear_factor * one_motorrotation_cycle_count; | float one_gearrotation_cycle_count = gear_factor * one_motorrotation_cycle_count; | ||
float one_gearrotation_step_count = one_gearrotation_cycle_count * one_cycle_step_count; | float one_gearrotation_step_count = one_gearrotation_cycle_count * one_cycle_step_count; | ||
int full_track_minutes = 0; | int full_track_minutes = 0; | ||
float rest_track_seconds = 5; | float rest_track_seconds = 5; | ||
float track_length_in_seconds = full_track_minutes * 60 + rest_track_seconds; | float track_length_in_seconds = full_track_minutes * 60 + rest_track_seconds; | ||
float track_length_in_milliseconds = track_length_in_seconds * 1000; | float track_length_in_milliseconds = track_length_in_seconds * 1000; | ||
float motor_power_time_in_mikroseconds = track_length_in_milliseconds / (one_gearrotation_cycle_count * one_cycle_step_count) * 1000; | float motor_power_time_in_mikroseconds = track_length_in_milliseconds / (one_gearrotation_cycle_count * one_cycle_step_count) * 1000; | ||
short i = 0; | short i = 0; | ||
bool break_ = true; // "Bremse": Bei schneller Drehung dreht der Motor nach, sobald keine Spannung mehr anliegt. Die Bremse soll dies verhindern. | bool break_ = true; // "Bremse": Bei schneller Drehung dreht der Motor nach, sobald keine Spannung mehr anliegt. Die Bremse soll dies verhindern. | ||
void setup() { | void setup() { | ||
pinMode(2, OUTPUT); | pinMode(2, OUTPUT); | ||
Line 123: | Line 138: | ||
pinMode(6, OUTPUT); | pinMode(6, OUTPUT); | ||
pinMode(7, OUTPUT); | pinMode(7, OUTPUT); | ||
Serial.begin(9600); | Serial.begin(9600); | ||
digitalWrite(2, LOW); | digitalWrite(2, LOW); | ||
digitalWrite(3, LOW); | digitalWrite(3, LOW); | ||
Line 132: | Line 150: | ||
Serial.println("motor_power_time"); | Serial.println("motor_power_time"); | ||
Serial.println(motor_power_time_in_mikroseconds); | Serial.println(motor_power_time_in_mikroseconds); | ||
Serial.println("track_length_in_milliseconds"); | Serial.println("track_length_in_milliseconds"); | ||
Serial.println(track_length_in_milliseconds); | Serial.println(track_length_in_milliseconds); | ||
Serial.println("one_gearrotation_cycle_count"); | Serial.println("one_gearrotation_cycle_count"); | ||
Serial.println(one_gearrotation_cycle_count); | Serial.println(one_gearrotation_cycle_count); | ||
Serial.println("one_cycle_step_count"); | Serial.println("one_cycle_step_count"); | ||
Serial.println(one_cycle_step_count); | Serial.println(one_cycle_step_count); | ||
Serial.println("one_gearrotation_cycle_count"); | Serial.println("one_gearrotation_cycle_count"); | ||
Serial.println(one_gearrotation_cycle_count); | Serial.println(one_gearrotation_cycle_count); | ||
Serial.println("one_gearrotation_cycle_count"); | Serial.println("one_gearrotation_cycle_count"); | ||
Serial.println(motor_power_time_in_mikroseconds); | Serial.println(motor_power_time_in_mikroseconds); | ||
} | } | ||
void loop() { | void loop() { | ||
while(i < one_gearrotation_cycle_count) | while(i < one_gearrotation_cycle_count) | ||
{ | { | ||
Line 167: | Line 193: | ||
i++; | i++; | ||
} | } | ||
if(break_ == true) //Halte den Motor um ein ausrollen zu verhindern. | if(break_ == true) //Halte den Motor um ein ausrollen zu verhindern. | ||
{ | { | ||
Line 178: | Line 205: | ||
} | } | ||
</source> | </source> | ||
== Medium == | == Medium == | ||
Line 192: | Line 220: | ||
der Plattenspieluhr. Mein Motor dreht ein großes Zahnrad, | der Plattenspieluhr. Mein Motor dreht ein großes Zahnrad, | ||
auf welches perfekt eine meiner Hartpapprollen draufpasst. | auf welches perfekt eine meiner Hartpapprollen draufpasst. | ||
Bild 6: Papprolle auf Zahnrad. | |||
[[File:Rotor.jpg|600px]] | |||
'''Bild 6: Papprolle auf Zahnrad.''' | |||
Ich muss hinzufügen, dass ich zwei Drucker zerlegt habe | Ich muss hinzufügen, dass ich zwei Drucker zerlegt habe | ||
und somit zwei Stative für die Papprolle habe. Dadurch | und somit zwei Stative für die Papprolle habe. Dadurch | ||
Line 204: | Line 237: | ||
'''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 257: | Line 291: | ||
'''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 327: | ||
'''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 300: | Line 336: | ||
'''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 316: | Line 353: | ||
Lichtschranke habe ich das Kurze Programm | Lichtschranke habe ich das Kurze Programm | ||
„opto.ino“ in dem „opto“-Ordner. | „opto.ino“ in dem „opto“-Ordner. | ||
== Code Sensor == | |||
<source lang=c> | |||
bool opto = false; //Variable für die Reaktion des Fototransistors auf Infrarotes Licht. 1 = Infraroticht erreicht den Fototransistor; 2 = kein Infrarotlicht | |||
//float opto = 0; | |||
int opto_pin = 50; | |||
int analog_opto_pin = 0; | |||
int sound_pin = 51; | |||
void setup() { | |||
Serial.begin(9600); | |||
pinMode(opto_pin, INPUT); | |||
pinMode(sound_pin, OUTPUT); | |||
} | |||
void loop() { | |||
opto = digitalRead(opto_pin); | |||
//opto = analogRead(analog_opto_pin); | |||
//opto = 5*opto/1023; | |||
Serial.println(opto); //Ausgabe | |||
if(opto == 1) //Infrarotlicht erreicht den Fototransistor | |||
{ | |||
tone(sound_pin, 432); //Spiele Ton auf Pin 52 mit 440 Hz. | |||
} | |||
else | |||
{ | |||
noTone(sound_pin); //Beende den Ton | |||
} | |||
} | |||
</source> | |||
== Klangerzeugung == | == Klangerzeugung == | ||
Line 329: | Line 399: | ||
Signals. | Signals. | ||
=== Direct Digital Syntesis [1] === | === Direct Digital Syntesis '''[1]''' === | ||
Mittels der Pulsweitenmodulation und dem timer interrupt | Mittels der Pulsweitenmodulation und dem timer interrupt | ||
Line 340: | Line 410: | ||
Samples spielt hier eine sehr große Rolle. | Samples spielt hier eine sehr große Rolle. | ||
Da die meisten Arduino Typen eine Taktfrequenz von | Da die meisten Arduino Typen eine Taktfrequenz von | ||
16MHz (Nano 12 MHz, Due 84 MHz,)[2,3] gewährleisten, | 16MHz (Nano 12 MHz, Due 84 MHz,)'''[2,3]''' gewährleisten, | ||
lässt sich mühelos ein hoher Sinus-Ton erzeugen. Bei | lässt sich mühelos ein hoher Sinus-Ton erzeugen. Bei | ||
8 Bit pro Sekunde und einer Taktfrequenz von 16MHz | 8 Bit pro Sekunde und einer Taktfrequenz von 16MHz | ||
Line 354: | Line 424: | ||
zu entscheiden. | zu entscheiden. | ||
=== Digital-to-Analog-Converter (R_2R-Ledder) [4] === | === Digital-to-Analog-Converter (R_2R-Ledder) '''[4]''' === | ||
Um ein analoges Signal mit noch höherer Frequenz generieren | Um ein analoges Signal mit noch höherer Frequenz generieren | ||
Line 374: | Line 444: | ||
'''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 393: | Line 464: | ||
'''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 | '''Bild 13: Gelötete Version der R_2R-Leiter. Von linksnach rechts, unten LSB bis HSB, oben OUTP und GND''' | ||
Überprüft man das Ausgabesignal an einem Oszilloskop | Überprüft man das Ausgabesignal an einem Oszilloskop | ||
und verbindet nur vereinzelt Bits mit dem Mikrocontroller, | und verbindet nur vereinzelt Bits mit dem Mikrocontroller, | ||
Line 408: | Line 480: | ||
'''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 433: | Line 509: | ||
[[File:Bild 18.BMP|600px]] | [[File:Bild 18.BMP|600px]] | ||
'''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''' | ||
Bei einem Aufbau wie im Bild 13 sollte ein „schöneres“ | Bei einem Aufbau wie im Bild 13 sollte ein „schöneres“ | ||
Sinussignal zu betrachten sein. | Sinussignal zu betrachten sein. | ||
Line 459: | Line 536: | ||
einen Digital-Pin des Arduino verwenden. Leider sind die | einen Digital-Pin des Arduino verwenden. Leider sind die | ||
Pins immer begrenzt. Gerade bei kleineren Modellen | Pins immer begrenzt. Gerade bei kleineren Modellen | ||
macht sich das stark bemerkbar. Ich die Idee mit einem | macht sich das stark bemerkbar. Ich hatte die Idee mit einem | ||
Analog-Pin mehrere Schalter zu erfassen. Dies macht jedoch | Analog-Pin mehrere Schalter zu erfassen. Dies macht jedoch | ||
nur Sinn, wenn man genau bestimmen kann, welcher | nur Sinn, wenn man genau bestimmen kann, welcher | ||
Line 492: | Line 569: | ||
In dem Ordner „paper & documentation/videos“ sind | In dem Ordner „paper & documentation/videos“ sind | ||
Testvideos des Motors und der Gabellichtschranke zu finden. | Testvideos des Motors und der Gabellichtschranke zu finden. | ||
Ein Programm | Ein Programm, welches dafür sorgt, | ||
dass sich die Spieluhr selbstständig in die Startposition | dass sich die Spieluhr selbstständig in die Startposition | ||
ausrichtet ist sehr wünschenswert und sollte nicht all zu | ausrichtet ist sehr wünschenswert und sollte nicht all zu | ||
Line 516: | Line 593: | ||
[[File:Bild 19.jpg|600px]] | [[File:Bild 19.jpg|600px]] | ||
'''Bild 19: Alle Schaltungen: Arduino Mega unten, R_2RNetzwerk''' | '''Bild 19: Alle Schaltungen: Arduino Mega unten, R_2RNetzwerk links, Schrittmotor-Ansteuerung Mitte rechts, Messschaltung für die Lichtschranke in der Mitte''' | ||
Zu guter Letzt stelle ich das Endresultat als Schaltbild | Zu guter Letzt stelle ich das Endresultat als Schaltbild | ||
vor. Der Code für das vollständige Projekt findet sich im | vor. Der Code für das vollständige Projekt findet sich im | ||
Line 534: | Line 611: | ||
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 == | ||
[1] Joe Marshall “Arduino music using Direct Digital Synthesis” Human computer interaction research software development and performance, Date un-known. http://www.cs.nott.ac.uk/~pszjm2/?p=674 | |||
[2] Arduino und mehr “Arduino – Vergleich Uno Nano Mega”, (21.12. | [1] Joe Marshall “Arduino music using Direct Digital Synthesis” Human computer interaction research software development and performance, Date un-known. | ||
http://www.robodino.de/2011/12/arduino-vergleich-uno-nano-mega.html | |||
<-http://www.cs.nott.ac.uk/~pszjm2/?p=674-> | |||
[2] Arduino und mehr “Arduino – Vergleich Uno Nano Mega”, (21.12.201 ) | |||
<-http://www.robodino.de/2011/12/arduino-vergleich-uno-nano-mega.html-> | |||
[3] Philip Steffan, Heise online Make:, „Angetestet: Ar-duino Due“, (26.11.2012) | [3] Philip Steffan, Heise online Make:, „Angetestet: Ar-duino Due“, (26.11.2012) | ||
http://www.heise.de/make/artikel/Angetestet-Ar-duino-Due-1756123.html | <-http://www.heise.de/make/artikel/Angetestet-Ar-duino-Due-1756123.html-> | ||
[4] bitluni's lab, “DAC using R-2R resistor ladder,, Youtube (30.01.2014) | |||
[5] Grafik Arduino Mega 2560 Pins https://arduino-info.wi-kispaces.com/file/view/Mega2-900.jpg/421499040/Mega2-900.jpg | [4] bitluni's lab, “DAC using R-2R resistor ladder,, Youtube (30.01.2014) | ||
<-https://www.youtube.com/watch?v=_tABS7AX8D8-> | |||
[5] Grafik Arduino Mega 2560 Pins | |||
<-https://arduino-info.wi-kispaces.com/file/view/Mega2-900.jpg/421499040/Mega2-900.jpg-> | |||
[6] Grafik Zahnrad | [6] Grafik Zahnrad | ||
https://pixabay.com/static/up-loads/photo/2014/09/30/15/15/gears-467261_960_720.png | <-https://pixabay.com/static/up-loads/photo/2014/09/30/15/15/gears-467261_960_720.png-> |
edits