Raspberry Pi ist ein Prozessor-basiertes Board mit ARM-Architektur, das für Elektronikingenieure und Bastler entwickelt wurde. Der PI ist derzeit eine der vertrauenswürdigsten Projektentwicklungsplattformen. Mit höherer Prozessorgeschwindigkeit und 1 GB RAM kann der PI für viele hochkarätige Projekte wie Bildverarbeitung und Internet der Dinge verwendet werden.
Um hochkarätige Projekte durchführen zu können, muss man die Grundfunktionen von PI verstehen. In diesen Tutorials werden wir alle grundlegenden Funktionen von Raspberry Pi behandeln. In jedem Tutorial werden wir eine der Funktionen von PI diskutieren. Am Ende der Tutorial-Reihe können Sie selbst hochkarätige Projekte durchführen. Überprüfen Sie diese auf Erste Schritte mit der Raspberry Pi und Raspberry Pi Konfiguration.
In früheren Tutorials haben wir uns mit LED Blinky, Button Interfacing und PWM-Generierung befasst. In diesem Tutorial steuern wir die Drehzahl eines Gleichstrommotors mithilfe der Raspberry Pi und PWM-Technik. PWM (Pulse Width Modulation) ist eine Methode, mit der eine variable Spannung aus einer konstanten Stromquelle entnommen werden kann. Wir haben im vorherigen Tutorial über PWM gesprochen.
In Raspberry Pi 2 befinden sich 40 GPIO-Ausgangspins. Von 40 können jedoch nur 26 GPIO-Pins (GPIO2 bis GPIO27) programmiert werden. Einige dieser Pins erfüllen einige spezielle Funktionen. Mit speziellem GPIO haben wir noch 17 GPIO übrig. Weitere Informationen zu GPIO-Pins finden Sie unter: LED blinkt mit Raspberry Pi
Jeder dieser 17 GPIO-Pins kann maximal 15 mA liefern. Die Summe der Ströme aller GPIO-Pins darf 50 mA nicht überschreiten. Daher können wir aus jedem dieser GPIO-Pins durchschnittlich maximal 3 mA ziehen. Man sollte diese Dinge also nicht manipulieren, wenn man nicht weiß, was man tut.
Auf der Platine befinden sich + 5 V (Pin 2 & 4) und + 3,3 V (Pin 1 & 17) Ausgangsstifte zum Anschließen anderer Module und Sensoren. Diese Stromschiene ist parallel zur Prozessorleistung geschaltet. Das Ziehen von Hochstrom von dieser Stromschiene wirkt sich also auf den Prozessor aus. Auf der PI-Platine befindet sich eine Sicherung, die auslöst, sobald Sie eine hohe Last anlegen. Sie können 100 mA sicher von der + 3,3 V- Schiene ziehen. Wir sprechen hier darüber, weil; Wir schließen den Gleichstrommotor an + 3,3V an. In Anbetracht der Leistungsbegrenzung können wir hier nur Motoren mit geringer Leistung anschließen. Wenn Sie einen Motor mit hoher Leistung antreiben möchten, sollten Sie ihn über eine separate Stromquelle mit Strom versorgen.
Erforderliche Komponenten:
Hier verwenden wir Raspberry Pi 2 Model B mit Raspbian Jessie OS. Alle grundlegenden Hardware- und Softwareanforderungen wurden bereits erläutert. Sie können sie in der Raspberry Pi-Einführung nachschlagen.
- Verbindungsstifte
- 220Ω oder 1KΩ Widerstand (3)
- Kleiner Gleichstrommotor
- Tasten (2)
- 2N2222 Transistor
- 1N4007 Diode
- Kondensator-1000uF
- Brotbrett
Schaltungserklärung:
Wie bereits erwähnt, können keine GPIO-Pins mehr als 15 mA und der Gleichstrommotor mehr als 15 mA entnehmen, sodass die von Raspberry Pi erzeugte PWM nicht direkt dem Gleichstrommotor zugeführt werden kann. Wenn wir also den Motor zur Drehzahlregelung direkt an PI anschließen, kann die Platine dauerhaft beschädigt werden.
Wir werden also einen NPN-Transistor (2N2222) als Schaltgerät verwenden. Dieser Transistor treibt hier den Hochleistungs-Gleichstrommotor an, indem er das PWM-Signal von PI empfängt. Hier sollte man darauf achten, dass ein falsches Anschließen des Transistors die Platine stark belasten kann.
Der Motor ist eine Induktion, und so treten beim Schalten des Motors induktive Spitzen auf. Diese Spitze erwärmt den Transistor stark, daher verwenden wir die Diode (1N4007), um den Transistor vor induktivem Spitzen zu schützen.
Um die Spannungsschwankungen zu reduzieren, werden wir einen 1000uF-Kondensator über das Netzteil anschließen, wie im Schaltplan gezeigt.
Arbeitserklärung:
Sobald alles gemäß Schaltplan angeschlossen ist, können wir den PI einschalten, um das Programm in PYHTON zu schreiben.
Wir werden über einige Befehle sprechen, die wir im PYHTON-Programm verwenden werden.
Wir werden die GPIO-Datei aus der Bibliothek importieren. Mit der folgenden Funktion können wir die GPIO-Pins von PI programmieren. Wir benennen auch "GPIO" in "IO" um. Wenn wir also im Programm auf GPIO-Pins verweisen möchten, verwenden wir das Wort "IO".
importiere RPi.GPIO als IO
Manchmal, wenn die GPIO-Pins, die wir verwenden möchten, andere Funktionen ausführen. In diesem Fall erhalten wir während der Ausführung des Programms Warnungen. Der folgende Befehl weist den PI an, die Warnungen zu ignorieren und mit dem Programm fortzufahren.
IO.setwarnings (False)
Wir können die GPIO-Pins von PI entweder anhand der Pin-Nummer an Bord oder anhand ihrer Funktionsnummer referenzieren. Wie 'PIN 35' auf der Platine ist 'GPIO19'. Also sagen wir hier entweder, dass wir den Pin hier durch '35' oder '19' darstellen werden.
IO.setmode (IO.BCM)
Wir setzen GPIO19 (oder PIN35) als Ausgangspin. Wir werden PWM-Ausgang von diesem Pin erhalten.
IO.setup (19, IO.IN)
Nachdem wir den Pin als Ausgang gesetzt haben, müssen wir den Pin als PWM-Ausgangspin einrichten.
p = IO.PWM (Ausgangskanal, Frequenz des PWM-Signals)
Der obige Befehl dient zum Einrichten des Kanals und auch zum Einstellen der Frequenz des PWM-Signals. 'p' ist hier eine Variable, es kann alles sein. Wir verwenden GPIO19 als PWM- Ausgangskanal . Die Frequenz des PWM-Signals wurde auf 100 gewählt, da die LED nicht blinken soll.
Der folgende Befehl wird verwendet, um die PWM-Signalerzeugung zu starten. ' DUTYCYCLE ' dient zum Einstellen des Einschaltverhältnisses. 0 bedeutet, dass die LED 0% der Zeit eingeschaltet ist. 30 bedeutet, dass die LED 30% der Zeit eingeschaltet ist. 100 bedeutet, dass die LED vollständig eingeschaltet ist.
p.start (DUTYCYCLE)
Wenn die Bedingung in geschweiften Klammern erfüllt ist, werden die Anweisungen in der Schleife einmal ausgeführt. Wenn also der GPIO-Pin 26 auf Low geht, werden die Anweisungen innerhalb der IF-Schleife einmal ausgeführt. Wenn der GPIO-Pin 26 nicht niedrig wird, werden die Anweisungen innerhalb der IF-Schleife nicht ausgeführt.
if (IO.input (26) == False):
Während 1: für die Endlosschleife verwendet wird. Mit diesem Befehl werden die Anweisungen in dieser Schleife kontinuierlich ausgeführt.
Wir haben alle Befehle, um die Geschwindigkeitsregelung damit zu erreichen.
Nachdem Sie das Programm geschrieben und ausgeführt haben, müssen Sie nur noch die Steuerung bedienen. Wir haben zwei Tasten mit PI verbunden; eine zum Inkrementieren des Arbeitszyklus des PWM-Signals und eine zum Verringern des Arbeitszyklus des PWM-Signals. Durch Drücken einer Taste erhöht sich die Drehzahl des Gleichstrommotors und durch Drücken der anderen Taste verringert sich die Drehzahl des Gleichstrommotors. Damit haben wir die DC Motor Speed Control von Raspberry Pi erreicht.
Überprüfen Sie auch:
- Drehzahlregelung des Gleichstrommotors
- Gleichstrommotorsteuerung mit Arduino