meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
guide:itt11:microcontrollerprogrammierung_mit_tinkercad [2023/01/14 23:24] – [Tinkercad-Erfahrungen sammeln] juergenhaas | guide:itt11:microcontrollerprogrammierung_mit_tinkercad [2024/12/15 17:27] (aktuell) – juergenhaas | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Microcontrollerprogrammierung mit Tinkercad ====== | ====== Microcontrollerprogrammierung mit Tinkercad ====== | ||
+ | |||
+ | {{ : | ||
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, | 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, | ||
- | ===== Der Einstieg in Tinkercad | + | |
+ | ===== Empfohlene Lernstrategie ===== | ||
+ | ==== Der Einstieg in Tinkercad ==== | ||
Das Dokument {{ : | Das Dokument {{ : | ||
- | ===== 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. | ||
Zeile 28: | Zeile 32: | ||
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 // |
+ | |||
+ | ==== Hinweise und Hilfsmittel ==== | ||
Die Programmierung des Arduino-Microcontrollers und der ESP-Microcontroller erfolgt in der Sprache C++, auch wenn die Dateiendung '' | Die Programmierung des Arduino-Microcontrollers und der ESP-Microcontroller erfolgt in der Sprache C++, auch wenn die Dateiendung '' | ||
* Die {{ https:// | * Die {{ https:// | ||
- | * Die Programmierkenntnisse, | + | * Die Programmierkenntnisse, |
- | * | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Codebeispiele für die Tinkercad-Quickstart-Aufgaben ===== | + | |
- | + | ||
- | ==== Codebeispiel zu 3. ==== | + | |
- | + | ||
- | <file cpp codebepspiel_3.cpp> | + | |
- | #define LED_EXTERN 2 | + | |
- | + | ||
- | void setup() | + | |
- | { | + | |
- | pinMode(LED_BUILTIN, | + | |
- | pinMode(LED_EXTERN, | + | |
- | digitalWrite(LED_EXTERN, | + | |
- | } | + | |
- | + | ||
- | void loop() | + | |
- | { | + | |
- | digitalWrite(LED_BUILTIN, | + | |
- | digitalWrite(LED_EXTERN, | + | |
- | delay(1000); | + | |
- | digitalWrite(LED_BUILTIN, | + | |
- | digitalWrite(LED_EXTERN, | + | |
- | delay(1000); | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ==== Codebeispiel zu 4. ===== | + | |
- | + | ||
- | <file cpp codebeispiel_4.cpp> | + | |
- | void setup() | + | |
- | { | + | |
- | pinMode(LED_BUILTIN, | + | |
- | // Serielle Ausgabe mit 115200 Baud starten | + | |
- | Serial.begin(115200); | + | |
- | } | + | |
- | + | ||
- | void loop() | + | |
- | { | + | |
- | digitalWrite(LED_BUILTIN, | + | |
- | Serial.println(" | + | |
- | delay(1000); | + | |
- | digitalWrite(LED_BUILTIN, | + | |
- | Serial.println(" | + | |
- | delay(1000); | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Codebeispiel zu 6. ==== | + | |
- | + | ||
- | <file cpp codebeispiel_6.cpp> | + | |
- | #define POTIPIN A0 | + | |
- | + | ||
- | void setup() | + | |
- | { | + | |
- | Serial.begin(115200); | + | |
- | } | + | |
- | + | ||
- | void loop() | + | |
- | { | + | |
- | Serial.println(analogRead(POTIPIN)); | + | |
- | delay(100); | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== 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, | + | |
- | pinMode(PIN_ECHO, | + | |
- | } | + | |
- | + | ||
- | void loop() | + | |
- | { | + | |
- | // 345m/s, Hin- und Rückweg, Messung in Mikrosekunden, | + | |
- | float factor = 0.0345 / 2; | + | |
- | unsigned int timeout = (SENSOR_MAX_RANGE / factor) * 1.1; | + | |
- | digitalWrite(PIN_TRIGGER, | + | |
- | delayMicroseconds(3); | + | |
- | digitalWrite(PIN_TRIGGER, | + | |
- | delayMicroseconds(10); | + | |
- | digitalWrite(PIN_TRIGGER, | + | |
- | time_of_flight = pulseIn(PIN_ECHO, | + | |
- | 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); | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== 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, | + | |
- | Serial.begin(115200); | + | |
- | // Probelauf | + | |
- | analogWrite(SERVO, | + | |
- | delay(500); | + | |
- | analogWrite(SERVO, | + | |
- | delay(500); | + | |
- | analogWrite(SERVO, | + | |
- | Serial.println(" | + | |
- | } | + | |
- | + | ||
- | void loop() | + | |
- | { | + | |
- | // drehen und ausgeben | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Codebeispiel zu 11. ==== | + | |
- | + | ||
- | <file cpp codebeispiel_11.cpp> | + | |
- | #include < | + | |
- | // Erstellen eines LCD unter Angabe der verwendeten Pins | + | |
- | LiquidCrystal lcd(12, 11, 5, 4, 3, 2); | + | |
- | + | ||
- | void setup() | + | |
- | { | + | |
- | lcd.begin(16, | + | |
- | pinMode(A0, | + | |
- | } | + | |
- | + | ||
- | void loop() | + | |
- | { | + | |
- | lcd.clear(); | + | |
- | lcd.setCursor(0, | + | |
- | lcd.print(" | + | |
- | lcd.setCursor(0, | + | |
- | lcd.print(" | + | |
- | delay(100); | + | |
- | } | + | |
- | </ | + | |
- | ==== Codebeispiel zu 12. ==== | ||
- | <file cpp codebeispiel_12.cpp> | + | ===== Code-Beispiele für die Tinkercad-Quickstart-Aufgaben ===== |
- | #include < | + | |
- | #define NEO_PIXEL 2 // Pin für NeoPixel-Daten | + | Code-Beispiele sind im Anhang des PDF-Dokuments {{ : |
- | #define NPIXELS 2 // Anzahl der NeoPixel | + | |
- | Adafruit_NeoPixel px = Adafruit_NeoPixel(NPIXELS, | ||
- | void setup() | ||
- | { | ||
- | px.begin(); | ||
- | px.clear(); | ||
- | px.setBrightness(255); | ||
- | px.show(); | ||
- | Serial.begin(9600); | ||
- | Serial.println(" | ||
- | } | ||
- | void loop() | + | ===== Ergänzendes und alternatives Material ===== |
- | { | + | |
- | | + | |
- | px.setPixelColor(0, | + | |
- | | + | |
- | | + | |
- | delay(2000); | + | |
- | + | ||
- | Serial.println(" | + | |
- | px.setPixelColor(0, px.Color(0, 255, 0)); | + | |
- | px.setPixelColor(1, | + | |
- | px.show(); | + | |
- | delay(2000); | + | |
- | + | ||
- | Serial.println(" | + | |
- | px.setPixelColor(0, | + | |
- | px.setPixelColor(1, | + | |
- | px.show(); | + | |
- | delay(2000); | + | |
- | } | + | |
- | </ | + |