Een GPS‑Getimed Ventilatiesysteem voor Boten Bouwen: Relais‑Gedreven Ventilator met PIC16F628A
Bouw een betrouwbare, GPS‑gecontroleerde ventilator om vocht uit een bootkajuit te ventileren. Het systeem gebruikt een PIC16F628A microcontroller, relais, een 12V-batterij en een LCD-display.
Ventilatie is essentieel in krappe, vochtige ruimtes. Zonder juiste luchtstroom kan vocht accumuleren, wat een broedplaats creëert voor schimmel en fungi. In mijn boot, waar houtoppervlakken overvloedig zijn, ontwierp ik een simpele maar effectieve oplossing: een relais‑gedreven ventilator die op een vast schema draait, gevoed door een autobatterij en beheerd door een GPS-module voor nauwkeurige timing.
Waarom Gecontroleerde Ventilatie Belangrijk Is
In kleine kamers leidt stilstaande lucht tot condensatie. In de loop van de tijd moedigt deze vochtigheid schimmeligroei aan, wat hout kan beschadigen en luchtkwaliteit kan degraderen. Terwijl regelmatige schoonmaak het probleem kan verlichten, biedt geautomatiseerde ventilatie een meer consistente, laag‑onderhoud benadering.
Systeemoverzicht
De ventilator moet:
- Efficiënt lucht circuleren.
- Automatisch op een vast schema werken.
- Stroom trekken van een 12V autobatterij.
- De batterij opladen via een speciale lader wanneer de ventilator uitstaat.
- Huidige tijd en status tonen op een LCD.
Belangrijke componenten zijn:
- 12V 4,5A ventilator
- PIC16F628A microcontroller
- 12V batterij en lader
- Twee relais (ventilatorbesturing & laderbesturing)
- GPS-module (Skylab SKM53‑serie)
- LCD-display
- Zekeringen (12V, 8A)
- Diverse weerstanden, condensatoren en connectors
De ventilator draait vijf minuten per uur – een waarde hard‑gecodeerd in de firmware. Wanneer de ventilator actief is, is het lader-relais gede-energiseerd om overladen te voorkomen. Wanneer de ventilator stopt, wordt het lader-relais weer ge-energiseerd, wat de batterij opgeladen houdt.
GPS-timing met de Skylab SKM53
De SKM53 levert NMEA-zinnen via UART elke seconde. Ik gebruik de RMC-zin om de huidige UTC-tijd te extraheren. Voorbeeld:
$GPRMC,075747.000,A,2233.89990,N,11405.3368,E,3.9,357.8,260210,,,A*6ADe eerste zes cijfers (075747) staan voor 07:57:47. Het statusveld (de letter na de derde komma) geeft een geldige fix ("A") of ongeldige ("V") aan. Mijn firmware controleert deze vlag voordat de timestamp gebruikt wordt.
Voor betrouwbare seriële communicatie adviseert de datasheet een 10 kΩ pull‑up op zowel RXD als TXD en decoupleringscondensatoren (10 µF elektrolytisch + 0,1 µF keramisch). Ik gebruikte een enkele 0,1 µF keramische op het breadboard en observeerde geen instabiliteit.
Blokdiagram
Het visualiseren van het systeem als discrete blokken vereenvoudigt troubleshooting en schematische creatie.
Hardware-ontwerp
Het schema volgt het blokdiagram en toont de verbindingen van elk component.
Ik koos de LM7805 lineaire regelaar voor eenvoud, met extra smoothing condensatoren om oscillatie te voorkomen. Hoewel een moderne schakelregelaar de efficiëntie zou verbeteren, maakten de LM7805's betrouwbaarheid en de onderdelen die ik beschikbaar had het een praktische keuze.
Alle componenten zijn gemonteerd op een stevige PCB, met een 12V 8A zekering op zowel de ventilator- als ladercircuits voor veiligheid.
Firmware-structuur
De C-bron is goed gecommentarieerd en volgt een duidelijke structuur:
- Bibliotheken includen en configuratiebits instellen.
- Constanten definiëren (kristalfrequentie, poorttoewijzingen).
- Globale variabelen declareren.
- Functies prototypen.
- Functies implementeren met inline-commentaar.
- De main-lus betreden, die GPS-data leest, timers beheert en relais schakelt.
Voorbeeld: UART-initialisatie.
// FUNCTIE OM DE UART POORT TE INITIALISEREN
void uart_init(void) {
TXSTAbits.BRGH = 0; // Hoge baudrate uitgeschakeld
TXSTAbits.SYNC = 0; // Asynchrone modus
TXSTAbits.TX9 = 0; // 8‑bit transmissie
RCSTAbits.CREN = 1; // Continue ontvangst inschakelen
/*
* Baudrate berekening (16 MHz kristal, 9600 bps):
* SPBRG = (16 MHz / 9600) / 64 - 1 = 25
*/
SPBRG = 25;
PIE1bits.RCIE = 1; // UART ontvangst interrupt inschakelen
RCSTAbits.SPEN = 1; // Seriële poort inschakelen
TXSTAbits.TXEN = 1; // Transmissie inschakelen
}
Download de volledige bron hier: jc_lettheairflow.c.zip.
Conclusie
Door een GPS-module te integreren voor nauwkeurige timing, relais voor stroombeheer, en een 12V-batterij voor draagbaarheid, houdt dit systeem een bootkajuit droog en schimmelmvrij. Het ontwerp is modulair – eenvoudig uitbreidbaar om de datum weer te geven of extra sensoren te integreren.
Afbeeldingen
Probeer dit project zelf! Download de BOM en code.
Industrieel materiaal
- Bouw een Winnend Prototype: Stapsgewijze Gids voor Snelle Productontwikkeling
- Efficiëntie van uw luchtcompressorsystemen verhogen: Bewezen tips & strategieën
- Hoe Luchtdrogers Werken: Gecomprimeerde Lucht Schoon & Efficiënt Houden
- Uitgebreide Gids voor Het Verwijderen van Verontreinigingen uit Gecomprimeerde Lucht
- Stap-voor-Stap Gids voor het Vervangen van een Hydraulische Slang op Zware Apparatuur
- Professionele Gids Voor Het Bouwen Van Een Metaaldraaibank Span
- Compressiewarmte Drogers Uitgelegd: Zorgen Voor Droge, Hoogwaardige Gecomprimeerde Lucht
- De Rotatie Tandcompressor Begrijpen: Hoe Het Werkt
- Uw gecomprimeerde lucht systeem vernieuwen: Een nieuwjaarscommitment voor veiligheid en efficiëntie
- Hoe gecomprimeerde lucht elite drag racing prestaties aandrijft
- De Complete Gids voor Glasvezelproductie