Mit dem Lego Set 42095 Stunt Racer bekommt man u.a. zwei Power Functions Motoren. Diese kann man über einen L293D Chip sowie z.B. einem ESP32 (ESP32 WROOM-32) direkt steuern. Damit kann man z.B. eine eigene Steuerung per App entwickeln. Im Folgenden wird die grundlegende Anbindung beschrieben. Desweitern gibt es ein einfaches Code-Snippet.

In meinem Beispiel werden die zwei Motoren des Sets mit dem L293D verbunden. Dazu benötigt es noch eine 9V Batterie. Ein möglicher Schaltplan sieht wie folgt dazu aus:
Der erste Pin des L293D ist mit GPIO14 (weiß) und der neunte Pin (gegenüber) mit GPIO12 (gelb) verbunden. Diese werden zum Starten/Stoppen der Motoren verwendet. Dazu wird der zweite Pin mit GPIO19 (grau) und die Pins 3 (grün/rot) und 6 (gelb) mit dem ersten Motor verbunden. Pin 7 geht an GPIO16 (blau). Damit wird Motor 1 gesteuert.
Für den zweiten Motor wird Pin 15 mit GPIO17 (weiß) und Pin 20 mit GPIO16 (orange) verbunden. Pin 14 (grün/orange) und Pin 11 (gelb/rot) gehen zum Motor.
Die Spannungsversorgung wird an Pin 8 und 16 (rot) angeschlossen. Der Rest ist GND (schwarz).
Ein knappen Beispiel-Code gibt es hier:
int motor1_19=19;
int motor1_18=18;
int motor2_17=17;
int motor2_16=16;
int enablePin14 = 14;
int enablePin12 = 12;
void setup(){
pinMode(motor1_19,OUTPUT);
pinMode(motor1_18,OUTPUT);
pinMode(enablePin14,OUTPUT);
digitalWrite(enablePin14, LOW);
pinMode(motor2_17,OUTPUT);
pinMode(motor2_16,OUTPUT);
pinMode(ENablePin2,OUTPUT);
digitalWrite(enablePin12, LOW);
}
void loop(){
digitalWrite(motor1_19,HIGH);
digitalWrite(motor1_18,LOW);
digitalWrite(motor2_17,HIGH);
digitalWrite(motor2_16,LOW);
digitalWrite(enablePin14, HIGH);
digitalWrite(enablePin12, HIGH);
}
Weitere kleine Arduino Projekte findet ihr hier.