Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Equipment >> Industrieel materiaal

Hoe maak je een getimede luchtventilator

Wilt u een ruimte ventileren? Dit artikel laat je zien hoe ik een relaisgestuurde, GPS-getimede ventilator heb gemaakt om de vochtige lucht in de cabine van mijn boot af te voeren. Het wordt bestuurd met een PIC16F628A en heeft een LCD.

Een ruimte ventileren? Dit artikel laat je zien hoe ik een relaisgestuurde, GPS-getimede ventilator heb gemaakt om de vochtige lucht in de cabine van mijn boot af te voeren. Het wordt bestuurd met een PIC16F628A en heeft een LCD.

Laat de lucht stromen

In kleine ruimtes waar weinig tot geen ventilatie is, heeft de lucht de neiging stil te staan. Als de lucht een beetje vochtig is, heb je zeker schimmel en schimmels op bepaalde plaatsen.

Schimmels en schimmels komen in de natuur voor en zijn nodig om bladeren, hout en ander plantenresten af ​​te breken. Aangezien ik heel veel hout in mijn boot heb, zal ik daar zeker schimmel en zwammen hebben. Ik kan niet voorkomen dat ze binnenkomen, maar ik kan wel enkele maatregelen nemen om te proberen de omgeving in mijn boot zo vijandig mogelijk te houden voor de schimmels en schimmels.

Er zijn minstens twee manieren om hiermee om te gaan. Een manier is om volgens een strak schema te wassen en schoon te maken. Nou, hoe leuk is dat? Omdat ik de nerd ben die ik ben, heb ik in plaats daarvan iets bedacht:een ventilator die circuleert en de vochtige lucht naar buiten blaast op een vaste, getimede basis.

Het systeem ontwerpen

Ik wil dat het systeem het volgende doet:

  • Cirkel door de lucht
  • Automatisch in-/uitschakelen, met regelmatige tussenpozen
  • Werken vanaf een auto-accu
  • Bevat een batterijlader om de batterij op te laden
  • Bevat een display met de tijd en andere informatie

Om zo'n systeem te maken heb ik de volgende onderdelen nodig:

  • Een 12v-ventilator
  • Een microcontroller
  • Een 12v-batterij en een 12v-batterijlader
  • 2 relais, iets om de tijd bij te houden en schroefklemmen.
  • Andere onderdelen, volgens onderstaande onderdelenlijst

Ik wil dat de ventilator elk uur vijf minuten draait. Dat wordt hard gecodeerd in de software.

De installatie werkt op een auto-accu. Mijn ventilator is geclassificeerd als 12v 4.5A. Om ervoor te zorgen dat de accu altijd top-charged is, sluit ik hem aan op een acculader. Om ervoor te zorgen dat de acculader niet overbelast raakt als de ventilator draait, laat ik het systeem de oplader "loskoppelen" terwijl de ventilator draait. Eén relais bedient de ventilator en het andere relais bedient de acculader. Als de ventilator draait, wordt de batterij niet opgeladen en als de ventilator niet draait, wordt de batterij opgeladen.

Om de tijd bij te houden, gebruik ik een GPS-module. In dit project gebruik ik de Skylab SKM53-serie module (PDF). Dit apparaat verzendt elke seconde verschillende NMEA-zinnen via UART. De datasheet raadt aan om een ​​10K pull-up weerstand te gebruiken op zowel RXD als TXD. Dit verhoogt de stabiliteit van de seriële data. Dat heb ik niet gedaan en ik heb geen instabiliteit opgemerkt. Ik heb misschien geluk. Op dezelfde pagina in de datasheet staat dat er geschikte ontkoppelingscondensatoren moeten worden toegevoegd. Een 10uF elektrolytisch en een 0.1uF keramiek. Toen ik het circuit op een breadboard zette, gebruikte ik alleen keramiek van 0.1uF.

Screenshot uit de Skylab-datasheet (PDF).

Ik gebruik de zin "RMC" om de tijd te krijgen. Een voorbeeld van een RMC-zin is de volgende:

$GPRMC,075747.000,A,2233.89990,N,11405.3368,E,3.9,357.8.260210,,,A*6A

De eerste cijfers na $GPRMC zijn de tijd. In dit voorbeeld is de tijd 07:57:47. We hebben die informatie nodig.

Het volgende dat we nodig hebben, is het voorvoegsel dat ons vertelt of de GPS-module een geldige positiebepaling heeft. In het bovenstaande voorbeeld is dat de hoofdletter A na de drie nullen.

Een "A" geeft een geldige fix aan en een "V" geeft een ongeldige fix aan. In mijn software controleer ik op een geldige fix. Deze letters zijn hoofdlettergevoelig.

Om projecten te structureren, maak ik graag een blokschema. Op deze manier "visualiseer" ik wat ik wil doen.

In het bovenstaande blokschema heb ik alles opgesplitst in hun eigen blok. Dit is ook handig als ik problemen met het schema of circuit moet oplossen.

Hardware

Het schema is gebaseerd op het blokschema. Ik heb alle blokken in het blokschema gereproduceerd om de componenten en hun verbindingen in het circuit weer te geven.

In de datasheet van de LM7805-regelaar staat dat je voor een standaardtoepassing alleen een 0,33uF op de invoerpin nodig hebt en een 0,1uF op de uitvoerpin. Dus waarom gebruik ik verschillende value caps en wat extra? Ik gebruik ze voor het afvlakken van de invoer en de uitvoer. Het is misschien een beetje te veel, maar ik heb een zeer goede ervaring met deze regelaarconfiguratie. Als u geen condensatoren gebruikt, kan de regelaar gaan oscilleren. De LM7805 regelaar is een oude lineaire regelaar. Waarom geen moderne schakelende regelaar gebruiken? De schakelende regelaars zijn een stuk efficiënter dan de lineaire regelaars. Dit is wat ik had liggen.

