Wie kann ich mehrere Elektromotoren mit einem programmierbaren Board/Controller steuern?

Hallo alle zusammen,

Ich würde gerne diesen Motor (Adafruit DC Gearbox Motor) mit irgendeiner Form von programmierbarem Board oder Controller steuern. Am liebsten wäre mir tatsächlich ein Raspberry Pi, da ich a) sowohl einen RPi 3 als auch RPi 5 bereits habe und ich b) dann das Ganze dann vermutlich auch relativ einfach über WLAN/Internet ansteuern könnte. Mit Arduinos o.ä. habe ich bisher nicht wirklich gearbeitet, wäre aber auch kein Problem, mich damit auseinanderzusetzen.

Genauer möchte ich bis zu 6 dieser Motoren individuell ansteuern können. Wenn es gleichzeitig gehen würde, wäre das optimal, aber falls das die Sache verkompliziert, kann ich sie auch jeweils nacheinander laufen lassen, das wäre für meine Anwendung kein Problem.

Vereinfacht dargestellt, will ich sowas ähnlich einen Süßigkeitenautomat bauen, das heißt jeder Motor würde ein Produkt ausgeben. Deshalb fände ich auch einen Raspberry Pi am praktischsten, da ich da ja relativ einfach ein Display, eventuell sogar mit Touchscreen, dranhängen könnte, um den Automaten zu bedienen.

Allerdings weiß ich nicht wirklich, was ich brauche, um das mit einem RPi zu realisieren. Ich habe in den Shops schon viele verschiedene Hats und Motortreiber gesehen, weiß aber nicht wirklich, was ich für meine Anwendung tatsächlich bräuchte.

Am wichtigsten sind wie gesagt die Motoren, "nice-to-have" wäre es, wenn ich auch noch Taster oder Potentiometer verwenden könnte. Das Gerät über einen Screen zu bedienen wäre natürlich ausreichend, aber echte Knöpfe oder Drehregler wären nochmal etwas cooler.

Vielen Dank im Vorraus!

Elektromotor, Mikrocontroller, Arduino, Raspberry Pi
Arduino Adafruit_GFX geht nicht?

Wenn ich die Libary hinzufüge, den Code ausführen will klappt es nicht.

#include <SevSeg.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_LEDBackpack.h>


SevSeg sevseg; // Create an instance of the object
const int buttonPin = 2; // Pin für den Knopf
int buttonState = 0; // Variable für den Knopfstatus


void setup() {
  byte numDigits = 1;
  byte digitPins[] = {3, 4, 5, 6};
  byte segmentPins[] = {7, 8, 9, 10, 11, 12, 13, A0};
  bool resistorsOnSegments = true; // 'false' means resistors are on digit pins
  byte hardwareConfig = COMMON_CATHODE; // oder COMMON_ANODE
  bool updateWithDelays = false; // Default 'false' is recommended
  bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros
  bool disableDecPoint = false; // Use 'true' if your decimal point doesn't exist or isn't connected


  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros, disableDecPoint);
  sevseg.setBrightness(90);


  pinMode(buttonPin, INPUT_PULLDOWN); // Setzt den Knopf-Pin als Input mit Pulldown-Widerstand
  randomSeed(analogRead(0)); // Initialisiert den Zufallsgenerator
}


void loop() {
  buttonState = digitalRead(buttonPin);


  if (buttonState == HIGH) {
    int randomNumber = random(1, 10); // Generiert eine zufällige Zahl zwischen 1 und 9


    if (randomNumber == 6) {
      sevseg.setNumber(randomNumber, 1); // Zeigt die Zahl 6 mit Dezimalpunkt an
    } else {
      sevseg.setNumber(randomNumber, 0); // Zeigt die Zahl ohne Dezimalpunkt an
    }


    sevseg.refreshDisplay(); // Aktualisiert das Display
    delay(500); // Kurze Verzögerung, um Mehrfachauslösungen zu vermeiden
  }
}

Beide Libarys sind installiert jedoch kommt der Fehler:

Wie kann ich das beheben?

Bild zum Beitrag
Arduino, Code, Arduino Uno
Leuchtbumerang - Aufbau und Komponenten?

Projektidee: regelbares Licht in einem Bumerang

Ich werfe seit vielen Jahren Bumerang und seit einiger Zeit bau ich sie auch selbst.

