산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

AV 캐비닛 팬 컨트롤러

구성품 및 소모품

Arduino Nano R3
× 1
DHT11 온도 및 습도 센서(4핀)
× 1
5v DC 릴레이 모듈
× 1

이 프로젝트 정보

AV 리시버가 너무 뜨거워서 여름이 오기 전에 캐비닛 팬을 추가하고 싶었습니다. 처음에는 수신기가 켜져 있을 때만 전원이 공급되는 수신기 외부에서 5-12v DC 소스를 찾으려고 했지만 수신기 내부에서 몇 곳만 찾을 수 있었습니다. 또한 수신기의 전원이 꺼진 후 팬이 잠시 동안 작동하기를 원했는데 이에 대한 커패시터 크기 조정이 까다로워지기 시작했습니다.

실온 75F, 캐비닛 온도 109F

아마존에서 온도 조절 팬을 봤는데 생각보다 모두 비싸더군요. 그것들은 모두 30달러가 넘었고 기본적으로 팬, 온도 프로브 및 릴레이였습니다... 부품 상자를 보니 이미 모든 것이 있었습니다.

네, 그렇게 해야 합니다.

먼저 2달러 중국 Arduino Nano에 대한 작은 스케치를 작성했습니다. DHT11 온도 센서와 5v DC 릴레이를 추가했고 매력처럼 작동했습니다.

빠른 프로토타입

다음으로 나는 오래된 USB 전화 충전기로 전체 전원을 공급하기를 원했기 때문에 회전하고 5v로 공기를 이동시키는 오래된 PC 팬을 찾아야했습니다. 5v에서 충분한 CFM을 이동하고 200mA 미만을 유지하는 80mm 팬 2개와 120mm 팬 1개를 찾았습니다. 그래서 몰렉스 연결을 끊고 USB로 배선했습니다.

모든 것이 브레드보드에서 작동하고 있었기 때문에 과열 경보를 위해 일부 상태 LED와 피에조 부저를 추가했습니다. 내가 가지고 있는 작은 프로젝트 상자에 모두 들어 맞습니다.

꼭 맞는 핏은 반바지를 방지하기 위해 많은 뜨거운 접착제를 요구합니다. 멋지고 컴팩트하며 다른 AV 장비와 조화를 이룹니다. 상태 LED:왼쪽 상단=전원(녹색); 왼쪽 하단=온도 정상(녹색); 중간=팬 켜짐(주황색); 오른쪽=과열(빨간색)

컨트롤러는 시작 POST를 통해 모든 팬, LED 및 피에조 알람이 작동 중임을 표시합니다.

전원 켜기 자체 테스트



아두이노 스케치:


컨트롤러는 30초 동안 평균 온도를 측정합니다. 95F 이상이면 팬이 5분 동안 작동한 후 다시 확인합니다. 온도가 120F 이상이면 팬이 계속 작동하는 동안 알람이 울립니다. 온도가 120F 이하로 떨어질 때까지 30초마다 알람이 울립니다.

직렬 출력

실제로 팬은 수신기가 켜진 후 약 2분 후에 작동하며 켜져 있는 동안 내내 작동합니다. 미디어 센터의 전원을 끈 후 팬은 온도가 95F 아래로 떨어지기 전에 최소 5분 동안 작동합니다. 지금까지 과열 경보가 발생하지 않았습니다.

