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

AV-kastventilatorcontroller

Componenten en benodigdheden

Arduino Nano R3
× 1
DHT11 temperatuur- en vochtigheidssensor (4 pinnen)
× 1
5v DC-relaismodule
× 1

Over dit project

Mijn AV-receiver werd erg heet, dus ik wilde een kastventilator toevoegen voor de zomerhitte. In eerste instantie probeerde ik een 5-12v DC-bron aan de buitenkant van de ontvanger te vinden die alleen wordt ingeschakeld als de ontvanger aan staat, maar ik kon maar een paar plaatsen in de ontvanger vinden. Ik wilde ook dat de ventilatoren een tijdje zouden blijven draaien nadat de ontvanger was uitgeschakeld, en de grootte van de condensatoren daarvoor begon lastig te worden.

Kamertemp 75F, kasttemp 109F

Ik keek naar ventilatoren met temperatuurregeling op Amazon en ze leken allemaal duurder dan ik dacht dat ze zouden moeten zijn. Ze waren allemaal meer dan $ 30 en waren eigenlijk gewoon een ventilator, temperatuursonde en een relais ... Ik keek in mijn onderdelenbak en had al dat spul al.

Ja, dat zou het moeten doen

Eerst schreef ik een kleine schets voor een $ 2 Chinese Arduino Nano. Een DHT11-temperatuursensor en een 5v DC-relais toegevoegd en het werkte als een charme.

Snel prototype

Vervolgens moest ik een paar oude pc-fans vinden die zouden draaien en lucht verplaatsen op slechts 5v, omdat ik wilde dat het hele ding zou worden gevoed door een oude USB-telefoonoplader. Ik vond twee 80 mm en één 120 mm ventilatoren die nog steeds genoeg CFM bewogen bij 5 V en onder de 200 mA bleven, dus ik verbrak de molex-verbinding en bekabelde ze als USB.

Alles werkte op het breadboard, dus ik heb uiteindelijk wat status-LED's en een piëzo-zoemer toegevoegd voor een oververhittingsalarm. Het paste allemaal mooi in een kleine projectdoos die ik had.

Nauwsluitende pasvorm vereist veel hete lijm om shorts te voorkomen Lekker compact en past goed bij de rest van de AV-apparatuur Status LED's:linksboven=power (groen); linksonder=temp OK (groen); midden=ventilatoren aan (oranje); rechts=oververhitting (rood)

Controller doorloopt een opstart-POST om te laten zien dat alle ventilatoren, LED's en piëzo-alarm werken

Zelftest inschakelen



Arduino-schets:


De controller meet de gemiddelde temperatuur over een periode van 30 seconden. Als het meer dan 95F is, slaat de ventilator 5 minuten aan voordat hij opnieuw controleert. Als de temperatuur hoger is dan 120F, klinkt het alarm terwijl de ventilatoren blijven draaien. Alarm klinkt elke 30 seconden totdat de temperatuur weer onder 120F is.

Seriële uitgang

In de praktijk slaan de ventilatoren aan ongeveer 2 minuten nadat de ontvanger is aangezet en blijven ze de hele tijd draaien. Nadat het mediacenter is uitgeschakeld, draaien de ventilatoren minimaal 5 minuten voordat de temperatuur onder de 95F komt. Tot nu toe is het oververhittingsalarm niet geactiveerd.

Als ik dit project zou overdoen, zou ik kijken naar het vervangen van de Arduino Nano door een ATtiny85 en het relais door een MOSFET. Dit zou een veel kleinere vormfactor zijn en me ook in staat stellen om PWM te gebruiken om de ventilatorsnelheid te regelen.

Code

  • FanTempController
