====== Microcontroller-Programmierung mit Tinkercad ======
Auf dieser Seite findest du die Code-Beispiele für den 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);
}