우리가 숨 쉬는 공기, 풍선 안의 헬륨, 타이어를 채우는 질소… 이것들은 모두 기체(Gas)입니다.
기체 분자들은 끊임없이 움직이고, 서로 부딪히고, 벽에 충돌합니다. 이 충돌이 바로 압력(Pressure)의 정체입니다.
분자들은 더 빠르게 움직일수록(온도↑) 벽을 더 세게 치고, 공간이 좁을수록(부피↓) 더 자주 부딪힙니다.
이상기체 법칙의 핵심은 네 가지 변수의 관계입니다:
여기서 R은 기체 상수(8.314 J/mol·K = 0.08206 L·atm/mol·K)로, 자연이 정해준 고정 상수입니다.
P, V, T, n 중 일부를 고정하면 나머지 변수들의 관계가 드러납니다.
화학에서 n(몰, mol)은 물질의 양을 세는 단위입니다. 연필을 "다스(12개)"로 세듯, 분자는 몰로 셉니다.
이 숫자를 아보가드로 수(Nₐ)라고 부릅니다. 상상하기 어려울 만큼 큰 수입니다:
만약 1몰의 쌀알이 있다면, 지구 전체를 약 1km 두께로 덮을 수 있습니다. 분자가 그만큼 작기 때문에 이렇게 큰 수를 한 묶음으로 씁니다.
수소(H₂) 1몰 = 2g (가벼움!), 산소(O₂) 1몰 = 32g, 물(H₂O) 1몰 = 18g
주기율표의 원자량이 곧 "1몰의 그램 수"입니다. 이것이 몰 질량(Molar Mass)입니다.
n이 커지면(기체가 많아지면) 같은 온도·부피에서 압력이 비례해서 증가합니다. 풍선에 공기를 더 불어넣으면 빵빵해지는 것과 같습니다.
즉, n은 "용기 안에 분자가 얼마나 많은가"를 나타내는 핵심 변수이며, 실제 실험에서는 기체의 질량을 재서 n을 구합니다.
풍선을 냉동실에 넣으면 쪼그라듭니다. 압력(대기압)은 같은데, 온도가 내려가니 부피가 줄어든 것입니다.
밀봉된 캔을 불에 가열하면 폭발합니다. 부피가 못 변하니 온도 상승 → 압력 폭증!
주사기의 끝을 막고 피스톤을 누르면? 부피가 줄면서 안의 압력이 올라가는 걸 느끼게 됩니다.
이론은 충분합니다. 이제 시뮬레이터 탭으로 이동해서 변수를 고정하고, 슬라이더를 움직이며 기체의 행동을 직접 눈으로 확인하세요.
실생활 예제 탭에서는 실제 상황을 PV=nRT로 증명해볼 수 있습니다.
압력을 고정합니다. 온도를 올리면 부피가 증가하고, 온도를 내리면 부피가 감소합니다. (샤를의 법칙: V ∝ T)
이 실험은 두 단계로 진행됩니다:
Phase 1 — 아두이노 + BMP280 + DS18B20으로 디지털 압력·온도 센서 장치를 직접 제작합니다.
Phase 2 — 제작한 센서로 밀폐 페트병 내부의 등적 과정(V 고정)을 측정하고, 게이-뤼삭의 법칙(P/T = const)을 정량 검증합니다.
풍선에 줄자를 대는 것이 아니라, 여러분이 직접 만든 센서가 0.01 kPa 단위로 압력을 실시간 측정합니다. 시리얼 모니터에 숫자가 올라가는 순간, 과학이 눈앞에서 벌어지는 것을 경험하게 됩니다.
뜨거운 물 취급 주의! 70°C 물은 화상 위험이 있습니다. 반드시 장갑 착용. 끓는 물(100°C)은 사용하지 않습니다.
BMP280·아두이노에 물이 닿으면 안 됩니다! 센서와 아두이노는 페트병 바깥에 위치합니다. 센서 선만 뚜껑 구멍을 통해 병 내부로 들어갑니다.
밀봉 상태를 반드시 확인하세요. 뚜껑 글루건 밀봉부에서 공기가 새면 압력 변화가 측정되지 않습니다. 밀봉 후 양손으로 페트병을 감싸 체온으로 데워보세요 — 압력이 올라가면 밀봉 성공!
각 온도 조건에서 5분 이상 대기하세요. 페트병 내부 공기가 물 온도와 열평형에 도달해야 합니다. DS18B20 온도가 안정될 때까지 기다리세요.
센서 작동 테스트를 먼저 하세요. Phase 1에서 센서를 조립한 후, 바로 실험에 들어가지 말고 시리얼 모니터에서 정상 값이 출력되는지 반드시 확인합니다.
센서 선은 뚜껑 바로 위에! BMP280이 뚜껑에 가까울수록 페트병 내부 공기 압력을 정확히 측정합니다. 선이 길면 외부 대기 영향을 받을 수 있으므로 글루건 밀봉을 꼼꼼히 하세요.
자동차 타이어 안에도 BMP280과 비슷한 MEMS 압력 센서가 들어 있습니다. 주행 중 타이어 온도가 올라가면 압력이 증가하는데, 이것이 바로 우리 실험의 등적 과정(P ∝ T)입니다. TPMS는 이 원리로 비정상 압력을 감지합니다.
기상청의 기압 관측도 원리는 동일합니다. 대기의 압력 변화를 정밀하게 측정하여 날씨를 예측합니다. 여러분이 만드는 센서 장치는 기상 관측소의 축소판입니다.
밀봉 + 가열 → 압력 상승. 우리 실험의 페트병이 바로 미니 압력밥솥입니다. 실제 압력밥솥은 안전밸브가 특정 압력에서 열리도록 설계되어 있는데, 그 압력값을 결정하는 데 PV=nRT가 쓰입니다.
총 소요시간: 약 90분 (센서 제작 40분 + 실험 50분)
브레드보드에 아래와 같이 연결합니다:
| BMP280 핀 | Arduino 핀 | 설명 |
|---|---|---|
| VCC | 3.3V | 전원 (⚠️ 5V 아님!) |
| GND | GND | 접지 |
| SCL | A5 | I2C 클럭 |
| SDA | A4 | I2C 데이터 |
| DS18B20 선 | Arduino 핀 | 설명 |
|---|---|---|
| 빨간 선 (VCC) | 5V | 전원 |
| 검은 선 (GND) | GND | 접지 |
| 노란 선 (DATA) | D2 | 데이터 + 4.7kΩ 풀업저항(D2↔5V) |
DS18B20의 DATA 선과 5V 사이에 4.7kΩ 저항을 반드시 연결하세요. 이것이 없으면 온도가 -127°C로 출력됩니다.
Arduino IDE에서 아래 라이브러리를 먼저 설치합니다:
① Adafruit BMP280 Library (+ Adafruit Unified Sensor)
② OneWire + DallasTemperature
스케치 → 라이브러리 관리 에서 검색하여 설치하세요.
#include <Wire.h>
#include <Adafruit_BMP280.h>
#include <OneWire.h>
#include <DallasTemperature.h>
Adafruit_BMP280 bmp;
OneWire oneWire(2); // DS18B20 → D2
DallasTemperature ds(&oneWire);
void setup() {
Serial.begin(9600);
while (!Serial);
if (!bmp.begin(0x76)) { // 주소 0x76 또는 0x77
Serial.println("BMP280 연결 실패! 배선 확인");
while (1);
}
ds.begin();
Serial.println("=== 이상기체 법칙 센서 준비 완료 ===");
Serial.println("병내부T(°C)\t병내부T(K)\tBMP압력(hPa)\tBMP온도(°C)");
}
void loop() {
ds.requestTemperatures();
float waterTemp = ds.getTempCByIndex(0); // 물 온도
float waterTempK = waterTemp + 273.15;
float pressure = bmp.readPressure() / 100.0; // Pa → hPa
float bmpTemp = bmp.readTemperature(); // BMP 내장 온도
Serial.print(waterTemp, 2); Serial.print("\t");
Serial.print(waterTempK, 2); Serial.print("\t\t");
Serial.print(pressure, 2); Serial.print("\t\t");
Serial.println(bmpTemp, 2);
delay(2000); // 2초마다 측정
}
업로드 후 시리얼 모니터(9600 baud)를 열어 값이 정상 출력되는지 확인합니다.
① 시리얼 모니터에서 온도, 압력 값이 나오는지 확인
② DS18B20 프로브를 손으로 잡아보세요 → 온도가 올라가면 정상!
③ BMP280 센서 위에 입김을 불어보세요 → 압력과 온도가 미세하게 변하면 정상!
BMP280 압력이 약 1013 hPa 근처(해수면 기준), DS18B20이 실내 온도(~23°C)를 보이면 센서 제작 성공!
① 페트병 뚜껑에 송곳 또는 드릴로 작은 구멍 2개를 뚫습니다 (BMP280 연결선 + DS18B20 선 통과용).
② BMP280 센서의 점퍼 와이어 4가닥을 구멍으로 통과시켜 센서가 병 안쪽에 위치하게 합니다.
③ DS18B20 프로브도 다른 구멍으로 통과시켜 병 안쪽에 넣습니다 (두 센서 모두 병 내부 공기를 측정).
④ 뚜껑 구멍 부분을 글루건으로 양면 꼼꼼히 밀봉합니다. 이것이 실험의 핵심입니다!
⑤ 페트병에 뚜껑을 단단히 잠급니다.
조립 후, 페트병을 양손으로 감싸 체온으로 데워보세요. 시리얼 모니터에서 압력이 1~3 hPa 올라가면 밀봉 성공! 변화가 없으면 글루건을 더 보강하세요.
대야(또는 냄비)의 물 온도를 바꿔가며, 각 조건에서 평형 상태의 압력·온도를 기록합니다.
대야에 물+얼음을 넣고, 페트병을 담급니다 (뚜껑과 센서 선은 물 밖으로). 5분 대기 후 시리얼 모니터에서 DS18B20 온도가 안정되면 그때의 압력과 온도를 기록합니다.
얼음물을 버리고 상온 물로 교체. 5분 대기 후 기록.
뜨거운 물을 부어 ~45°C로 맞춤. 5분 대기 후 기록.
전기포트 물을 더 부어 ~65°C로 맞춤. 5분 대기 후 기록. ⚠️ 장갑 착용!
| 조건 | DS18B20 T (°C) | T (K) | BMP280 P (hPa) | P/T (hPa/K) |
|---|---|---|---|---|
| ① 얼음물 | ___ | ___ | ___ | ___ |
| ② 상온 | ___ | ___ | ___ | ___ |
| ③ 온수 | ___ | ___ | ___ | ___ |
| ④ 고온수 | ___ | ___ | ___ | ___ |
4개 조건의 P/T 비율을 계산합니다.
P/T가 4개 조건에서 일정하면 → 등적 과정에서 P ∝ T 검증 성공!
또한, 이 데이터로 압력밥솥의 안전밸브 작동 압력과 TPMS 경고 시나리오를 시뮬레이션해봅니다.
자세한 계산은 결과보고 탭에서 수행합니다.
센서에서 읽은 측정값을 입력하고, 직접 P/T를 계산한 후 검증하세요.
등적 과정에서 온도-압력 관계 검증 (게이-뤼삭의 법칙)
밀폐 페트병(고정 부피) 내부 기체의 온도를 변화시키고, 자작 디지털 센서(BMP280 + DS18B20)로 압력·온도를 정밀 측정하여 이상기체 법칙(PV = nRT)의 등적 조건(P/T = const)을 검증한다.
시리얼 모니터에서 읽은 안정 상태의 온도(°C)와 압력(hPa)을 입력하세요.
아래 공식을 참고하여 직접 계산한 결과를 입력하세요.
페트병 뚜껑의 글루건 밀봉부에서 미세한 공기 누출이 발생하면 압력 변화가 실제보다 작게 측정됩니다.
5분이 부족하여 페트병 내부 공기 온도가 물 온도에 완전히 도달하지 못했을 수 있습니다.
뚜껑을 관통하는 센서 선을 통해 외부 공기와 미세한 열교환이 발생할 수 있습니다.
BMP280의 절대 정밀도는 ±1 hPa입니다. 저온 구간에서는 이 오차의 상대적 영향이 커집니다.
예) 센서 제작 과정, 실시간 데이터를 보는 경험, 예상과 일치한 결과 등
예) 밀봉 어려움, 평형 시간, 센서 연결 문제 등
예) LCD 디스플레이 추가, SD카드 로깅, 다른 기체 실험 등
이론과 실험을 잘 이해했는지 확인해봅시다! 각 문제를 풀고 정답을 확인하세요.