이 프로젝트를 끝내고 Arduino Nano를 ATtiny85로 교체하고 릴레이를 MOSFET으로 교체하는 방법을 살펴보겠습니다. 이것은 훨씬 더 작은 폼 팩터가 될 것이며 PWM을 사용하여 팬 속도를 제어할 수도 있습니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 팬 온도 컨트롤러
  • FanTempControllerC/C++
    릴레이를 통해 팬을 켜기 위해 DHT11 센서의 평균 온도 판독값을 사용하는 Arduino 스케치.<사전>// A/V 캐비닛용 온도 컨트롤러// 팬은 12v(컴퓨터) 또는 5v에 연결된 10A 릴레이로 제어됩니다. (USB) 팬// 대체 과열 경고용 피에조 알람int FANTEMP =95; // 팬이 켜지는 고온 (90*F)int ALARMTEMP =120; // 과열 온도 (120*F)int FANLED =2; // 팬 "켜짐"용 핀 LEDint TEMPOK =3; // 온도가 FANTEMPint 이하일 때 LED ALARMLED =4; // 알람 LED int ALARMPIN =7; // 과열에 대한 가청 경보// DHTPIN =8; (아래에 정의됨)int FANPIN =9; // 팬 스위치용 릴레이#include "DHT.h" // 작성:ladyada, public domain#define DHTPIN 8 // DHT 센서// 사용 중인 유형에 관계없이 주석 처리 해제!#define DHTTYPE DHT11 // DHT 11 //# define DHTTYPE DHT22 // DHT 22(AM2302)//#define DHTTYPE DHT21 // DHT 21(AM2301)// 일반 16mhz용 DHT 센서 초기화 ArduinoDHT dht(DHTPIN, DHTTYPE);// 참고:더 빠른 칩으로 작업하려면, Arduino Due 또는 Teensy와 같이// 1 또는 0으로 간주되는 사이클 수에 대한 임계값을 늘려야 할 수도 있습니다.// 이 임계값에 대한 세 번째 매개변수를 전달하여 이를 수행할 수 있습니다. 올바른 값을 찾는 것은 약간의 ///이지만 일반적으로 CPU가 더 빠를수록// 값이 높아집니다. 16mhz AVR의 기본값은 6입니다. // 84mhz에서 실행되는 Arduino Due의 경우 값 30이 작동합니다.// Arduino Due의 DHT 센서를 초기화하는 예://DHT dht(DHTPIN, DHTTYPE, 30);// 평균에 사용된 판독값 const int numReadings =10;// 변수를 zerofloat로 설정 avetemp =0; 부동 온도 =0; 부동 체크 지연 =0; 무효 설정() { Serial.begin(9600); Serial.println("온도 모니터 시작됨"); dht.begin(); 핀모드(팬핀, 출력); 핀모드(알람핀,출력); 핀 모드(ALARMLED, 출력); 핀모드(팬 LED, 출력); 핀모드(TEMPOK,OUTPUT); 디지털 쓰기(팬핀, 높음); 디지털 쓰기(팬 LED, 높음); 디지털 쓰기(경고, 높음); digitalWrite(TEMPOK, HIGH); for(int x =0; x <5; x++){ // 경보음 테스트(ALARMIN, 220 * x, 75); 지연(100); } Serial.print("팬 테스트 시작(5초) "); for(int x =0; x <5; x++){ Serial.print("."); 지연(1000); } Serial.println("완료"); 디지털 쓰기(팬핀, 낮음); 디지털 쓰기(팬 LED, 낮음); 디지털 쓰기(경고, 낮음); 디지털 쓰기(TEMPOK, LOW); 노톤(알람핀); }void loop() { // 측정 사이에 몇 초를 기다립니다. 지연(2000); 온도 =0; Serial.print("실시간 온도:\t"); for (int x =0; x ALARMTEMP) { digitalWrite(ALARMLED, HIGH); Serial.print("온도가 종료되었습니다. "); Serial.print(ALARMTEMP); Serial.println(", 알람이 켜져 있습니다."); for(int x =0; x <3; x++){ // 5초간 알람을 울립니다. tone(ALAMPIN, 660, 1000); // 팬은 이미 마지막 루프에서 실행 중이어야 합니다. 그렇지 않으면 알람이 울린 직후에 시작됩니다. delay(500); 톤(알람핀, 440, 1000); 지연(500); } 노톤(알람핀); 체크 딜레이 =30000; // 루프를 다시 진행하기 전에 일반 5분 지연을 30초로 전환 } else { digitalWrite(ALARMLED,LOW); Serial.print("온도가 "); Serial.print(ALARMTEMP); Serial.println(", 알람이 꺼져 있습니다."); 체크 지연 =300000; // 온도가 120*F를 넘지 않는 한 팬은 온도를 다시 확인하기 전에 5분 동안 작동합니다. }// 캐비닛이 따뜻하면 팬을 켭니다. if (avetemp> FANTEMP) { digitalWrite(FANPIN, HIGH); 디지털 쓰기(팬 LED, 높음); 디지털 쓰기(TEMPOK, LOW); Serial.print("온도가 종료되었습니다. "); Serial.print(FANTEMP); Serial.print(", 팬이 켜져 있습니다("); Serial.print(checkdelay / 1000 / 60); Serial.println("분)"); 지연(체크 지연); // 최소 5분 켜기(알람이 울리지 않는 한 30초 후에 반복됨) } else { digitalWrite(FANPIN,LOW); 디지털 쓰기(팬 LED, 낮음); 디지털 쓰기(TEMPOK,HIGH); Serial.print("온도가 "); Serial.print(FANTEMP); Serial.println(", 팬이 꺼져 있습니다."); // 팬이 꺼져 있을 때 30초마다 Temp를 읽습니다. } Serial.println(); 직렬.println(); }

    회로도


    제조공정

    1. PWM 전원 컨트롤러
    2. 파일 캐비닛
    3. 온도 제어 팬
    4. 팬 진동 문제 해결
    5. 웹 운영 DMX 컨트롤러
    6. 비디오 게임 작업 자동화 장치
    7. Arduino 게임 컨트롤러
    8. Unopad - Ableton이 포함된 Arduino MIDI 컨트롤러
    9. 진공 형광 디스플레이 컨트롤러
    10. Alexa에 의해 활성화된 Arduino 홈 컨트롤러