Ik had op onderdelen en ruimte kunnen besparen door slechts één relais te gebruiken. Ik wil twee relais. Een van de redenen om twee relais te gebruiken, is dat ik een klein tijdsbestek wil hebben tussen het moment waarop de oplader wordt onderbroken en de ventilator start.

Ik heb de onderdelenlijst uit BOM.ULP geïmporteerd in OpenOffice Calc en enkele van de onnodige kolommen verwijderd:

Niet weergegeven in het schema zijn mijn zekeringen. Ik heb een 12v 8A zekering op de positieve draad van de ventilator, en ik heb dezelfde op de positieve draad van de batterijladers.

Software

U kunt de C-source downloaden via de downloadlink aan het einde van dit artikel. De code is goed becommentarieerd, maar ik zal hier wat extra hoogtepunten doen.

Als ik een programma maak, volg ik een bepaalde structuur. Dit diagram toont de structuur:

De code begint met het opnemen van de benodigde bibliotheken, gevolgd door de configuratiebits. Het wordt als een goede programmeerpraktijk beschouwd om de configuratiebits in de broncode op te nemen. Dan is het een stuk makkelijker om te zien wat je hebt gedaan en voor anderen om te helpen bij het oplossen van problemen. Trouwens, als je een project na een paar maanden weer oppakt, zie je de stukjes meteen.

Als de configuratiebits in orde zijn, ga ik verder met de definities. Hier definieer ik de kristalsnelheid die ik op de circuits heb aangesloten. De poorten van de microcontroller zijn ook gedefinieerd.

Het volgende is de variabelen:alle variabelen worden hier gedeclareerd.

Nu is het tijd om een ​​prototype van de functies te maken. Hier vermeld ik alle functies die het programma gebruikt. Sommige programmeurs vinden dit tijdverspilling, maar ik vind het leuk en ik bewaar het. Het is eigenlijk wel nodig als je het programma structureert met de functies na de hoofdprogrammalus.

Vervolgens komen de functies. Nu is het echt belangrijk om commentaar te geven. Ik heb meestal een paar regels over elke functie die vertellen wat de functie in het algemeen doet. Ik becommentarieer ook coderegels binnen de functies.

Een voorbeeld is de functie die de UART-poort in dit project initialiseert:

// FUNCTIE OM DE UART-POORT TE INITEREN void uart_init(void) { TXSTAbits.BRGH =0; // hoge baud selectiebit, 1=hoog, 0=laag TXSTAbits.SYNC =0; // Selectiebit USART-modus, 1 =synchronisatiemodus, 0 =asynchrone modus TXSTAbits.TX9 =0; // 9-bit selectiebit, 1=9-bit transmissie, 0=8-bit transmissie RCSTAbits.CREN =1; // Continu ontvangen inschakelen bit, 1 =continu ontvangen inschakelen /* Bereken de SPBRG met 16MHz kristal 16MHz 16000000 /9600 =1666.6666 1666.6666 / 64 =26.0416 26.0416 - 1=25.0416 25,041 =25 */ SPBRG =25; // 9600-n-8-1 PIE1bits.RCIE =1; // USART ontvangen interrupt enable bit, 1=inschakelen RCSTAbits.SPEN =1; // Seriële poort inschakelen bit, 1 =seriële poort inschakelen TXSTAbits.TXEN =1; // zenden inschakelen bit, 1 =verzenden eanble opbrengst; }  

U ziet de eerste commentaarregel waarin wordt uitgelegd wat de functie doet. Vervolgens worden alle coderegels becommentarieerd, zodat ik weet wat er aan de hand is.

Als alle functies aanwezig zijn, is het tijd voor het hoofdprogramma. Het hoofdprogramma begint met een paar instructies voordat het een lus binnengaat die voor altijd wordt uitgevoerd.

jc_lettheairflow.c.zip

Conclusie

In dit artikel heb ik geprobeerd de omgeving in mijn boot zo vijandig mogelijk te maken voor schimmels en schimmels met een ventilator die blaast en de lucht laat circuleren. De ventilator is aangesloten op een pijp die uit de cabine gaat. Ik heb een GPS-module gebruikt om de tijd bij te houden en ik heb twee relais gebruikt om de ventilator aan/uit te zetten. Om ervoor te zorgen dat de batterij opgeladen blijft, heb ik een ander relais gebruikt om een ​​batterijlader aan en uit te zetten.

Ik laat het aan de lezer over om dit circuit naar een hoger niveau te tillen en de datum weer te geven.

Waarom een ​​GPS-module gebruiken? Ik had de microcontroller als een simpele timer kunnen gebruiken. Toen moest ik een soort interface maken, om de tijd in te stellen. Of ik zou blij zijn als het draait zonder rekening te houden met realtime. Het zou elk heel uur 5 minuten lopen. Met de GPS kan ik het programma programmeren om vijf minuten per heel uur te lopen.

Afbeelding

Probeer dit project zelf eens! De stuklijst ophalen.


Industrieel materiaal

  1. Hoe maak je glasvezel
  2. Hoe maak je een prototype?
  3. Hoe u uw luchtcompressorsystemen efficiënter kunt maken?
  4. Hoe werken luchtdrogers?
  5. Hoe verontreinigingen in perslucht te verwijderen
  6. Een hydraulische slang vervangen
  7. Hoe maak je een metalen klauwplaat
  8. Hoe het werkt:Heat of Compression Dryer
  9. Hoe het werkt:roterende tandcompressor
  10. Maak een resolutie om opnieuw toe te wijden aan uw persluchtsysteem
  11. Een blik op hoe perslucht brandstof maakt voor dragraces