===== Programmieren Workshop Teil 2 - Mai 2024 ===== Die Aufzeichnung ist vom 03.05.2024 und umfasst die Themen: * **Arduino Programmierung Teil 2** * **__ACHTUNG:__** * **Teil 2 des Workshop beginnt ab Videozeit 03:28:51 bis Ende und wird am Anfang des Videos fortgesetzt.** * **Eine Wiederholung von Teil 1 ist ab Videozeit 02:29:26 bis Beginn Teil 2 zu sehen.** * [[https://www.stummiforum.de/t224702f7-MOBA-LED-LIB-ARDUINO-PROGRAMMIER-SEMINAR-Termin-fuer-Teil-kommt-wieder-rechtzeitig.html#msg2677635 |Link zum erstellten Programm des Workshops]] [[#video|direkt zum Video]] ===== Inhaltsverzeichnis ===== Bei diesem Stammtisch handelt es sich um einfache Einführung in die Programmierung eines Arduino mit der Arduino IDE und der MLL Hauptplatine mit einem Arduino NANO. \\ Die angegebenen Zeiten können im Youtube Video mittels "Transkript anzeigen" leicht gefunden werden.\\ \\ Dies dient zur Orientierung und leichterem Wiederfinden von speziellen Fragen und Beschreibungen. \\ \\ Links in der Beschreibung zeigen den Weg zu weiteren, zusätzlichen Informationen zu den Themen im Wiki bzw. im Stummiforum (Ohne Anspruch auf Vollständigkeit). \\ Weitere Informationen und Anleitungen können auch mit der Suchfunktion im aktuellen MLL-Almanach generiert werden (PDF-Zusammenfassung aller MLL-Stummiforum Beiträge) \\ [[https://www.dropbox.com/s/f32wux0hrqrhxqq/aktueller%20MLL%20Almanac.pdf?dl=1|Download aktueller MLL-ALMANAC]] ^ Zeitindex ^ Inhalt ^ |00:00:00|**Arduino IDE Grundwissen Wiederholung Teil 1 ab Videozeit 02:29:26. Workshop Teil 2 beginnt bei Videozeit 03:28:51 bis zum Ende und von 00:00:00 bis Wiederholung des Teil 1. Programmieren mit der MLL-Hauptplatine und Arduino Nano.** | |00:00:00|Hilfeseite [[https://www.arduino.cc/reference/de/]]. | |00:00:00|**FORTSETZUNG der Aufzeichnung vom Ende des Videos 04:23:12 HARDIs Rechner ist gebootet und das Magnetspulen-Beispiel hochgeladen. Einstellen des seriellen Monitors mit der richtigen BaudRate.**| |00:04:35|Umschalten eines Magnetspulenantriebs mit dem Taster (if und else Abfragen). | |00:19:53|Erweiterung damit die Magnetspule nur 500 Millisek Strom bekommt (Start-Variablen, millis). | |00:23:01|Erklärung einer Fehlermeldung beim Hochladen des Sketches (geschweifte Klammer zu viel). | |00:26:41|Start Variable deklarieren und mit if abfragen. | |00:39:04|Programmierung mit einer void Funktion "verschönern". | |00:45:36|Stellung der Weiche nicht mit einer LED sondern mit einer Variable abfragen. | |00:51:18|**Programmierung von Servos.** | |00:51:39|_Kurze Frage zum Zeitpunkt der Definition von Variablen (Gültigkeitsbereich). | |00:55:30|Servosteuerung mit Bibliotheken - Servo Beispiel mit der MobaTools.h und MLL Hauptplatine. | |01:06:35|Zwischenfrage zu einem Kompilierungs Fehler bei einem Teilnehmer. void loop Funktion ist zweimal definiert und die Groß/Kleinschreibung beachten. | |01:12:55|Weiter mit dem Servo Beispiel. | |01:16:47|Klassen Variablen. | |01:17:42|mit #include Bibliotheken einbinden. | |01:24:48|ServoZucken beim Einschalten. Erklärung dazu. | |01:29:35|_Zwischenfrage zu Befehlen aus Bibliotheken und den damit verbundenen Speicherbedarf. | |01:33:46|Weiter mit dem Servo Beispiel. Speichern der letzten Servoposition im EEPROM des Arduinos. | |02:11:00|Ende Servo. | |02:16:08|_Beispiel eines umfangreichen ServoProgramms mit mehr Kommentaren. Handschuhklappen öffnen mit unterschiedlicher Geschwindigkeit. | | |Erklärungen zur Programmierung des langsamen Beginns und dem langsamen Abbremsen mit einer halben Sinuskurve und mathematischer Berechnungen. | |02:29:26|**Wiederholung des letzten Projektes. Fragen bzw. Wiederholung der einzelnen Punkte im Programm.** | |02:30:12|Unterschied zwischen Variablen, Konstanten und Definitionen (var, const, #define). Fragen zum Programm bzw. Wiederholung der einzelnen Punkte im Programm. | |02:31:50|void setup. | |02:32:58|unsigned long variablen und millis (Startzeit) Variablen Typen. | |02:47:09|reset im Programm über die WatchDog Funktion. | |02:49:58|void Funktion mit lokalen Variablen. Ideologie sollte sein: Eine Funktion sollte auf eine Bildschirmseite passen. | |02:55:50|Befehle: digitalWrite und digitalRead mit Ausrufezeichen. | |03:05:16|Befehl: random = Zufallsbefehl. | |03:05:58|__Trick zur Verwendung von MilliSekunden oder Sekunden.__ Wird auch in der MLL verwendet. Viele #defines werden verwendet. | |03:15:26|weiter mit random (Zufall programmieren). | |03:19:12|randomSeed. | | |------------------------------------------------- | |03:28:51|**__Beginn PROGRAMMIER WORKSHOP TEIL 2 - Neues Projekt: LEDs an/aus schalten mit Taster, Magnetspulenantriebe und Servos programmieren.__** | |03:36:39|Erklärungen zur Verwendung von Taster ( Pull_Up Widerstand,). | |03:55:26|Taster zum Schalter umfunktionieren mit einer boolschen Variablen (Prellen, Aufwärts/Abwärts Flanken etc.). Abfrage mit If Anweisung mit == gleichgleich, Alter Wert wird zu neuem Wert, delay(). | |04:09:16|Während dem Hochladen des Sketches, Diskussion über Hardis Computer. | |04:13:54|Sketch ist hochgeladen und der Taster schaltet die LED ein und bei nochmaligen Drücken wieder aus. | |04:14:19|MärklinWeiche umschalten mit dem Status der LED. | |04:17:13|_Frage zum Umschalten mit Alt_Tast. Woher kommt der Wert Null? Hilfe mit dem Serial.println Befehl. | |04:23:12|**HARDIs RECHNER wird neu gebootet und die FORTSETZUNG der Aufzeichnung des Beispiels beginnt bei 00:00:00 in diesem Video.** | ===== Video ===== {{youtube>MTHaDFA6cus?}} ---- ====== alle Stammtischvideos ====== [[stammtische:videos:uebersicht|zurück zur Übersicht]]