| Leuchtende SchallplatteLichteffekte mit rotierender Schallplatte und Leuchtdioden.Um einige visuelle Effekte mit Leuchtdioden zu erzeugen, werden in diesem Experiment zehn Leuchtdioden auf einer Schallplatte angebracht. Zum Ansteuern
der Leuchtdioden kommt der kleine Mikrocontroller Arduino Nano zum Einsatz. Er wird ebenfalls auf der Schallplatte montiert. Das so zusammengestellte Schallplatten-Gespann
wird anschließend mit einer 9V-Batterie ergänzt, die für Spannungsversorgung der Komponenten sorgt.
MikrocontrollerDie Aufgabe des Mikrocontrollers in dem Versuch besteht lediglich darin, die Leuchtdioden laufend ein- und auszuschalten. Trotz, dass die Aufgabe äußerst simpel ist, lassen sich auf diesem Weg bei einer rotierenden Schallplatte durchaus interessante visuelle Effekte erzeugen. ArduinoMotorDie Aufgabe, eine Schallplatte zum Drehen zu bringen, könnte beliebiger Motor übernehmen. In diesem Fall übernimmt die Aufgabe der 12V Gleichstrommotor JGB37 mit Getriebe. Um eine höhere Drehzahl zu erreichen, kommt hier eine Kombination aus Zahnrädern und Zahnriemen zum Einsatz. Gleichstrommotor JGB37MotortreiberDer Motor wird mit einem Geschwindigkeitsregler, der für Belastung bis zu 20 A ausgelegt ist, angesteuert. Der Treiber bedient sich dabei der PWM-Technik.
Für Testzwecke kann der Motor an eine beliebige 12V Quelle wie z.B. einen 12V – Netzteil angeschlossen werden. SchaltplanSchaltplan (Schallplatte-Komponenten) Schaltplan (Motorsteuerung) TestschaltungSchallplatte Frontansicht Schallplatte Rückansicht Testanordnung Programm (Sketch)// ***********************************************************************************// Leuchtende Schallplatte: Gleichstrommotor, Arduino // Gleichstrommotor JGB37 mit Getriebe, PWM-Geschwindigkeitsregler // Arduino Nano, IDE 2.1.1 // *********************************************************************************** int LED [] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; int B [7][10] = { { 1,1,1,1,1,1,1,1,1,1 }, { 1,0,0,0,1,0,0,0,0,1 }, { 1,0,0,0,1,0,0,0,0,1 }, { 1,0,0,0,1,0,0,0,0,1 }, { 1,0,0,1,0,1,0,0,0,1 }, { 0,1,1,0,0,0,1,1,1,0 }, { 0,0,0,0,0,0,0,0,0,0 }, }; // *********************************************************************************** void setup() { for (int i=0; i<10; i++) { pinMode (LED [i], OUTPUT); } delay(5000); } // ----------------------------------------------------------------------------------- void LED_EIN (int LED_Nummer) { digitalWrite (LED [LED_Nummer], HIGH); } // ----------------------------------------------------------------------------------- void LED_AUS (int LED_Nummer) { digitalWrite (LED [LED_Nummer], LOW); } void Alles_Aus () { for (int i=2; i<12; i++) { LED_AUS(i); } delay (2000); } // ----------------------------------------------------------------------------------- // Alle LEDs Ein --------------------------------------------------------------------- void Sequenz_1 () { for (int i=2; i<12; i++) { LED_EIN(i); } delay (5000); } // ----------------------------------------------------------------------------------- // Via Zufall einzelne LEDs umschalten ----------------------------------------------- void Sequenz_2 () { for (int i=1; i<500; i++) { int Zufall_LED = random(10); if (digitalRead (LED[Zufall_LED]) == LOW) { LED_EIN(Zufall_LED); } else { LED_AUS(Zufall_LED); } delay (20); } } // ----------------------------------------------------------------------------------- // Via Zufall einzelne LEDs für kurze Zeit Ein und Aus ------------------------------- void Sequenz_3 () { for (int i=1; i<1500; i++) { int Zufall_LED = random(10); LED_EIN(Zufall_LED); delay (3); LED_AUS(Zufall_LED); delay (2); } } // ----------------------------------------------------------------------------------- // LEDs zeitlich verzögert einzeln Ein und Aus --------------------------------------- void Sequenz_4 () { for (int i=1; i<100; i++) { for (int j=0; j<10; j++) { LED_EIN(j); delay (5); } for (int j=0; j<10; j++) { LED_AUS(j); delay (5); } } } // ----------------------------------------------------------------------------------- // LEDs zeitlich verzögert einzeln Ein und Aus --------------------------------------- void Sequenz_5 () { for (int i=1; i<100; i++) { for (int j=0; j<10; j++) { LED_EIN(j); } delay (10); for (int j=0; j<10; j++) { LED_AUS(j); delay (5); } } } // ----------------------------------------------------------------------------------- // Buchstabe B ----------------------------------------------------------------------- void Sequenz_6 () { for (int i=1; i<100; i++) { for (int j=0; j<7; j++) { for (int k=0; k<10; k++) { if ( B[j][k] == 1 ) { LED_EIN(k); } else { LED_AUS(k); } } delay (1); } delay (160); } } // *********************************************************************************** void loop() { Sequenz_1 (); Alles_Aus (); Sequenz_2 (); Alles_Aus (); Sequenz_3 (); Alles_Aus (); Sequenz_4 (); Alles_Aus (); Sequenz_5 (); Alles_Aus (); Sequenz_6 (); Alles_Aus (); } // *********************************************************************************** KurzvideoKurzvideo Weitere Themen:
|