Menü
Microbots
0
  • Lernen
  • Geschäft
    • Module & Technik
    • Maker-Packs
    • Werkzeuge und Ausrüstung
    • Robots & Displays
    • Alle Produkte
  • Gemeinschaft
    • Education
    • Software
  • Um
    • Unsere Geschichte
    • Kontakt
    • FAQs
  • Deutsch
  • Ihr Warenkorb ist leer
Microbots
  • Lernen
  • Geschäft
    • Module & Technik
    • Maker-Packs
    • Werkzeuge und Ausrüstung
    • Robots & Displays
    • Alle Produkte
  • Gemeinschaft
    • Education
    • Software
  • Um
    • Unsere Geschichte
    • Kontakt
    • FAQs
  • Sprache

  • 0 0

DriveCell-Grundlagen: Ihre ersten Schritte

DriveCell ist ein kleines, aber leistungsstarkes Gerät, mit dem Sie Motoren, Aktuatoren und Hochleistungs-LED-Leuchten für Ihre Heimwerkerprojekte ganz einfach steuern können. DriveCell macht die Steuerung dieser Komponenten einfach, selbst wenn Sie keine Erfahrung mit Programmierung oder Elektronik haben.

In diesem Tutorial erklären wir:

  • Was ist eine DriveCell und wie funktioniert sie?
  • Erste Schritte mit der Arduino-Softwarebibliothek
  • Steuern Sie zwei Gleichstrommotoren und fahren Sie sie mit unterschiedlicher Geschwindigkeit
  • Machen Sie die DriveCell interaktiver mit den CodeCell -Sensoren

Was ist DriveCell?
Stellen Sie sich vor, Sie möchten einen kleinen Roboter bauen und die Geschwindigkeit und Richtung seines Motors steuern. Dies kann für Anfänger komplex sein und erfordert normalerweise sperrige Module. DriveCell vereinfacht diesen Prozess, weil:

  • Es ist ein super kleiner Treiber (ungefähr so ​​groß wie Ihre Fingerspitze)
  • Kann leicht mit Zinnenstiften gelötet werden
  • Funktioniert mit Arduino-Mikrocontrollern und verfügt über benutzerfreundliche Funktionen, mit denen Sie Motoren, Aktuatoren und LEDs direkt steuern können, ohne sich in komplizierte Programmierung vertiefen zu müssen.

Wie funktioniert DriveCell?
DriveCell verwendet einen integrierten DRV8837-H-Brückenchip zur Steuerung des Stromflusses durch die Ausgangspins, der durch den Zustand der Eingangspins gesteuert wird:

  • Durchlassstrom: IN1 = VCC/PWM, IN2 = GND
  • Rückstrom: IN1 = Masse, IN2 = VCC/PWM
  • Aus: IN1 = Masse, IN2 = Masse

