meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
guide:itt11:microcontrollerprogrammierung_mit_tinkercad [2022/12/28 16:41] – angelegt juergenhaasguide:itt11:microcontrollerprogrammierung_mit_tinkercad [2024/12/15 17:27] (aktuell) juergenhaas
Zeile 1: Zeile 1:
 ====== Microcontrollerprogrammierung mit Tinkercad ====== ====== Microcontrollerprogrammierung mit Tinkercad ======
 +
 +{{ :guide:itt11:symbolbild_tinkercad.png?nolink&200|}}
  
 Bevor du beginnst mit den echten Microcontrollern zu arbeiten, solltest du ein wenig Erfahrung mit Hilfe der Simulation Tinkercad sammeln. Hierbei handelt es sich um eine Online-Plattform, welche es dir ermöglicht, microcontrollergesteuerte Schaltungen virtuell aufzubauen, zu programmieren und zu testen. Bevor du beginnst mit den echten Microcontrollern zu arbeiten, solltest du ein wenig Erfahrung mit Hilfe der Simulation Tinkercad sammeln. Hierbei handelt es sich um eine Online-Plattform, welche es dir ermöglicht, microcontrollergesteuerte Schaltungen virtuell aufzubauen, zu programmieren und zu testen.
  
-===== Der Einstieg in Tinkercad =====+ 
 +===== Empfohlene Lernstrategie ===== 
 +==== Der Einstieg in Tinkercad ====
  
 Das Dokument {{ :guide:itt11:tinkercad_tipps.pdf | Tinkercad-Tipps.pdf}} gibt dir Hilfestellung bei deinem ersten Kontakt mit Tinkercad. Lies es dir durch, erstelle einen eigenen Account und versuche deinen ersten Schaltkreis zu erstellen. Das Dokument {{ :guide:itt11:tinkercad_tipps.pdf | Tinkercad-Tipps.pdf}} gibt dir Hilfestellung bei deinem ersten Kontakt mit Tinkercad. Lies es dir durch, erstelle einen eigenen Account und versuche deinen ersten Schaltkreis zu erstellen.
  
-===== Tinkercad-Erfahrungen sammeln =====+==== Tinkercad-Erfahrungen sammeln ====
  
 Nachdem du dich mit der Bedienung von Tinkercad vertraut gemacht hast, kannst du dich an einige Aufgaben wagen, die dir dabei helfen sollen, ein wenig Erfahrung für die Microcontrollerprogrammierung zu sammeln. Nachdem du dich mit der Bedienung von Tinkercad vertraut gemacht hast, kannst du dich an einige Aufgaben wagen, die dir dabei helfen sollen, ein wenig Erfahrung für die Microcontrollerprogrammierung zu sammeln.
  
-Das Dokument {{ :guide:itt11:quickstart_tinkercad_und_arduino_-_schuelerversion.pdf | Quickstart Tinkercad und Arduino - Schülerversion.pdf}} enthält insgesamt 11 zum Teil aufeinander aufbauende Aufgaben:+Das Dokument {{ :guide:itt11:quickstart_tinkercad_und_arduino_v1.1_-_schuelerversion.pdf | Quickstart Tinkercad und Arduino v1.1 - Schülerversion.pdf}} enthält insgesamt 11 zum Teil aufeinander aufbauende Aufgaben:
  
   - Elektrische Grundlagen   - Elektrische Grundlagen
Zeile 18: Zeile 22:
   - Serieller Monitor   - Serieller Monitor
   - Ampelsteuerung   - Ampelsteuerung
-  - Einlesen von MEsserten: Potentiometer+  - Einlesen von Messwerten: Potentiometer
   - Einlesen von Messwerten: Photowiderstand   - Einlesen von Messwerten: Photowiderstand
   - Einlesen von Messwerten: Temperatursensor   - Einlesen von Messwerten: Temperatursensor
Zeile 24: Zeile 28:
   - Steuerung eines Nicht-binären Aktors   - Steuerung eines Nicht-binären Aktors
   - Visuelle Ausgabe: LCD-Display   - Visuelle Ausgabe: LCD-Display
 +  - Farbdarstellung mit Hilfe einer Bibliothek: NeoPixel RGB LEDs
  
 Im Anhang des Dokuments sind zu einigen Aufgaben Codebeispiele enthalten. Diese findest du auch weiter unten auf dieser Seite. Versuche nach und nach alle Aufgaben zu lösen. Im Anhang des Dokuments sind zu einigen Aufgaben Codebeispiele enthalten. Diese findest du auch weiter unten auf dieser Seite. Versuche nach und nach alle Aufgaben zu lösen.
  
