Schritt 8: Starten Sie Spinnerei - Funktion das Grundbrett Inbetriebnahme
1. Einleitung
Diese Platine ist verantwortlich der Fahrt des Motors schnell genug für die LEDs "unsichtbar" zu werden und ihr Licht unscharf. Ich habe zwei Versionen davon, denn ich war nicht in der Lage, an die Macht (PIC18F46J50 würde nicht programmieren und ich nicht auf, stecken wollte) das alte Board. Auf die zweite Version habe ich beschlossen, einen PIC18F4550 in einer großen DIP-Gehäuse machen das Löten und Messungen einfacher. Durchgangsbohrung PCB gefällt mir sehr gut, nach der Ernte des DIP40-Pakets für den PIC wandte ich mich alles, was zu DIP und Durchgangsbohrung Komponenten. Widerstände, integrierte Schaltungen, alles beiseite die MOSFETs.
Diese Platine ist am einfachsten von den Brettern, die ich gemacht (I zählen Magnet Holder auch als ein PCB, möglicherweise die härteste man Bohren, stapeln, sah...). Die Komponenten auf diesem Board:
- 1 x PIC18F4550 Mikrocontroller mit USB - kontrolliert alles
- 6 x N-Kanal-MOSFETs - schweben oder schließen Sie die Spulen der BLDC an die PSU-Schienen
- 2 x CD4081B Quad, dual input und-Gatter - diese geben die Signale, die die MOSFETs on/off schalten
- 1 x 7805 Spannungsregler - bietet eine schöne saubere 5V Stromversorgung für das Bild und dessen Peripherie
- 1 x LM2903 dual Komparator mit open-Drain-Ausgang - fängt Spannungsspitzen, mit dem Muster der Kommutierung zu gelangen
- 3 X LED - signal den Modus, in dem das Bild ist im Moment: Bootloader/Benutzeranwendung
- 2 X Tasten - externe Benutzer-Eingaben für das Debuggen
- 1 X Potentiometer - ändert das Tastverhältnis, das mit der Kommutierungssignale überlagert wird
- n X Widerstände - aktuelle Begrenzung, Klimmzüge, Pulldown-Menüs
- n x Kondensatoren - Filterung Kappen
- n x Pin-Header - Verbindung zu anderen boards
Dies ist die erste Platine haben wir in Funktion zu setzen, da die obere Kammer seine Energie aus der Bewegung des Motors ziehen wird. Dies ist, was wir hier tun müssen:
- Schalten Sie die Sache und setzen Sie den USB-Bootloader in Funktion
- Kontrolle über die sechs N-MOSFETs zu gewährleisten
- LED
- Analoge Schnittstellen
- Messung der u/min
- Serielle Kommunikation für das Debuggen
Nehmen sie eins nach dem anderen!
2. Powering auf das Gerät und die Nutzung der USB-modUle innerhalb der PIC18F4550
Wie im vorherigen Schritt erwähnt, habe ich beschlossen, USB für Firmware-Update verwenden. Nach dem Flashen der Firmware auf den PIC, ich nahm einen tiefen Atemzug und mein Netzteil eingeschaltet. Und dann plötzlich... nichts. Es hat nicht funktioniert, und es gab mir eine Sache zu denken, bis ich mit den zusätzlichen Kondensator-Lösung kam. Danach gab es keine Probleme, keine Fehler, nichts. Blinkt die LED, die blinken, wenn der Bootloader lief musste war in der Tat, nach der Umstellung auf Benutzercode Anwendung konnte ich eine andere LED blinken. Umschaltung zwischen Bootloader und Benutzer Anwendungscode war gut so gut funktioniert. Power-Up und Bootloader verwenden: geprüft!
3. fahren die bürstenlose DC-motor
Der BLDC-Motor hat drei Pins, müssen wir die Steuerspannung über alle drei zu machen, die Art und Weise zu bewegen, die wir erwarten. Der Staat, an dem die drei Pins wird immer unterschiedlich sein, Wechsel zwischen hoher Impedanz, GND und VDD. Das Muster dieser drei Pins abwechseln sollten ist auf dem Bild oben dargestellt. Neben der Verwendung von sechs i/o-Pins des Mikrocontrollers, werden ich auch ein PWM-Signal über die drei Linien überlagern. Dies lässt sich mit sechs und-Gatter mit ihren Ausgängen auf die sechs MOSFET-Gates. Die Tore, die verwendet wurden: CD4081B. Auf diese Weise kann man die Geschwindigkeit mit nur eine Variable - das Tastverhältnis steuern.
Wir müssen bieten eine Schnittstelle zu ändern, das Tastverhältnis von außen, der bequemste Weg, dies zu tun ist das Potentiometer verwenden. Ein internes, 10-Bit-AD-Wandler nimmt die Spannung am analogen Eingang und wandelt es in einen digitalen Wert. Glück haben uns das Tastverhältnis ist Register 10 Bits breit sowie, keine Filterung oder Manipulation nötig, nur transfer registriert der Wert aus der ADC die Einschaltdauer Register. Die Einstellung beider Module ist einfach, ich Code Snips aus älteren Projekten eingesetzt und angepasst, die tatsächlichen Berechnungen für sie. Nach der Montage dieses Board, was, das ich sah, dass der Motor nicht schnell genug drehen war, war es eher verstärkt. Die Kommutierungssignale wurden durch eine zufällig gewählte Timer-Interrupt von 100ms zeitlich, und das war nicht ganz Recht. Ein Freund empfahl mir um dieses Timer-Interrupt auf einen externen Interrupt ändern, und stellen einige Hardware-Änderungen. Unnötig zu sagen, ein weiterer PCB war, nicht in Frage, eine andere (kleinere) PCB musste entworfen werden, um die zusätzlichen Komponenten hosten seinen Vorschlag erwähnt. Ziel war es, die Spannung an den Motorklemmen, durchlaufen sie einen Teiler, verbinden die drei Signale durch aktuelle begrenzenden Widerstände und schließlich legte sie auf einen Komparator-Eingang. Ich diese kleine Platine ohne Widerstände auf den nicht invertierenden Eingang montiert, und die Spannung auf die Umkehrung Eingabe, woher dieses Signal vom Motor gemessen. Ich sah, dass es seinen Höchststand erreicht ca. 500mV, die Widerstände nicht umkehren mussten abgeholt werden, so dass der Komparator jedes Mal ausgelöst wird, kam eine Spitze auf einen der drei Eingänge. Sehen Sie die Bilder zum besseren Verständnis dieses Teils!
Ich änderte die Interrupt-Service-Routine, gegen dieses Ereignis vor dem Sprung auf den nächsten Zyklus der Kommutierung zu überprüfen und den Ausgang des Komparators auf einen externen Interrupt auf der PIC8F4550 geleitet. Auf diese Weise der Motor nicht fallen synchron und wird wiederum schnell genug für uns, mit ihm zu arbeiten.
Oszcilloszkop Kep ein Harom Jelrol, ist az Egyesitett jelrol
Oszcilloszkop Kep ein Komparator Ket Bemeneterol es a Kimeneterol
4. fahren LEDs
Die Debug oder Status LED ist so einfach wie es bekommen kann, habe ich den Widerstand für 20mA berechnet: R = U / ich = 5/0,02 = 250 Ohm. Möchten Sie heller, Widerstände der niedrigeren Wert zu setzen, wenn Sie dimmer, möchten setzen höhere Widerstand Wert Widerstände.
(5) analoge Schnittstellen
Mit einem Potentiometer einstellen der PWM Duty Cycle ist der beste Weg, um die Drehzahl der Spindel eingestellt. Analog-Digital-Wandlers kann verwendet werden, um die Mittelanzapfung des Potentiometers zu lesen, die Spannung wird in die AD-Wert-Register gelesen werden, von wo es durch Firmware für weitere Bearbeitung und Manipulation herausgenommen werden kann. Mit diesem Wert bedeutet, dass wir das PWM-Tastverhältnis leicht anpassen können. Zu meinem großen Glück sind beide Werte von 10 Bits, also was ich zu tun haben, verlegen Sie die Bits aus dem AD-Wert registrieren Sie Register der Pflicht-Zyklus. Die Initialisierung Code für das AD-Modul unter den Bildern zu sehen, was ich zu diesem Schritt angebracht.
6. Drehzahl messen
Die Messung der Drehzahl kann durch Messung der externen Interrupts (aus der Komparator, wie oben erwähnt) in Sekundenschnelle einen Zeitraum erreicht werden. Nach der Umstellung auf externe Kommutierung Signal Synchronisation, blieb der Timer-Interrupt aktiviert und auf eine zweite. Ein Zähler in der externen Interrupt Serviceroutine erhöht wurde, haben wir nur, wie viele Grafen zu überprüfen, haben wir in einem Sekunden und teilen es durch sechs, eine volle Umdrehung sechs externe Interrupts gibt. Da wir nun die Anzahl der Impulse in einer Sekunde wissen, können wir es mit 60 die Drehzahl in u/min zu multiplizieren.
7. serielle Kommunikation
Um die Platine einfach zu halten, wird nicht ich es mit Debug-Displays erschweren und viele Debuggen LEDs, die wäre nicht sinnvoll, auf die Sache, sobald es funktioniert alles Recht. Deshalb habe ich beschlossen, serielle Kommunikation und einen Seriell-USB-Konverter verwenden, um gründliche Fehlersuche bei Bedarf durchzuführen. Wenn alles funktioniert, kann diese Debug-Schnittstelle einfach deaktiviert werden, so dass es nicht Prozessorzeit fressen. Umgang mit UART in PIC Prozessoren ist sehr unkompliziert und sehr günstig in Bezug auf Benutzerfreundlichkeit, lernen das Datenblatt lesen alles Sie dort zu ihm ist.
8. Probleme habe ich bei der Arbeit auf der Basisplatine
Ein Problem, das ich getroffen, bei der Arbeit an der Basisplatine war falscher Spannungspegel auf den MOSFET-Toren. Ich endlich das Problem, falsche Auswahl des IC zurückverfolgt, dachte ich 74LS08 ist Pin-kompatibel mit CD4081B, die ich ursprünglich die PCB für gemacht. Ich konnte nicht finden, CD4081B im lokalen Geschäften und dachte einfach durch 74HC08 zu ersetzen und das war's. Es war nicht, wenn Sie die Datenblätter zu überprüfen, werden Sie verstehen, wovon ich spreche. Die Tore sind etwas anders in den beiden Paketen gesetzt, Ausgänge bekam mit Eingängen, das ist, woher die falsche Spannungsebenen invertiert! Ich bestellte einige 4081 ICs aus dem Web, Problem gelöst!
Ein weiteres Problem hatte etwas mit einer fehlenden Verbindung zu tun. Ich habe einfach vergessen, Bohren Sie zwei Löcher und Q6 mit der Gate-Widerstand zu verbinden! Ich verfolgte das mit drei Sonden an die Brücke-Ausgänge und eine Sonde zurück auf dem Weg von der fehlenden Impuls Reisen. Leben ist wirklich einfacher, wenn Sie ein vier-Kanal-Oszilloskop haben. Es gelang mir, zwei Fehler Dank ihm zu debuggen. Kauf eines Bereichs war wirklich groß, aber wirklich gute Investition.