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 [2024/01/02 16:25] – juergenhaas | guide:itt11:microcontrollerprogrammierung_mit_tinkercad [2024/12/15 17:27] (aktuell) – juergenhaas | ||
|---|---|---|---|
| Zeile 31: | Zeile 31: | ||
| 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. | ||
| + | |||
| + | Falls dir dieser Einstieg zu schwierig fällt, kannst du zuvor auch die unten verlinkten // | ||
| ==== Hinweise und Hilfsmittel ==== | ==== Hinweise und Hilfsmittel ==== | ||
| Zeile 36: | Zeile 38: | ||
| 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> | + | |
| - | #include < | + | |
| - | #define NEO_PIXEL 2 // Pin für NeoPixel-Daten | ||
| - | #define NPIXELS 2 // Anzahl der NeoPixel | ||
| - | Adafruit_NeoPixel px = Adafruit_NeoPixel(NPIXELS, | + | ===== Code-Beispiele für die Tinkercad-Quickstart-Aufgaben ===== |
| - | void setup() | + | Code-Beispiele sind im Anhang des PDF-Dokuments |
| - | { | + | |
| - | px.begin(); | + | |
| - | px.clear(); | + | |
| - | px.setBrightness(255); | + | |
| - | px.show(); | + | |
| - | Serial.begin(9600); | + | |
| - | Serial.println(" | + | |
| - | } | + | |
| - | void loop() | ||
| - | { | ||
| - | Serial.println(" | ||
| - | px.setPixelColor(0, | ||
| - | px.setPixelColor(1, | ||
| - | px.show(); | ||
| - | delay(2000); | ||
| - | | ||
| - | Serial.println(" | ||
| - | px.setPixelColor(0, | ||
| - | px.setPixelColor(1, | ||
| - | px.show(); | ||
| - | delay(2000); | ||
| - | | ||
| - | Serial.println(" | ||
| - | px.setPixelColor(0, | ||
| - | px.setPixelColor(1, | ||
| - | px.show(); | ||
| - | delay(2000); | ||
| - | } | ||
| - | </ | ||
| ===== Ergänzendes und alternatives Material ===== | ===== Ergänzendes und alternatives Material ===== | ||
| - | * YouTube: 6-teilige Videoreihe [[https:// | + | * YouTube: 6-teilige Videoreihe [[https:// |
| * {{ : | * {{ : | ||
| - | * {{ :guide: | + | * [[uebung: |