Stap 8: Start spinnen - het onderste bord ingebruikneming functie
1. Inleiding
Deze PCB is verantwoordelijk voor het besturen van de motor snel genoeg voor de LEDs om "onzichtbaar" te worden en hun licht wazig. Ik maakte twee versies van dit, omdat ik was niet in staat is aan de macht (PIC18F46J50 zou niet program en ik niet wilde steken op dat) het vorige bestuur. Op de tweede versie besloten heb ik om een PIC18F4550 een grote duik pakket, om het solderen en metingen eenvoudiger. Ik werk graag via holes PCB's, na het oppakken van het DIP40-pakket voor de PIC ik draaide alles DIP en via holes onderdelen. Weerstanden, geïntegreerde schakelingen, alles opzij de MOSFETs.
Deze PCB is de eenvoudigste van de platen die ik heb gemaakt (I de Magneethouder te tellen als een PCB, misschien wel de moeilijkste die boren, stapel, zag..). De onderdelen op dit forum:
- 1 x PIC18F4550 microcontroller met USB - regelt alles
- 6 x N kanaal MOSFETs - zwevend maken of de spoelen van de BLDC verbinden met de PSU-rails
- 2 x CD4081B quad, dubbele ingang en-poorten - deze geven de signalen die de MOSFETs aan/uit schakelen
- 1 x 7805 voltage stabilisator - voorziet een mooie schone 5V voeding met de PIC en de randapparatuur
- 1 dubbele Comparateur van de x LM2903 met open afvoer uitgang - vangt spanningspieken om door te gaan met het patroon telefonieoverdracht
- 3 x LED's - signaal de modus waarin het PIC is op dit moment: bootloader/gebruikersapplicatie
- 2 x knoppen - externe gebruiker ingangen voor foutopsporing
- 1 x Potentiometer - verandert de taakcyclus die krijgt bovenop met de signalen telefonieoverdracht
- n x weerstanden - huidige beperken, pull-ups, pull-downs
- n x condensatoren - caps filteren
- n x Pin headers - verbinding met andere platen
Dit is de eerste PCB die we zetten in functie moeten, omdat de bovenste bestuur zijn macht uit het verkeer van de motor trekken zal. Dit is wat wij moeten doen hier:
- Macht op het ding en zet de bootloader USB in functie
- Controle van de zes N-MOSFETs verzekeren
- Drijvende LEDs
- Analoge interfacing
- Meten van t/min
- Seriële communicatie voor foutopsporing
Laten we hen één voor één!
2. Powering van het apparaat en maken gebruik van de USB-module binnen de PIC18F4550
Zoals ik al zei in de vorige stap, besloten heb ik om het gebruik van USB naar firmware-update. Na het flashen van de firmware naar de PIC, ik haalde diep adem en draaide op mijn PSU. En dan opeens... niets. Het werkte niet, en het gaf me nogal een ding te denken over, totdat ik kwam met de oplossing van de extra condensator. Na dat waren er geen problemen op alle, geen fouten, niets. De LED die gaan knipperen moest zodra de bootloader liep was inderdaad knipperen, nadat u bent overgeschakeld naar de code van de toepassing van de gebruiker kon ik naar een andere LED flash. Omschakeling tussen bootloader en gebruiker toepassingscode was goed zo goed werkt. Opstarten en bootloader gebruik: gecontroleerd!
3. rijden de borstelloze DC-motor
De BLDC motor heeft drie pinnen, moeten we om te controleren de spanning over alle drie te maken het verplaatsen van de weg die wij verwachten. De staat waar de drie pinnen zijn zal altijd anders zijn, veranderen tussen hoge impedantie, GND en VDD. Het patroon van dat deze drie pinnen moeten alternatieve wordt getoond op de afbeelding hierboven. Opzij van het gebruik van zes I/O pinnen van de microcontroller, zal ik ook superponeren een PWM-signaal over de drie lijnen. Dit kan worden bereikt met zes en-poorten met hun uitgangen op de zes MOSFET-poorten. De poorten die gebruikt werden: CD4081B. Op deze manier kan één de controle van de snelheid met behulp van slechts één variabele - het pulserend sproeien.
We moeten zorgen voor een interface voor het wijzigen van het pulserend sproeien van de buitenkant, de meest geschikte manier hiervoor is het gebruik van de potentiometer. Een interne, 10 bit AD converter neemt de spanning op de analoge input en converteert deze naar een digitale waarde. Gelukkig dat ons, de taakcyclus register is 10 bits breed zo goed, geen filteren of manipulatie nodig, wij enkel moeten overdragen registreert de waarde van de ADC tot de taakcyclus registers. De setup voor beide modules is eenvoudig, ik gebruikte code knipsels uit oudere projecten en de werkelijke berekeningen aan hen aangepast. Na het monteren van dit forum zag ik dat de motor niet snel genoeg was draaien, was het eerder intensiveren. De telefonieoverdracht signalen waren getimede door een willekeurig geselecteerde timer-interrupt van 100ms, en dat was niet all-recht. Een vriend stelde me deze timer onderbreken omzetten in een externe interrupt en maak ook enige hardware veranderingen. Onnodig te zeggen, een andere PCB uit vraag was, een andere (kleinere) PCB moest worden ontworpen voor het hosten van de extra onderdelen zijn suggestie genoemd. Het doel was om de spanning van de motor terminals, doorgeven via een verdeler, de drie signalen met elkaar verbinden via de huidige beperkende weerstanden en tot slot leg ze op een Comparateur input. Ik deze kleine PCB zonder de weerstanden op de niet-inverterende ingang gemonteerd, en gemeten van de spanning op de inverterende ingang, waar dit signaal van de motor uit kwam. Ik zag dat het bedroeg ongeveer 500mV, de niet-inverterende weerstanden moesten worden gepickt, zodat de comparator zal leiden tot telkens een piek kwam op één van de drie ingangen. Zie de afbeeldingen voor een beter begrip van dit deel!
Ik doorgestuurd van de output van de comparator aan een externe interrupt op de PIC8F4550, en veranderde de interrupt service routine om te controleren tegen deze gebeurtenis voordat er naar de volgende cyclus van de apparatuur voor telefonische overdracht. Op deze manier de motor niet synchroon vallen en zal beurt snel genoeg voor ons te werken.
oszcilloszkop kep een harom jelrol, az egyesitett jelrol is
oszcilloszkop kep een komparator ket bemeneterol es een kimeneterol
4. rijden van LEDs
Rijden de debug of status LEDs is zo simpel als het kan krijgen, ik de weerstand voor 20mA berekend: R = U / I = 5/0,02 = 250 Ohm. Als u wilt dat helderder, zetten weerstanden van lagere waarde, indien dimmer gewenst, hogere weerstand waarde weerstanden gezet.
5. Analoge interfacing
Na een aanpassing van de PWM-taakcyclus potentiometer is de beste manier om de rotatiesnelheid van de voor de spindel instellen. De analoog / digitaal-converter kan worden gebruikt om te lezen van de center-kraan van de potmeter, de spanning zal worden gelezen in het AD waarde registers, van waar het kan worden genomen door de firmware voor verdere verwerking en manipulatie. Met deze waarde betekent, dat we de taakcyclus van de PWM gemakkelijk kunt aanpassen. Tot mijn groot geluk dat beide waarden 10 bits zijn, dus wat ik moet doen is om de route van de bits van de waarde van advertentie registreren om het register van de cyclus plicht. De initialisatie code voor de AD-module kan worden gezien onder de beelden die ik aan deze stap.
6. de draaisnelheid van de meting
De meting van de rotatiesnelheid kan worden bereikt door het meten van de externe interrupts (van de comparator zoals hierboven vermeld) in een een tweede periode. Nadat u bent overgeschakeld naar externe telefonieoverdracht signaal synchronization, de timer-interrupt bleef ingeschakeld en ingesteld op een tweede. Een item was verhoogd in de externe interrupt service routine, hebben we net om te controleren hoeveel graven we hebben in één seconden en verdeel het door zes, één volledige omwenteling geeft zes externe interrupts. Nu dat we het aantal pulsen in een tweede weet, kunnen we het vermenigvuldigen met 60 te krijgen van de draaisnelheid in RPM.
7. seriële communicatie
De PCB om simpel te houden, ik zal niet bemoeilijken het met debug displays en veel debug LEDs, die nuttig is voor het ding, zou worden zodra het alle-rechten werkt. Daarom heb ik besloten het gebruik van seriële communicatie en een serial-usb converter te doen grondige foutopsporing indien nodig. Als alles werkt, kan deze debug interface worden gewoon uitgeschakeld, zodat het niet processortijd opeten. UART in PIC processoren behandeling is heel eenvoudig en zeer handig in termen van gebruiksgemak, leert het lezen van het gegevensblad u alles wat er is.
8. problemen ik raakte bij het werken op het basisbord
Een probleem die ik raakte toen het basisbord bezig was onjuist spanningsniveaus op de MOSFET-poorten. Ik eindelijk teruggevoerd het probleem tot onjuiste selectie van IC, ik dacht dat 74LS08 pin-compatibel is met de CD4081B, die ik oorspronkelijk voorzien in de PCB. Ik kon niet vinden CD4081B bij de lokale winkels en dacht dat ze gewoon vervangen door 74HC08 en thats it. Het was niet, als u het selectievakje de gegevensbladen, zult u begrijpen wat ik over spreek. De poorten staan lichtjes verschillend in de twee pakketten, uitgangen kreeg omgekeerd met ingangen, dat is waar de onjuiste spanningsniveaus vandaan! Ik bestelde sommige 4081 ICs uit het web, probleem opgelost!
Een ander probleem had iets te maken met een ontbrekende verbinding. Ik vergat gewoon om twee gaten boren en Q6 verbinden met de poort weerstand! Mij zweem dit met drie sondes op de uitgangen van de brug en één sonde reizen terug op de weg van de ontbrekende pols. Leven is echt makkelijker als je een vier kanaal oscilloscoop. Ik erin geslaagd om twee fouten dankzij het debug. Het kopen van een scope was een echt groot, maar echt een goede investering.