Auf dem Weg einen Bumerang zu bauen der auch im Dunkeln funktioniert habe ich von Wunderkerzen und Mini-Knicklichtern über fluoreszierende Materialien und Mini LED aus dem Angelsport bis hin zu batteriebetriebenen LED mit Magnetschalter schon ein paar leuchtende Bumerangs gebaut, die durchaus gute Flugeigenschaften haben.

Langzeitbelichtung - Bumerangflug

Mein Ziel ist nun aber ein steuerbares Licht einzubauen bei dem man Farbe, Helligkeit und eventuell auch verschiedene Effekte regeln kann. Da es sich um ein Wurfgerät handelt, muss alles batteriebetrieben werden.

Ob es mit SP110e über Bluetooth oder über eingebaute Membran-Folientasten oder über wlan mit esp32 und wled gesteuert wird ist nicht ausschlaggebend.

Wichtig ist die Funktionalität und Vielseitigkeit der Steuerung.

Dafür suche ich nach Ideen für den Aufbau bzw. die Schaltung und benötige auch euere Erfahrung welche die geeigneten Komponenten sind. Dabei ist die Stromversorgung auch ein nicht ganz einfach zu lösender Faktor. Am liebsten wäre mir eine Lösung bei der Akku-Monozellen direkt geladen werden könnten ohne sie rausnehmen zu müssen.

Dem ganzen sind gewichtstechnisch Grenzen gesetzt aber es ist davon auszugehen das 6xMonozelle CR 2032 (bzw. die Akkuvariante IL2032) + ein ca. 40cm LED Streifen oder 4x neopixel ring 8 + ein Controller und Kabel auf jeden Fall machbar sind. Jedes Einzelteil darf höchstens 5mm hoch sein und eine Fläche von ca. 5x5cm nicht überschreiten.

Alles so klein wie möglich.
Wie das alles in dem Bumerang verbaut wird ist nicht die Frage, sonder was soll ich verbauen.

Wie baue ich das ganze am besten auf und welche Einzelkomponenten schlägt die Community vor?

Ich würde mich sehr über spannende Ideen der Umsetzung freuen.

Bild zum Beitrag
Elektronik, Licht, Spannung, Arduino, LED, Schaltung, Raspberry Pi, ESP32
Arduino RFID reader mit Timer?

Ich habe folgendes Problem, ich versuche eine maschine in arduino zu bauen, welche die zeit misst wo keine RFID karte auf dem reader liegt. Nun habe ich aber folgendes Problem, wenn ich die karte auflege wird der Timer schon gesartet, dieser soll aber erst gesartet werden, wenn der user die karte vom reader entpfernt. kann mir da jemand helfen.

#include <SPI.h>
#include <MFRC522.h>


#define SS_PIN D4  // SDA Pin (Slave Select)
#define RST_PIN D3 // Reset Pin


MFRC522 mfrc522(SS_PIN, RST_PIN);  // RFID-Instanz


unsigned long startTime;
bool timerActive = false;
bool cardDetected = false;


void setup() {
  Serial.begin(115200);  // Initialisiere die serielle Kommunikation
  SPI.begin();           // Initialisiere den SPI-Bus
  mfrc522.PCD_Init();   // Initialisiere den RFID-Leser


  Serial.println("RFID-Leser bereit. Halten Sie eine Karte an den Leser.");
}


void loop() {
  bool cardPresent = mfrc522.PICC_IsNewCardPresent();
  
  if (cardPresent) {
    if (mfrc522.PICC_ReadCardSerial()) {
      // Karte wird erkannt
      if (timerActive) {
        // Timer stoppen und Zeit ausgeben
        unsigned long elapsedTime = millis() - startTime;
        Serial.print("Zeit gemessen: ");
        Serial.print(elapsedTime);
        Serial.println(" ms");
        timerActive = false;  // Timer zurücksetzen
      }
      cardDetected = true; // Karte wurde erkannt
      mfrc522.PICC_HaltA();  // Halt das Leseverfahren
      mfrc522.PCD_StopCrypto1();
    }
  } else {
    // Wenn keine Karte mehr vorhanden ist
    if (cardDetected && !timerActive) {
      // Timer starten, wenn der Timer nicht aktiv ist
      startTime = millis();
      timerActive = true;
      Serial.println("Timer gestartet.");
    }
    cardDetected = false; // Karte wurde entfernt
  }
}


Computer, Elektrik, Arduino, Elektrizität, Schaltung, Arduino Uno, ESP8266, Arduino IDE

Meistgelesene Beiträge zum Thema Arduino