IDEAL GAS LAW

이상기체 법칙 인터랙티브 시뮬레이터
PV = nRT
°C hPa IDEAL GAS LAW 이상기체 법칙 PV = nRT · 온도, 압력, 부피의 관계

01 — 기체란 무엇인가?

우리가 숨 쉬는 공기, 풍선 안의 헬륨, 타이어를 채우는 질소… 이것들은 모두 기체(Gas)입니다.

기체 분자들은 끊임없이 움직이고, 서로 부딪히고, 벽에 충돌합니다. 이 충돌이 바로 압력(Pressure)의 정체입니다.

분자들은 더 빠르게 움직일수록(온도↑) 벽을 더 세게 치고, 공간이 좁을수록(부피↓) 더 자주 부딪힙니다.

02 — 세 가지 변수의 춤

이상기체 법칙의 핵심은 네 가지 변수의 관계입니다:

PV = nRT

여기서 R은 기체 상수(8.314 J/mol·K = 0.08206 L·atm/mol·K)로, 자연이 정해준 고정 상수입니다.

P, V, T, n 중 일부를 고정하면 나머지 변수들의 관계가 드러납니다.

02.5 — n은 무엇인가? 몰(mol)의 정체

화학에서 n(몰, mol)은 물질의 양을 세는 단위입니다. 연필을 "다스(12개)"로 세듯, 분자는 몰로 셉니다.

🔸 1몰 = 6.022 × 10²³ 개

이 숫자를 아보가드로 수(Nₐ)라고 부릅니다. 상상하기 어려울 만큼 큰 수입니다:

만약 1몰의 쌀알이 있다면, 지구 전체를 약 1km 두께로 덮을 수 있습니다. 분자가 그만큼 작기 때문에 이렇게 큰 수를 한 묶음으로 씁니다.

🔸 몰 질량 — 원소마다 1몰의 무게가 다르다

수소(H₂) 1몰 = 2g (가벼움!), 산소(O₂) 1몰 = 32g, 물(H₂O) 1몰 = 18g

주기율표의 원자량이 곧 "1몰의 그램 수"입니다. 이것이 몰 질량(Molar Mass)입니다.

🔸 PV=nRT에서 n의 역할

n이 커지면(기체가 많아지면) 같은 온도·부피에서 압력이 비례해서 증가합니다. 풍선에 공기를 더 불어넣으면 빵빵해지는 것과 같습니다.

n = PV / RT   |   n = 질량(g) / 몰 질량(g/mol)

즉, n은 "용기 안에 분자가 얼마나 많은가"를 나타내는 핵심 변수이며, 실제 실험에서는 기체의 질량을 재서 n을 구합니다.

03 — 고정 조건별 법칙

🔸 압력 고정 (등압 과정 — 샤를의 법칙)

풍선을 냉동실에 넣으면 쪼그라듭니다. 압력(대기압)은 같은데, 온도가 내려가니 부피가 줄어든 것입니다.

V₁/T₁ = V₂/T₂  (P 일정)

🔸 부피 고정 (등적 과정 — 게이-뤼삭 법칙)

밀봉된 캔을 불에 가열하면 폭발합니다. 부피가 못 변하니 온도 상승 → 압력 폭증!

P₁/T₁ = P₂/T₂  (V 일정)

🔸 온도 고정 (등온 과정 — 보일의 법칙)

주사기의 끝을 막고 피스톤을 누르면? 부피가 줄면서 안의 압력이 올라가는 걸 느끼게 됩니다.

P₁V₁ = P₂V₂  (T 일정)

04 — 시뮬레이터로 직접 확인하자!

이론은 충분합니다. 이제 시뮬레이터 탭으로 이동해서 변수를 고정하고, 슬라이더를 움직이며 기체의 행동을 직접 눈으로 확인하세요.

실생활 예제 탭에서는 실제 상황을 PV=nRT로 증명해볼 수 있습니다.

⚙ CONTROL PANEL