-===== Hinweise und Hilfsmittel =====+Falls dir dieser Einstieg zu schwierig fällt, kannst du zuvor auch die unten verlinkten //Anfängerübungen// durcharbeiten. Beachte dabei, dass diese zusätzliche Zeit in Anspruch nehmen und du wahrscheinlich auch Zeit außerhalb der Unterrichtsstunden aufwenden musst, um am Ball zu bleiben. 
 + 
 +==== Hinweise und Hilfsmittel ====
  
 Die Programmierung des Arduino-Microcontrollers und der ESP-Microcontroller erfolgt in der Sprache C++, auch wenn die Dateiendung ''.ino'' lautet. Für viele Aufgaben gibt es spezifische Funktionen, welche in der Arduino-Referenz dokumentiert sind. Die Programmierung des Arduino-Microcontrollers und der ESP-Microcontroller erfolgt in der Sprache C++, auch wenn die Dateiendung ''.ino'' lautet. Für viele Aufgaben gibt es spezifische Funktionen, welche in der Arduino-Referenz dokumentiert sind.
   * Die {{ https://www.arduino.cc/reference/en/ | Arduino-Referenz }} sollte zum Nachschlagen stets griffbereit sein.   * Die {{ https://www.arduino.cc/reference/en/ | Arduino-Referenz }} sollte zum Nachschlagen stets griffbereit sein.
-  * Die Programmierkenntnisse, die du in deiner bisherigen Ausbildungszeit erwerben konntest, sollten eigentlich ausreichend sein um einfachen C++-Code unter Verwendung von Vorlagen erstellen oder vorhandenen Code nach deinen Bedürfnissen anpassen zu können. Falls du dennoch solidere Grundlagen haben möchtest, kannst du dieses {{ https://www.arduino.cc/reference/en/ | interaktive C++-Tutorial }} versuchen. +  * Die Programmierkenntnisse, die du in deiner bisherigen Ausbildungszeit erwerben konntest, sollten eigentlich ausreichend seinum einfachen C++-Code unter Verwendung von Vorlagen erstellen oder vorhandenen Code nach deinen Bedürfnissen anpassen zu können. Falls du dennoch solidere Grundlagen haben möchtest, kannst du dieses {{ https://www.learn-cpp.org/ | interaktive C++-Tutorial }} versuchen.
-  *  +
- +
- +
- +
-===== Codebeispiele für die Tinkercad-Quickstart-Aufgaben ===== +
- +
-==== Codebeispiel zu 3. ==== +
- +
-<file cpp codebepspiel_3.cpp> +
-#define LED_EXTERN 2 +
- +
-void setup() +
-+
- pinMode(LED_BUILTIN, OUTPUT); +
- pinMode(LED_EXTERN, OUTPUT); +
- digitalWrite(LED_EXTERN, LOW); +
-+
- +
-void loop() +
-+
- digitalWrite(LED_BUILTIN, HIGH); +
- digitalWrite(LED_EXTERN, HIGH); +
- delay(1000); // Wait for 1000 millisecond(s) +
- digitalWrite(LED_BUILTIN, LOW); +
- digitalWrite(LED_EXTERN, LOW); +
- delay(1000); // Wait for 1000 millisecond(s) +
-+
-</file> +
- +
- +
-==== Codebeispiel zu 4. ===== +
- +
-<file cpp codebeispiel_4.cpp> +
-void setup() +
-+
- pinMode(LED_BUILTIN, OUTPUT); +
- // Serielle Ausgabe mit 115200 Baud starten +
- Serial.begin(115200); +
-+
- +
-void loop() +
-+
- digitalWrite(LED_BUILTIN, HIGH); +
- Serial.println("LED ist an"); +
- delay(1000); // Wait for 1000 millisecond(s) +
- digitalWrite(LED_BUILTIN, LOW); +
- Serial.println("LED ist aus"); +
- delay(1000); // Wait for 1000 millisecond(s) +
-+
-</file> +
- +
-==== Codebeispiel zu 6. ==== +
- +
-<file cpp codebeispiel_6.cpp> +
-#define POTIPIN A0 +
- +
-void setup() +
-+
- Serial.begin(115200); +
-+
- +
-void loop() +
-+
- Serial.println(analogRead(POTIPIN)); +
- delay(100); +
-+
-</file> +
- +
-==== Codebeispiel zu 9. ==== +
- +
-<file cpp codebeispiel_9.cpp> +
-#define PIN_TRIGGER 13 +
-#define PIN_ECHO 12 +
-#define SENSOR_MAX_RANGE 300 +
-unsigned long time_of_flight; +
-unsigned int distance; +
- +
-void setup() +
-+
- Serial.begin(115200); +
- pinMode(PIN_TRIGGER, OUTPUT); +
- pinMode(PIN_ECHO, INPUT); +
-+
- +
-void loop() +
-+
- // 345m/s, Hin- und Rückweg, Messung in Mikrosekunden, 0,0345 cm/us +
- float factor = 0.0345 / 2; +
- unsigned int timeout = (SENSOR_MAX_RANGE / factor) * 1.1; +
- digitalWrite(PIN_TRIGGER, LOW); +
- delayMicroseconds(3); +
- digitalWrite(PIN_TRIGGER, HIGH); +
- delayMicroseconds(10); +
- digitalWrite(PIN_TRIGGER, LOW); +
- time_of_flight = pulseIn(PIN_ECHO, HIGH, timeout); +
- distance = time_of_flight * factor; +
- // Ausgeben der Entfernung, sofern diese in einem sinnvollen Bereich +
- // (positiv und unter der Messgrenze des Sensors) liegt, oder eine +
- // Fehlermeldung ausgeben +
- delay(1000); +
-+
-</file> +
- +
-==== Codebeispiel zu 10. ==== +
- +
-<file cpp codebeispiel_10.cpp ==== +
-#define SERVO 3 +
-#define SERVO_UP 1 +
-#define SERVO_DOWN 2 +
-static int servoPos = 0; +
-static int servoDir = SERVO_UP;+
  
-void setup() 
-{ 
- pinMode(SERVO, OUTPUT); 
- Serial.begin(115200); 
- // Probelauf 
- analogWrite(SERVO, 0); 
- delay(500); 
- analogWrite(SERVO, 127); 
- delay(500); 
- analogWrite(SERVO, 255); 
- Serial.println("Setup abgeschlossen."); 
-} 
  
-void loop() +===== Code-Beispiele für die Tinkercad-Quickstart-Aufgaben =====
-+
- // drehen und ausgeben +
-+
-</file>+
  
-==== Codebeispiel zu 11====+Code-Beispiele sind im Anhang des PDF-Dokuments {{ :guide:itt11:quickstart_tinkercad_und_arduino_v1.1_-_schuelerversion.pdf |Quickstart Tinkercad und Arduino}} zu finden. Um sie einfacher kopieren zu können, gibt es aber auch eine [[uebung:itt11:microcontrollerprogrammierung_mit_tinkercad|Wiki-Seite mit den Beispielen]].
  
-<file cpp codebeispiel_11.cpp> 
-#include <LiquidCrystal.h> 
-// Erstellen eines LCD unter Angabe der verwendeten Pins 
-LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
  
-void setup() 
-{ 
- lcd.begin(16,2); 
- pinMode(A0, INPUT); 
-} 
  
-void loop() +===== Ergänzendes und alternatives Material ===== 
-+  * YouTube: 6-teilige Videoreihe [[https://www.youtube.com/watch?v=MojSo7OtF9w&list=PLV6cmKvnKRs5geApVORPW79U6s3wpa0Ht|Learn Arduino with Tinkercad Circuits]] 
- lcd.clear(); +  * {{ :guide:itt11:grundlagen_mikrocontroller_v2.pdf |PDF-Dokument}} zu Microcontrollern im Allgemeinen ohne speziellen Bezug zu Arduino oder ESP8266 
- lcd.setCursor(0, 0); +  * [[uebung:itt11:anfaengeruebungen_tinkercad| Anfängerübungen zu Tinkercad]] für alle, denen der Quickstart als Einstieg zu anspruchsvoll ist
- lcd.print("BS Lichtenfels"); +
- lcd.setCursor(0, 1); +
- lcd.print("Messwert"); +
- delay(100); +
-+
-</file>+