Der DRV8837-Chip verfügt über Überstromschutz, Unterspannungssperre und thermische Abschaltungsfunktionen und gewährleistet so einen sicheren Betrieb.

    Erste Schritte mit DriveCell
    Bevor Sie DriveCell verwenden können, müssen Sie es einrichten und mit Ihrem Projekt verbinden. Hier ist eine einfache Anleitung für den Einstieg:

    • DriveCell anschließen:
    Löten Sie zunächst die DriveCell- Ausgangspins an Ihren Motor oder Aktuator und die Eingangs- und Strompins an Ihren Mikrocontroller. Stellen Sie sich diese Pins wie die Teile eines Puzzles vor, die es der DriveCell ermöglichen, Strom zwischen den Ausgangspins zu leiten. Diese Ausgangspins werden durch den Zustand des Eingangspins gesteuert. Wenn Sie also IN1 hochziehen, wird OUT1 hoch gesetzt, und wenn Sie IN2 hochziehen, wird OUT2 hoch gesetzt. IN1 und IN2 werden normalerweise auf entgegengesetzte Polaritäten gesetzt, um Strom durchzulassen. Diese technischen Details können alle von der DriveCell-Softwarebibliothek behandelt werden.

    • Codierung DriveCell:
    Wenn Sie einen der Eingangspins mit VCC verbinden, wird die DriveCell sofort eingeschaltet. Um es aber noch intelligenter zu machen, haben wir auch eine Arduino-Softwarebibliothek entwickelt, die Ihnen den Einstieg erleichtert. Sie müssen einen einfachen Code schreiben, um DriveCell mitzuteilen, was es tun soll. Keine Sorge, es ist ganz einfach! Beginnen Sie damit, die Bibliothek „DriveCell“ aus dem Bibliotheksmanager von Arduino herunterzuladen. Sobald diese installiert ist, können wir Ihr Gerät steuern. Es gibt mehrere Beispiele, die Ihnen den Einstieg erleichtern können, aber als Nächstes werden wir alle Funktionen aufschlüsseln und verstehen.
    Bevor wir beginnen, stellen Sie sicher, dass Sie die DriveCell anschließen an Ihren Mikrocontroller. Wir empfehlen die Verwendung eines CodeCell ist Pin-zu-Pin-kompatibel, unterstützt alle Bibliotheksfunktionen und kann drahtlose Steuerung und interaktive Sensorik hinzufügen.


    1. Init()

    Zuerst benötigen wir einen grundlegenden Setup-Code, damit Sie loslegen können:

     #include <DriveCell.h> // This line includes the DriveCell library
    
     DriveCell myDriveCell(IN1, IN2); // Replace IN1 and IN2 with your specific pins
    
     void setup() {
     myDriveCell.Init(); // Initializes the DriveCell
     }
    

    Dieser Code weist die DriveCell an, zu starten und sich für die Steuerung Ihres Motors oder Aktuators vorzubereiten. Die Init-Funktion stellt sicher, dass alle erforderlichen Peripheriegeräte konfiguriert sind.

    2. Puls (bool Richtung, uint8_t ms_Dauer)

    Dieser Befehl sendet einen kurzen Stromstoß mit einer bestimmten Polarität, um den Aktuator schnell mit Strom zu versorgen und wieder auszuschalten.

     myDriveCell.Pulse(true, 10); // Short burst for 10 milliseconds
    

    3. Buzz (uint16_t us_buzz)
    Dadurch vibriert der Aktuator wie ein Summer. Dies eignet sich hervorragend zum Erzeugen von Feedback-Tönen.

     myDriveCell.Buzz(100); // Creates a 100us buzzing sound

    4. Ton()
    Diese Funktion spielt einen Standardton ab, indem sie den Aktuator mit verschiedenen gespeicherten Frequenzen vibrieren lässt.

     myDriveCell.Tone(); // Plays varying tones
    

    5. Umschalten (uint8_t power_percent)
    Diese Funktion schaltet einfach die Richtung bei voller Leistung von 100 % um, was nützlich sein kann, um die Drehrichtung eines Bürstenmotors umzukehren oder einfache Schlagbewegungen zu erzeugen.

     myDriveCell.Toggle(); // Switches direction

    Mithilfe der CodeCell oder eines anderen ESP32-Mikrocontrollers können Sie auch den Arbeitszyklus „power_percent“ anpassen. Bei magnetischen Aktuatoren steuert „power_percent“ die magnetische Stärke, während es bei Bürstenmotoren die Geschwindigkeit anpasst.

    6. Ausführen (bool glatt, uint8_t Leistungsprozentsatz, uint16_t Flip-Geschwindigkeit_ms)

    Mithilfe der CodeCell oder eines anderen ESP32-Mikrocontrollers können Sie mit dieser Funktion alle „flip_speed_ms“ die Polarität eines Aktuators umkehren oder einen Motor umkehren, und zwar im Arbeitszyklus „power_percent“. Wenn Sie „smooth“ auf 1 setzen, wird die Bewegung geglättet, was ideal ist, wenn Sie FlatFlap oder CoilPad mit langsamen Bewegungen (weniger als 2 Hz) antreiben.

     myDriveCell.Run(true, 50, 1000); // Smooth drive at 50% power every 1000 ms

    Bei anderen Arduino-Geräten bewirkt dieser Befehl, dass der Motor/Aktuator seine Richtung (vorwärts und rückwärts) bei voller Geschwindigkeit ändert. Beispiel:

     myDriveCell.Run(500); // Motor changes direction every 500 milliseconds
    

    7. Antrieb (bool Richtung, uint8_t Leistung_Prozent)
    Mithilfe der CodeCell oder eines anderen ESP32-Mikrocontrollers können Sie mit dieser Funktion die Geschwindigkeit und Richtung Ihres Motors steuern. Sie können den Motor vorwärts oder rückwärts laufen lassen und die Geschwindigkeit einstellen.

     myDriveCell.Drive(true, 75); // Moves forward at 75% power


    Beispiele:

    Indem Sie eine dieser Funktionen in einer Schleife verwenden, können Sie die gewünschte Sequenz für Ihren Motor, Aktuator oder Ihre Hochleistungs-LEDs erstellen. Hier ist ein Beispiel, in dem wir zwei Gleichstrommotoren initialisieren und sie mit unterschiedlichen Geschwindigkeiten antreiben:

     #include <DriveCell.h>
    
     #define IN1_pin1 2
     #define IN1_pin2 3
     #define IN2_pin1 5
     #define IN2_pin2 6
    
     DriveCell Motor1(IN1_pin1, IN1_pin2);
     DriveCell Motor2(IN2_pin1, IN2_pin2);
    
     uint8_t mode = 0;
     uint8_t speed_percentage = 0;
    
     void setup() {
     Motor1.Init();
     Motor2.Init(); 
    speed_percentage = 80; /* Motor auf 80 % Leistung einstellen */
     }
    
     void schleife() {
     Verzögerung (3000);
     Modus++;
     Schalter (Modus) {
     Fall 1:
     /* Vorwärts gehen */
     Motor1.Antrieb(1, Geschwindigkeitsprozentsatz);
     Motor2.Drive(1, Geschwindigkeitsprozentsatz);
     brechen;
     Fall 2:
     /* Rückwärts bewegen */
     Motor1.Drive(0, Geschwindigkeitsprozentsatz);
     Motor2.Drive(0, Geschwindigkeitsprozentsatz);
     brechen;
     Fall 3:
     /* Biegen Sie links ab */
     Motor1.Antrieb(1, Geschwindigkeitsprozentsatz);
     Motor2.Drive(0, Geschwindigkeitsprozentsatz);
     brechen;
     Fall 4:
     /* Biegen Sie rechts ab */
     Motor1.Drive(0, Geschwindigkeitsprozentsatz);
     Motor2.Drive(1, Geschwindigkeitsprozentsatz);
     brechen;
     Fall 5:
     /* Schalte beide Motoren aus */
     Motor1.Antrieb(1, 0);
     Motor2.Antrieb(1, 0);
     wenn (Geschwindigkeitsprozentsatz < 95) {
     speed_percentage += 5; /* Geschwindigkeit erhöhen */
     } anders {
     speed_percentage = 50; /* Auf 50 % Leistung zurücksetzen */
     }
     Modus = 0;
     brechen;
     }
     }
    

    Im nächsten Beispiel verwenden wir den Näherungssensor von CodeCell , um die Motoren zu aktivieren. Dieser Sensor fungiert als Gestenschalter und wird aktiviert, wenn sich eine Hand im Umkreis von 5 cm befindet.

     #include <CodeCell.h>
     #include <DriveCell.h>
    
     #define IN1_pin1 2
     #define IN1_pin2 3
     #define IN2_pin1 5
     #define IN2_pin2 6
    
     CodeCell myCodeCell;
     DriveCell Motor1(IN1_pin1, IN1_pin2);
     DriveCell Motor2(IN2_pin1, IN2_pin2);
    
     uint8_t speed_percentage = 0;
     bool on_flag = 0;
    
     void setup() {
     Serial.begin(115200); /* Set Serial baud rate to 115200. Ensure Tools/USB_CDC_On_Boot is enabled if using Serial. */
    
     myCodeCell.Init(LIGHT); /*Initializes Light Sensing*/
     Motor1.Init();
     Motor2.Init();
     speed_percentage = 100;
     }
    
     void loop() {
     if (myCodeCell.Run()) {
     /*Runs every 100ms - Put your code here*/
     if (myCodeCell.Light_ProximityRead() > 3000) { 
    /*Wenn ein Tippen erkannt wird, leuchtet die LED 1 Sekunde lang gelb*/
     myCodeCell.LED(0XA0, 0x60, 0x00U);
     Motor1.Antrieb(0, 0);
     Motor2.Antrieb(0, 0);
     Verzögerung (1000);
     ein_Flagge = !ein_Flagge;
     }
     wenn (on_flag) {
     /*Vorwärts gehen*/
     Motor1.Antrieb(1, Geschwindigkeitsprozentsatz);
     Motor2.Drive(1, Geschwindigkeitsprozentsatz);
     } anders {
     Motor1.Antrieb(0, 0);
     Motor2.Antrieb(0, 0);
     }
     }
     }
    

    Wenn Sie weitere Fragen zur DriveCell haben, senden Sie uns einfach eine E-Mail und wir helfen Ihnen gerne weiter!

    • Teilen:


    Vollständigen Artikel anzeigen

    MotorCell Basics: Your First Steps
    MotorCell-Grundlagen: Ihre ersten Schritte

    Vollständigen Artikel anzeigen

    CodeCell Basics: Your First Steps
    CodeCell-Grundlagen: Ihre ersten Schritte

    Vollständigen Artikel anzeigen

    CoilPad Basics: Your First Steps
    CoilPad-Grundlagen: Ihre ersten Schritte

    Vollständigen Artikel anzeigen

    Sozial

    Github

    • Um
    • Software
    • Education
    • Kontakt
    • FAQs
    • Bedingungen
    • Rückerstattung-Politik
    • Datenschutzrichtlinie

    Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!

    © 2025 Microbots.