기체량 (n) LOCKED 1.00 mol
ℹ 1 mol = 6.022×10²³개 분자 (아보가드로 수)
시뮬레이션 입자: 40개
압력 (P) LOCKED 1.00 atm
부피 (V) LOCKED 22.4 L
온도 (T) LOCKED 273 K
0.0 °C 32.0 °F
AMOUNT
1.00
mol
PRESSURE
1.00
atm
VOLUME
22.4
L
TEMPERATURE
273
K
0.0 °C 32.0 °F

등압 과정 (Isobaric)

압력을 고정합니다. 온도를 올리면 부피가 증가하고, 온도를 내리면 부피가 감소합니다. (샤를의 법칙: V ∝ T)

🧪 실험명: "나만의 기압계로 이상기체 법칙을 증명하라"

이 실험은 두 단계로 진행됩니다:

Phase 1 — 아두이노 + BMP280 + DS18B20으로 디지털 압력·온도 센서 장치를 직접 제작합니다.

Phase 2 — 제작한 센서로 밀폐 페트병 내부의 등적 과정(V 고정)을 측정하고, 게이-뤼삭의 법칙(P/T = const)을 정량 검증합니다.

풍선에 줄자를 대는 것이 아니라, 여러분이 직접 만든 센서가 0.01 kPa 단위로 압력을 실시간 측정합니다. 시리얼 모니터에 숫자가 올라가는 순간, 과학이 눈앞에서 벌어지는 것을 경험하게 됩니다.

📦 준비물

🔸 Phase 1 — 센서 장치 제작

🔌
Arduino Nano (또는 Uno) USB 케이블 포함. 호환 보드도 OK
📡
BMP280 기압·온도 센서 모듈 I2C 통신. 측정 범위 300~1100 hPa, 정밀도 ±1 hPa (±0.01 atm). 이 센서가 핵심입니다
🌡️
DS18B20 방수 온도 센서 스테인리스 프로브 타입. 페트병 내부 공기 온도 측정용. 정밀도 ±0.5°C
🔗
4.7kΩ 저항 1개 + 점퍼 와이어 DS18B20 풀업 저항용. 브레드보드도 1개 필요

🔸 Phase 2 — 등적 과정 실험

⚗️
500mL 페트병 (탄산음료용 권장) 탄산음료 페트병은 내압 설계라 단단합니다. 뚜껑으로 밀봉이 쉽고, 이것이 "고정 부피(V)" 용기입니다
🔴
페트병 뚜껑 (가공용) + 글루건 페트병 뚜껑에 드릴/송곳으로 작은 구멍 2개(센서선 통과용)를 뚫고 글루건으로 밀봉. 이것이 핵심
🫧
대야 또는 냄비 페트병이 들어갈 정도면 충분. 주방 냄비도 OK
🧊
얼음 + 뜨거운 물 (전기포트) 얼음물(~5°C), 상온(~23°C), 온수(~55°C), 뜨거운 물(~70°C) — 4개 조건
💻
노트북 (Arduino IDE 설치) 시리얼 모니터로 실시간 데이터를 확인합니다
🔧
글루건 (핫멜트) 뚜껑 구멍 밀봉의 핵심 도구. 없으면 양초+순간접착제로 대체 가능

⚠️ 유의사항

위험

뜨거운 물 취급 주의! 70°C 물은 화상 위험이 있습니다. 반드시 장갑 착용. 끓는 물(100°C)은 사용하지 않습니다.

위험

BMP280·아두이노에 물이 닿으면 안 됩니다! 센서와 아두이노는 페트병 바깥에 위치합니다. 센서 선만 뚜껑 구멍을 통해 병 내부로 들어갑니다.

주의

밀봉 상태를 반드시 확인하세요. 뚜껑 글루건 밀봉부에서 공기가 새면 압력 변화가 측정되지 않습니다. 밀봉 후 양손으로 페트병을 감싸 체온으로 데워보세요 — 압력이 올라가면 밀봉 성공!

주의

각 온도 조건에서 5분 이상 대기하세요. 페트병 내부 공기가 물 온도와 열평형에 도달해야 합니다. DS18B20 온도가 안정될 때까지 기다리세요.

팁

센서 작동 테스트를 먼저 하세요. Phase 1에서 센서를 조립한 후, 바로 실험에 들어가지 말고 시리얼 모니터에서 정상 값이 출력되는지 반드시 확인합니다.