FanTempControllerC/C++
Arduino-schets die de gemiddelde temperatuurwaarde van een DHT11-sensor gebruikt om een ​​ventilator aan te zetten via een relais.
// Temperatuurregelaar voor A/V-kast// Ventilator wordt bestuurd door een 10A-relais aangesloten op een 12v (computer) of 5v (USB) Ventilator// Piëzo-alarm voor alternatieve oververhittingswaarschuwingint FANTEMP =95; // Hoge temperatuur waarbij de ventilator wordt ingeschakeld (90*F)int ALARMTEMP =120; // Oververhittingstemperatuur (120 * F) int VENTILATOR =2; // Pin voor ventilator "aan" LEDint TEMPOK =3; // LED voor wanneer de temperatuur onder FANTEMPint ALARMLED =4 is; // Alarm-LED int ALARMPIN =7; // Hoorbaar alarm voor oververhitting// DHTPIN =8; (hieronder gedefinieerd) in FANPIN =9; // Relais voor ventilatorschakelaar#include "DHT.h" // Geschreven door ladyada, publiek domein#define DHTPIN 8 // DHT-sensor// Maak geen opmerkingen over welk type je ook gebruikt!#define DHTTYPE DHT11 // DHT 11 //# definieer DHTTYPE DHT22 // DHT 22 (AM2302)//#define DHTTYPE DHT21 // DHT 21 (AM2301)// Initialiseer DHT-sensor voor normale 16mhz ArduinoDHT dht(DHTPIN, DHTTYPE);// OPMERKING:Voor het werken met een snellere chip, zoals een Arduino Due of Teensy, moet u// mogelijk de drempel verhogen voor cyclustellingen die als 1 of 0 worden beschouwd.// U kunt dit doen door een 3e parameter voor deze drempel door te geven. Het is een beetje// gehannes om de juiste waarde te vinden, maar over het algemeen geldt:hoe sneller de CPU, hoe hoger de waarde. De standaardwaarde voor een 16 MHz AVR is een waarde van 6. Voor een// Arduino Due die werkt op 84 MHz, werkt een waarde van 30.// Voorbeeld om de DHT-sensor te initialiseren voor Arduino Due://DHT dht(DHTPIN, DHTTYPE, 30);// Uitlezingen gebruikt voor averageconst int numReadings =10;// Stel variabelen in op zerofloat avetemp =0; float temp =0;float checkdelay =0; void setup() { Serial.begin(9600); Serial.println("Temp Monitor gestart"); dht.begin(); pinMode (FANPIN, UITGANG); pinMode (ALARMPIN, UITGANG); pinMode (ALARMLED, UITGANG); pinMode (FANLED, UITGANG); pinMode (TEMPOK, UITGANG); digitalWrite (FANPIN, HOOG); digitalWrite (FANLED, HOOG); digitalWrite (ALARMLED, HOOG); digitalWrite (TEMPOK, HOOG); for(int x =0; x <5; x++){ // Test Alarmtoon (ALARMPIN, 220 * x, 75); vertraging (100); } Serial.print("Ventilatortest gestart (5 seconden) "); for(int x =0; x <5; x++){ Serial.print("."); vertraging (1000); } Serial.println("Gereed"); digitalWrite (FANPIN, LAAG); digitalWrite (FANLED, LAAG); digitalWrite (ALARMLED, LAAG); digitalWrite (TEMPOK, LAAG); geen toon (ALARMPIN); }void loop() { // Wacht een paar seconden tussen metingen. vertraging (2000); temperatuur =0; Serial.print("Realtime temperatuur:\t"); for (int x =0; x 
ALARMTEMP) { digitalWrite (ALARMLED, HIGH); Serial.print("Temperatuur is hoger"); Seriële.afdruk (ALARMTEMP); Serial.println(", Alarm is aan"); for(int x =0; x <3; x++){ // Laat het alarm klinken gedurende 5 seconden toon (ALARMPIN, 660, 1000); // Ventilator zou al moeten draaien vanaf de laatste lus, zo niet, dan start hij direct nadat het alarm klinkt vertraging (500); toon (ALARMPIN, 440, 1000); vertraging (500); } geen toon (ALARMPIN); controlevertraging =30000; // Schakel de normale vertraging van 5 minuten naar 30 seconden voordat u opnieuw door de lus gaat } else { digitalWrite(ALARMLED,LOW); Serial.print("Temperatuur is lager dan "); Seriële.afdruk (ALARMTEMP); Serial.println(", Alarm is uit"); controlevertraging =300000; // Tenzij de temperatuur hoger is dan 120*F, draait de ventilator 5 minuten voordat de temperatuur opnieuw wordt gecontroleerd }// Zet de ventilator aan als de kast warm is als (avetemp>
FANTEMP) {digitalWrite(FANPIN, HIGH); digitalWrite (FANLED, HOOG); digitalWrite (TEMPOK, LAAG); Serial.print("Temperatuur is hoger"); Serieafdruk (FANTEMP); Serial.print(", Ventilator is aan (voor "); Serial.print(checkdelay / 1000/60); Serial.println("minuten)"); vertraging (controlevertraging); // zet minimaal 5 min aan (tenzij het alarm afgaat, dan loopt het na 30 seconden in een lus) } else { digitalWrite(FANPIN,LOW); digitalWrite (FANLED, LAAG); digitalWrite (TEMPOK, HOOG); Serial.print("Temperatuur is lager dan "); Serieafdruk (FANTEMP); Serial.println(", Ventilator staat uit"); // Als de ventilator uit staat, wordt de temperatuur elke 30 seconden gelezen } Serial.println(); Serieel.println(); }

Schema's


Productieproces

  1. PWM-vermogenscontroller
  2. Archiefkast
  3. Temperatuurgestuurde ventilator
  4. Problemen met trillingen van ventilatoren oplossen
  5. Web-gestuurde DMX-controller
  6. Automatiseringsapparaat voor videogametaken
  7. Arduino-gamecontroller
  8. Unopad - Arduino MIDI-controller met Ableton
  9. Vacuüm TL-beeldschermcontroller
  10. Arduino Home Controller geactiveerd door Alexa
  11. MK2 Plus robotarmcontroller