====== Microcontroller-Programmierung mit Tinkercad ====== Auf dieser Seite findest du die Code-Beispiele für denk Tinkercad-Quickstart-Guide. Beispiel-Code für den ESP8266 findest du nicht hier sondern auf der [[uebung:itt11:beispielcode_esp8266|Beispielseite für Code für den ESP8266]]. ===== Codebeispiele für die Tinkercad-Quickstart-Aufgaben ===== ==== Codebeispiel zu 3. ==== #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) } ==== Codebeispiel zu 4. ===== 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) } ==== Codebeispiel zu 6. ==== #define POTIPIN A0 void setup() { Serial.begin(115200); } void loop() { Serial.println(analogRead(POTIPIN)); delay(100); } ==== Codebeispiel zu 9. ==== #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); } ==== Codebeispiel zu 10. ==== #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() { // drehen und ausgeben } ==== Codebeispiel zu 11. ==== #include // 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() { lcd.clear(); lcd.setCursor(0, 0); lcd.print("BS Lichtenfels"); lcd.setCursor(0, 1); lcd.print("Messwert: "); delay(100); } ==== Codebeispiel zu 12. ==== #include #define NEO_PIXEL 2 // Pin für NeoPixel-Daten #define NPIXELS 2 // Anzahl der NeoPixel Adafruit_NeoPixel px = Adafruit_NeoPixel(NPIXELS, NEO_PIXEL, NEO_GRB + NEO_KHZ800); void setup() { px.begin(); px.clear(); px.setBrightness(255); px.show(); Serial.begin(9600); Serial.println("Setup"); } void loop() { Serial.println("One"); px.setPixelColor(0, px.Color(255, 0, 0)); px.setPixelColor(1, px.Color(255, 255, 0)); px.show(); delay(2000); Serial.println("Two"); px.setPixelColor(0, px.Color(0, 255, 0)); px.setPixelColor(1, px.Color(0, 255, 255)); px.show(); delay(2000); Serial.println("Three"); px.setPixelColor(0, px.Color(0, 0, 255)); px.setPixelColor(1, px.Color(255, 0, 255)); px.show(); delay(2000); }