팁

센서 선은 뚜껑 바로 위에! BMP280이 뚜껑에 가까울수록 페트병 내부 공기 압력을 정확히 측정합니다. 선이 길면 외부 대기 영향을 받을 수 있으므로 글루건 밀봉을 꼼꼼히 하세요.

🔗 이 실험이 연결되는 실제 기술

🔸 자동차 TPMS (타이어 압력 모니터링)

자동차 타이어 안에도 BMP280과 비슷한 MEMS 압력 센서가 들어 있습니다. 주행 중 타이어 온도가 올라가면 압력이 증가하는데, 이것이 바로 우리 실험의 등적 과정(P ∝ T)입니다. TPMS는 이 원리로 비정상 압력을 감지합니다.

🔸 기상 관측소의 기압계

기상청의 기압 관측도 원리는 동일합니다. 대기의 압력 변화를 정밀하게 측정하여 날씨를 예측합니다. 여러분이 만드는 센서 장치는 기상 관측소의 축소판입니다.

🔸 압력밥솥 안전밸브

밀봉 + 가열 → 압력 상승. 우리 실험의 페트병이 바로 미니 압력밥솥입니다. 실제 압력밥솥은 안전밸브가 특정 압력에서 열리도록 설계되어 있는데, 그 압력값을 결정하는 데 PV=nRT가 쓰입니다.

📋 실험 절차

총 소요시간: 약 90분 (센서 제작 40분 + 실험 50분)

PHASE 1 — 디지털 압력·온도 센서 제작

P1

STEP 1 — 회로 연결 (15분)

01

브레드보드에 아래와 같이 연결합니다:

BMP280 연결 (I2C)

BMP280 핀Arduino 핀설명
VCC3.3V전원 (⚠️ 5V 아님!)
GNDGND접지
SCLA5I2C 클럭
SDAA4I2C 데이터

DS18B20 연결 (OneWire)

DS18B20 선Arduino 핀설명
빨간 선 (VCC)5V전원
검은 선 (GND)GND접지
노란 선 (DATA)D2데이터 + 4.7kΩ 풀업저항(D2↔5V)
핵심

DS18B20의 DATA 선과 5V 사이에 4.7kΩ 저항을 반드시 연결하세요. 이것이 없으면 온도가 -127°C로 출력됩니다.

STEP 2 — 코드 업로드 (15분)

02

Arduino IDE에서 아래 라이브러리를 먼저 설치합니다:

① Adafruit BMP280 Library (+ Adafruit Unified Sensor)

② OneWire + DallasTemperature

스케치 → 라이브러리 관리 에서 검색하여 설치하세요.

📄 ideal_gas_sensor.ino
#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)를 열어 값이 정상 출력되는지 확인합니다.

STEP 3 — 센서 동작 테스트 (10분)

03

① 시리얼 모니터에서 온도, 압력 값이 나오는지 확인

② DS18B20 프로브를 손으로 잡아보세요 → 온도가 올라가면 정상!

③ BMP280 센서 위에 입김을 불어보세요 → 압력과 온도가 미세하게 변하면 정상!

체크

BMP280 압력이 약 1013 hPa 근처(해수면 기준), DS18B20이 실내 온도(~23°C)를 보이면 센서 제작 성공!

PHASE 2 — 등적 과정 실험 (게이-뤼삭 법칙 검증)

P2

STEP 4 — 밀폐 장치 조립 (10분)

04

① 페트병 뚜껑에 송곳 또는 드릴로 작은 구멍 2개를 뚫습니다 (BMP280 연결선 + DS18B20 선 통과용).

② BMP280 센서의 점퍼 와이어 4가닥을 구멍으로 통과시켜 센서가 병 안쪽에 위치하게 합니다.

③ DS18B20 프로브도 다른 구멍으로 통과시켜 병 안쪽에 넣습니다 (두 센서 모두 병 내부 공기를 측정).

④ 뚜껑 구멍 부분을 글루건으로 양면 꼼꼼히 밀봉합니다. 이것이 실험의 핵심입니다!

