Jukebox im Seriellen Monitor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | #include “PlayRtttl.hpp” #define Lautsprecher 7 // Interpret und Titel als String String TitelSong; char TeDeum[] = “Charpentier/Te_Deum:d=4,o=6,b=63:8c5,8f5,16f5,16g5,8a5,8f5,c,8a5,8a5,8a_5,16c,16a_5,16a5,16a_5,8c,16g5,16f5,16g5,16a5,8g5,8c5,8f5,16f5,16g5,8a5,8f5,c,8a5,8a5,16a_5,16c,16a5,16a_5,g5,16f5,2f5”; char FuerElise[] = “Beethoven/Für_Elise:d=8,o=5,b=125:32p,e6,d#6,e6,d#6,e6,b,d6,c6,4a.,32p,c,e,a,4b.,32p,e,g#,b,4c.6,32p,e,e6,d#6,e6,d#6,e6,b,d6,c6,4a.,32p,c,e,a,4b.,32p,d,c6,b,2a”; char FuenfteSymphonie[] = “Beethoven/5._Symphonie:d=4,o=5,b=180:8f,8f,8f,1c#,8p,8d#,8d#,8d#,1c,8p,8f,8f,8f,8c#,8f#,8f#,8f#,8f,8c#6,8c#6,8c#6,2a#,8p,8f,8f,8f,8c,8f#,8f#,8f#,8f,8d#6,8d#6,8d#6,1c6”; char OdeandieFreude[] = “Beethoven/Ode_an_die_Freude#:d=4,o=6,b=100:a5,a5,a_5,c,c,a_5,a5,g5,f5,f5,g5,a5,a.5,8g5,2g5,”; char Bolero[] = “Ravel/Bolero:d=4,o=5,b=80:c6,8c6,16b,16c6,16d6,16c6,16b,16a,8c6,16c6,16a,c6,8c6,16b,16c6,16a,16g,16e,16f,2g,16g,16f,16e,16d,16e,16f,16g,16a,g,g,”; void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) { ; } delay(500); // Menü im Seriellen Monitor Serial.println(“1: Te Deum”); Serial.println(“2: Für Elise”); Serial.println(“3: Ode an die Freude”); Serial.println(“4: Bolero”); Serial.println(“5: Titel anzeigen”); Serial.println(“——————–”); } void loop() { // auf serielle Eingabe warten while (Serial.available() > 0) { // Eingabe im Seriellen Monitor lesen char Zeichen = Serial.read(); if (Zeichen == ‘1’) { // char-Array des Titels in String umwandeln TitelSong = String(TeDeum); // Funktion aufrufen, Interpret/Titel extrahieren ZeigeTitel(); // Titel spielen playRtttlBlocking(Lautsprecher, TeDeum); } if (Zeichen == ‘2’) { // char-Array des Titels in String umwandeln TitelSong = String(FuerElise); // Funktion aufrufen, Interpret/Titel extrahieren ZeigeTitel(); // Titel spielen playRtttlBlocking(Lautsprecher, FuerElise); } if (Zeichen == ‘3’) { // char-Array des Titels in String umwandeln TitelSong = String(OdeandieFreude); // Funktion aufrufen, Interpret/Titel extrahieren ZeigeTitel(); // Titel spielen playRtttlBlocking(Lautsprecher, OdeandieFreude); } if (Zeichen == ‘4’) { // char-Array des Titels in String umwandeln TitelSong = String(Bolero); // Funktion aufrufen, Interpret/Titel extrahieren ZeigeTitel(); // Titel spielen playRtttlBlocking(Lautsprecher, Bolero); } if (Zeichen == ‘5’) { // char-Array des Titels in String umwandeln TitelSong = String(FuenfteSymphonie); // Funktion aufrufen, Interpret/Titel extrahieren ZeigeTitel(); // Titel spielen playRtttlBlocking(Lautsprecher, FuenfteSymphonie); } if (Zeichen == ‘6’) { Serial.println(“1: Te Deum”); Serial.println(“2: Für Elise”); Serial.println(“3: Ode an die Freude”); Serial.println(“4: Bolero”); Serial.println(“5: 5. Symphonie”); Serial.println(“6: Titel anzeigen”); Serial.println(“——————–”); } } } void ZeigeTitel() { // Teil des Strings bis zum ersten Doppelpunkt kürzen TitelSong = TitelSong.substring(0, TitelSong.indexOf(“:”)); // _ durch leerzeichen ersetzen TitelSong.replace(“_”, ” ”); // erster Teil des Strings bis zum / -> Name des Interpreten String Interpret = TitelSong.substring(0, TitelSong.indexOf(“/”)); // zweiter Teil des Strings vom / + 1 bis zum Ende des Strings -> Name des Titels String Titel = TitelSong.substring(TitelSong.indexOf(“/”) + 1, TitelSong.length()); Serial.println(“Spiele:”); // Interpret anzeigen Serial.print(Interpret + ” ”); // Titel anzeigen Serial.println(Titel); Serial.println(“—————————”); } |
Jukebox mit Tastenpad und LCD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | #include “PlayRtttl.hpp” #include “LiquidCrystal_I2C.h” // Name des LCDs (lcd) festlegen LiquidCrystal_I2C lcd(0x27, 20, 4); #define Lautsprecher 7 // Variable für die gedrückte Taste des Tastenpads int GedrueckteTaste; String TitelSong; char TeDeum[] = “Charpentier/Te_Deum:d=4,o=5,b=63:8c,8f,16f,16g,8a,8f,c6,8a,8a,8a#,16c6,16a#,16a,16a#,8c6,16g,16f,16g,16a,8g,8c,8f,16f,16g,8a,8f,c6,8a,8a,16a#,16c6,16a,16a#,g,16f,2f”; char FuerElise[] = “Beethoven/Für_Elise:d=8,o=5,b=125:32p,e6,d#6,e6,d#6,e6,b,d6,c6,4a.,32p,c,e,a,4b.,32p,e,g#,b,4c.6,32p,e,e6,d#6,e6,d#6,e6,b,d6,c6,4a.,32p,c,e,a,4b.,32p,d,c6,b,2a”; char OdeandieFreude[] = “Beethoven/Ode_an_die_Freude:d=4,o=6,b=100:a5,a5,a_5,c,c,a_5,a5,g5,f5,f5,g5,a5,a.5,8g5,2g5,”; char Bolero[] = “Ravel/Bolero:d=4,o=5,b=80:c6,8c6,16b,16c6,16d6,16c6,16b,16a,8c6,16c6,16a,c6,8c6,16b,16c6,16a,16g,16e,16f,2g,16g,16f,16e,16d,16e,16f,16g,16a,g,g,”; void setup() { // LCD starten lcd.init(); // Hintergrundbeleuchtung einschalten lcd.backlight(); } void loop() { // Tastenpad abfragen int Analogwert = analogRead(A0); // linke Taste; switch (Analogwert) { case 0 ... 20: // char-Array des Titels in String umwandeln TitelSong = String(TeDeum); // Funktion aufrufen, Interpret/Titel extrahieren ZeigeTitel(); // Titel spielen playRtttlBlocking(Lautsprecher, TeDeum); break; // obere Taste case 30 ... 60: TitelSong = String(FuerElise); ZeigeTitel(); playRtttlBlocking(Lautsprecher, FuerElise); break; // rechte Taste case 70 ... 120: TitelSong = String(OdeandieFreude); ZeigeTitel(); playRtttlBlocking(Lautsprecher, OdeandieFreude); break; // untere Taste case 150 ... 200: TitelSong = String(Bolero); ZeigeTitel(); playRtttlBlocking(Lautsprecher, Bolero); break; // rechte äußere Taste case 300 ... 400: lcd.clear(); lcd.setCursor(0, 0); lcd.print(“1: Te Deum”); lcd.setCursor(0, 1); lcd.print(“2: F\365r Elise”); lcd.setCursor(0, 2); lcd.print(“3: Ode an die Freude”); lcd.setCursor(0, 3); lcd.print(“4: Bolero”); break; } } void ZeigeTitel() { // Teil des Strings bis zum ersten Doppelpunkt kürzen TitelSong = TitelSong.substring(0, TitelSong.indexOf(“:”)); // _ durch leerzeichen ersetzen TitelSong.replace(“_”, ” ”); // erster Teil des Strings bis zum / -> Name des Interpreten String Interpret = TitelSong.substring(0, TitelSong.indexOf(“/”)); // zweiter Teil des Strings vom / + 1 bis zum Ende des Strings -> Name des Titels String Titel = TitelSong.substring(TitelSong.indexOf(“/”) + 1, TitelSong.length()); // Titel auf dem LCD anzeigen lcd.clear(); lcd.setCursor(0, 0); lcd.print(“Spiele:”); lcd.setCursor(0, 1); lcd.print(Interpret); lcd.setCursor(0, 2); lcd.print(Titel); } |
Letzte Aktualisierung: