-
아두이노 프로젝트 | 휴대용 냉각기Technology/Arduino 2024. 11. 23. 16:19
1. 휴대용 냉각기
휴대용 냉각기 일상에서 쉽게 발견할 수 있는 아이스박스를 아두이노 플랫폼을 이용해 휴대용 냉각기로 개조해보자. 구현하고자 하는 휴대용 냉각기는 펠티어 열전소자, 열전소자 발열 해소와 냉각기 내부 냉기 순환을 위한 DC 12V 냉각팬 2개, 이들을 제어하기 위한 DC 5V 릴레이 모듈로 구성되어 있다. 사용자가 냉각 온도를 직접 선택할 수 있도록 가변저항과 열전대, LCD 모듈이 추가되어 있다. 사용자가 가변저항을 조작해 원하는 냉각 온도를 선택하면 상온에서 해당 온도에 도달할 때까지 펠티어 열전소자와 냉각팬을 동작한다. 설정한 온도에 도달한 뒤에는 냉각기 내부 온도가 설정 온도보다 높을 때에만 열전소자가 동작하도록 프로그램을 작성해보자.
2. 프로젝트
2.1. 회로 구성
회로 구성 A10 열전소자 펠티어 40mm 보급형 반도체냉각 12706
앗! 화면폭이 너무 좁아요. 브라우져의 사이즈를 더 늘여주세요~ 좁은 화면으로 보실 때는 모바일 기기에서 최적화된 화면으로 쇼핑을 즐기실 수 있어요~
scipia.com
[KIV] 절연전선2.5SQ 빨강 1M + 미니수축튜브(사은품)
KS 60227-3 IEC 02 KIV 절연 전선 / 규격 : 2.5SQ / 길이 : 1M / 색상 : 빨간색 / 1M 단위로 선택하신 길이만큼 잘라서 판매하며 연선입니다. (예) 수량 1개 -> 1M, 10개 -> 10M. 단위(M)단위가 커질경우 끊어 배송될
www.devicemart.co.kr
[KIV] 절연전선2.5SQ 검정 1M + 미니수축튜브(사은품)
KS 60227-3 IEC 02 KIV 절연 전선 / 규격 : 2.5SQ / 길이 : 1M / 색상 : 검정색 / 1M 단위로 선택하신 길이만큼 잘라서 판매하며 연선입니다. (예) 수량 1개 -> 1M, 10개 -> 10M. 단위(M)단위가 커질경우 끊어 배송될
www.devicemart.co.kr
쿨링키트 수냉 싱글팬 DIY 키트[SZH-CO009]
쿨링 수냉 키트로 워터블록, DC12V 팬(92x92), 방열 싱글 라지에이터로 구성되어 있습니다. (펠티어 별도)
www.devicemart.co.kr
[FAN] DC12V 팬모터 MGA8012XB-O25
80x80x25mm, Ball Bearing, 12V, 0.39A, 3600RPM, 2pin, 수명 70000H
www.devicemart.co.kr
Thermocouple Type-K Glass Braid Insulated - K [ada-270]
유리 섬유 브레이드를 사용하므로 100°C이상 고온 측정가능 / 온도프로브 / 최대 500°C(900°F)까지 양호 / 길이 : 약 1m
www.devicemart.co.kr
MAX31856 서모커플 증폭 모듈 Adafruit Universal Thermocouple Amplifier MAX31856 Breakout [ada-3263]
K, J, N, R, S, T, E, or B type 등 모든 타입의 서모커플과 호환되는 모듈 / 인터페이스 : 4-wire SPI / -210°C ~ 1800°C output / 초 고정밀 해상도 : 0.0078125° / 3.3V ~ 5V (파워, 로직) / 서모커플 미포함(별매), 2Pin
www.devicemart.co.kr
아두이노 1채널 5V 미니 릴레이 모듈 [SZH-EK082]
아두이노, AVR, ARM, PIC 등 다양한 마이크로 컨트롤러 제어가 가능한 1채널 5V 릴레이 모듈입니다.
www.devicemart.co.kr
아두이노 가변 저항 10KΩ (다이얼 타입)
10K옴 / 싱글턴 가변저항 포텐션미터 너트 와샤 포함 , 일반 가변 저항과 달리 돌리면 틱틱틱 걸리는 느낌이 있는 다이얼 타입의 저항 입니다. 일반 가변저항은 돌리면 저항감이 없어서 조정하는
www.devicemart.co.kr
1602 I2C 캐릭터LCD (화이트/블루)
아두이노 호환 16×2 캐릭터 LCD 모듈 / 문자 : White / 백라이트 : Blue / I2C 통신을 통해 제어합니다. / 80mm×36mm
www.devicemart.co.kr
2.2. 프로그램 작성
#include <Adafruit_MAX31856.h> // MAX31856 모듈 라이브러리 추가 #include <LiquidCrystal_I2C.h> // LCD I2C 라이브러리 추가 // maxThermo라는 이름의 MAX31856 객체 생성 // CS, MOSI, MISO, SCLK 순서로 디지털 핀 정의 Adafruit_MAX31856 maxThermo = Adafruit_MAX31856(10, 11, 12, 13); // LCD라는 이름의 LCD I2C 객체 생성 LiquidCrystal_I2C LCD(0x20, 16, 2); // I2C 주소, 열과 행의 개수 입력 const int relayFan = 4; // 정수형 변수 선언 후 디지털 핀 번호 4로 초기화 const int relayPeltier = 5; int value; // 정수형 변수 선언 float targetTemp; // 실수형 변수 선언 float TC_Temp; void setup(void) { pinMode(A0, INPUT); // 아날로그 입력 A0번 핀을 입력(INPUT) 모드로 설정 pinMode(relayFan, OUTPUT); // 디지털 4번 핀을 출력(OUTPUT) 모드로 설정 pinMode(relayPeltier, OUTPUT); // MAX31856 모듈 SPI 통신 시작 while (!Serial) delay(10); maxThermo.begin(); maxThermo.setThermocoupleType(MAX31856_TCTYPE_K); // 열전대 종류 설정: K타입 Serial.print("Thermocouple type: "); switch (maxThermo.getThermocoupleType()) { case MAX31856_TCTYPE_B: Serial.println("B Type"); break; case MAX31856_TCTYPE_E: Serial.println("E Type"); break; case MAX31856_TCTYPE_J: Serial.println("J Type"); break; case MAX31856_TCTYPE_K: Serial.println("K Type"); break; case MAX31856_TCTYPE_N: Serial.println("N Type"); break; case MAX31856_TCTYPE_R: Serial.println("R Type"); break; case MAX31856_TCTYPE_S: Serial.println("S Type"); break; case MAX31856_TCTYPE_T: Serial.println("T Type"); break; case MAX31856_VMODE_G8: Serial.println("Voltage x8 Gain mode"); break; case MAX31856_VMODE_G32: Serial.println("Voltage x8 Gain mode"); break; default: Serial.println("Unknown"); break; } delay(1000); LCD.init(); // LCD 사용 시작 LCD.backlight(); // LCD 백라이트 켜기 LCD.clear(); LCD.print("Temperature:"); } void loop(void) { // 아날로그 입력 A0번 핀으로부터 아날로그 신호를 입력 받은 후 변수에 저장 value = analogRead(A0); targetTemp = (float)map(value, 0, 1023, 20, 0); // 아날로그 신호 변환 후 실수형 변수에 저장 TC_Temp = maxThermo.readThermocoupleTemperature(); // 열전대 온도값을 변수에 저장 // 온도값 오류 확인 uint8_t fault = maxThermo.readFault(); if (fault) { if (fault & MAX31856_FAULT_CJRANGE) Serial.println("Cold Junction Range Fault"); if (fault & MAX31856_FAULT_TCRANGE) Serial.println("Thermocouple Range Fault"); if (fault & MAX31856_FAULT_CJHIGH) Serial.println("Cold Junction High Fault"); if (fault & MAX31856_FAULT_CJLOW) Serial.println("Cold Junction Low Fault"); if (fault & MAX31856_FAULT_TCHIGH) Serial.println("Thermocouple High Fault"); if (fault & MAX31856_FAULT_TCLOW) Serial.println("Thermocouple Low Fault"); if (fault & MAX31856_FAULT_OVUV) Serial.println("Over/Under Voltage Fault"); if (fault & MAX31856_FAULT_OPEN) Serial.println("Thermocouple Open Fault"); } LCD.setCursor(0, 1); // LCD 커서를 0열 1행으로 이동 LCD.print(Temperature); // LCD에 변수에 저장된 온도값을 입력 LCD.print(" Celsius"); delay(500); // 500 ms 대기 LCD.setCursor(0, 1); LCD.print(" "); // 설정 온도와 현재 온도 비교 if (targetTemp < TC_Temp) { // 현재 온도가 설정 온도보다 높을 경우, 펠티어 열전소자와 냉각팬 가동 digitalWrite(relayFan, HIGH); // 디지털 4번 핀에 디지털 신호 HIGH 출력 digitalWrite(relayPeltier, HIGH); } else { // 펠티어 열전소자와 냉각팬 중지 digitalWrite(relayFan, LOW); digitalWrite(relayPeltier, LOW); } }
[함께 읽으면 좋은 페이지]
아두이노 | 가변저항
1. 가변저항 저항값을 임의로 바꿀 수 있는 물리 소자이다. 극성이 없는 3개의 단자를 가지고 있으며, 손잡이를 돌리면 각 단자 사이의 저항값을 조절할 수 있다. 손잡이를 시계방향으로 돌리
vedacube.tistory.com
아두이노 프로젝트 | 스마트 냉각팬
1. 스마트 냉각팬 일상에서 쉽게 발견할 수 있는 냉각팬을 아두이노 플랫폼을 이용해 온도에 따라 제어해보자. 구현하고자 하는 스마트 냉각팬은 DC12V 냉각팬, DC 5V 릴레이 모듈, 온도센서 LM35
vedacube.tistory.com
아두이노 SPI 통신 | 열전대 써모커플 증폭 모듈 MAX31856
1. SPI 통신 SPI(Serial Peripheral Interface) 통신은 I2C 통신과 마찬가지로, 한 컨트롤러(master)에 여러 개의 주변 장치(slave)를 연결하여 신호를 주고 받는다. SPI 통신은 데이터를 구분하는 동기 클럭 라
vedacube.tistory.com
아두이노 | 펠티어 열전소자
1. 열전소자 A10 열전소자 펠티어 40mm 보급형 반도체냉각 12706앗! 화면폭이 너무 좁아요. 브라우져의 사이즈를 더 늘여주세요~ 좁은 화면으로 보실 때는 모바일 기기에서 최적화된 화면으로 쇼
vedacube.tistory.com
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 | BLDC모터 (0) 2024.11.25 아두이노 라이브러리 | 서보모터 정밀 제어 (0) 2024.11.24 아두이노 | 펠티어 열전소자 (0) 2024.11.22 아두이노 SPI 통신 | 열전대 써모커플 증폭 모듈 MAX31856 (0) 2024.11.21 아두이노 라이브러리 | 다중 스텝모터 동시 제어 MultiStepper.h (1) 2024.11.20