⑤ 페트병에 뚜껑을 단단히 잠급니다.

밀봉 테스트

조립 후, 페트병을 양손으로 감싸 체온으로 데워보세요. 시리얼 모니터에서 압력이 1~3 hPa 올라가면 밀봉 성공! 변화가 없으면 글루건을 더 보강하세요.

STEP 5 — 4개 온도 조건 측정 (30분)

05

대야(또는 냄비)의 물 온도를 바꿔가며, 각 조건에서 평형 상태의 압력·온도를 기록합니다.

조건 1: 얼음물 (~5°C)

대야에 물+얼음을 넣고, 페트병을 담급니다 (뚜껑과 센서 선은 물 밖으로). 5분 대기 후 시리얼 모니터에서 DS18B20 온도가 안정되면 그때의 압력과 온도를 기록합니다.

조건 2: 상온 (~23°C)

얼음물을 버리고 상온 물로 교체. 5분 대기 후 기록.

조건 3: 온수 (~45°C)

뜨거운 물을 부어 ~45°C로 맞춤. 5분 대기 후 기록.

조건 4: 고온수 (~65°C)

전기포트 물을 더 부어 ~65°C로 맞춤. 5분 대기 후 기록. ⚠️ 장갑 착용!

조건DS18B20 T (°C)T (K)BMP280 P (hPa)P/T (hPa/K)
① 얼음물____________
② 상온____________
③ 온수____________
④ 고온수____________

STEP 6 — 데이터 분석 (10분)

06

4개 조건의 P/T 비율을 계산합니다.

P/T = nR/V = 일정  (게이-뤼삭의 법칙)

P/T가 4개 조건에서 일정하면 → 등적 과정에서 P ∝ T 검증 성공!

또한, 이 데이터로 압력밥솥의 안전밸브 작동 압력과 TPMS 경고 시나리오를 시뮬레이션해봅니다.

자세한 계산은 결과보고 탭에서 수행합니다.

📝 나만의 실험 결과 보고서

센서에서 읽은 측정값을 입력하고, 직접 P/T를 계산한 후 검증하세요.

1. 실험 제목

등적 과정에서 온도-압력 관계 검증 (게이-뤼삭의 법칙)

2. 실험 목적

밀폐 페트병(고정 부피) 내부 기체의 온도를 변화시키고, 자작 디지털 센서(BMP280 + DS18B20)로 압력·온도를 정밀 측정하여 이상기체 법칙(PV = nRT)의 등적 조건(P/T = const)을 검증한다.

👤 학생 정보

3. 원시 데이터 입력

시리얼 모니터에서 읽은 안정 상태의 온도(°C)와 압력(hPa)을 입력하세요.

4. 데이터 처리 — 직접 계산하기

아래 공식을 참고하여 직접 계산한 결과를 입력하세요.

T(K) = T(°C) + 273.15   →   P/T (hPa/K)

내가 계산한 값

5. 실험 데이터 해석

6. 응용 사고

7. 오차 원인 분석

① 불완전한 밀봉

페트병 뚜껑의 글루건 밀봉부에서 미세한 공기 누출이 발생하면 압력 변화가 실제보다 작게 측정됩니다.

② 불완전한 열평형

5분이 부족하여 페트병 내부 공기 온도가 물 온도에 완전히 도달하지 못했을 수 있습니다.

③ 센서 선 경로의 열전달

뚜껑을 관통하는 센서 선을 통해 외부 공기와 미세한 열교환이 발생할 수 있습니다.

④ BMP280 센서 오차

BMP280의 절대 정밀도는 ±1 hPa입니다. 저온 구간에서는 이 오차의 상대적 영향이 커집니다.

8. 실험 성찰

예) 센서 제작 과정, 실시간 데이터를 보는 경험, 예상과 일치한 결과 등

예) 밀봉 어려움, 평형 시간, 센서 연결 문제 등

예) LCD 디스플레이 추가, SD카드 로깅, 다른 기체 실험 등

🎯 이상기체 법칙 퀴즈

이론과 실험을 잘 이해했는지 확인해봅시다! 각 문제를 풀고 정답을 확인하세요.