아두이노에 사용되는 각종 센서의 활용 방법에 대해 알아보겠습니다.
준비물
- 아두이노 우노
- 브레드 보드
- 점퍼선
- I2C LCD
- LED
- 각종 센서 : 조도 센서, 물높이 센서, 기울기센서 등
1) 조도 센서
- 주변의 밝기를 측정하는 센서로 밝기에 따라 저항 값이 바뀌는 성질을 이용한 것이며 값은 0~1023사이 값으로 나타냅니다. 빛을 받으면 내부에 움직이는 전자가 발생하여 전도율이 변하는 광전효과를 가지는 소자를 사용하는데 황화카드뮴을 소자로 사용한 경우 Cds센서라고도 합니다. Cds센서는 작고 저렴해서 가장 많이 사용되고 있습니다.
극성이 없기 때문에 + -를 구분하지 않고 사용하며 저항값에 따른 전압을 신호로 입력받기 위해 10k 옴 저항과 함께 사용합니다.
- 무게 : 10 g.
- 크기 : 18mm * 30mm* 8mm.
- 측정 가능 감지 범위 : 2Cm ~ 25Cm.
- 측정 가능 감지 각도 : +/- 45 도
회로도
소스코드
#include <Wire.h> // i2C 통신을 위한 라이브러리
#include <LiquidCrystal_I2C.h> // LCD I2C용 라이브러리
LiquidCrystal_I2C lcd(0x27,16,2); // 0x3F or 0x27
//고유주소가 LCD마다 다르기 때문입니다.
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
lcd.init(); // LCD 초기화
lcd.backlight(); // 백라이트 켜기
}
void loop() {
int readValue=analogRead(A0);
Serial.println(readValue);
if(readValue>200){
digitalWrite(13, HIGH);
lcd.print("LED ON ");
}
else{
digitalWrite(13, LOW);
lcd.print("LED OFF ");
}
lcd.clear();
}
2) 물높이 센서
- 물높이 센서는 수분센서 도는 수위센서라고도 합니다.
- 동작 전압 : 5V
- 동작 전류 : <20mA
- 인터페이스 : 아날로그
- 측정 범위 : 40mm x 16mm
- 작동 온도 10C ~ 30C
- 무게 3g
- 크기 65mm x 20mm x 8mm
- 아두이노 호환 인터페이스
- 저전력, 고감도
- 출력 범위 0~ 4.2V
회로도
소스코드
#include <Wire.h> // i2C 통신을 위한 라이브러리
#include <LiquidCrystal_I2C.h> // LCD I2C용 라이브러리
LiquidCrystal_I2C lcd(0x27,16,2); // 0x3F or 0x27
//고유주소가 LCD마다 다르기 때문입니다.
int water_pin = A0; //수분수위센서 A0에 연결
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
lcd.init(); // LCD 초기화
lcd.backlight(); // 백라이트 켜기
}
void loop() {
int readValue=analogRead(A0);
Serial.println(readValue);
if(readValue>400){
digitalWrite(13, HIGH);
lcd.print("Danger Danger");
}
else{
digitalWrite(13, LOW);
lcd.print("OK");
}
lcd.clear();
}
3) 기울기 센서
- 기울기 센서는 틸트(Tilt) 스위치라고 불리는데 기울기를 감지하면 회로가 연결되어 전기를 흐르게 해주는 일종의 스위치 역할을 하는 소자입니다. 이 기울기센서는 중력을 사용하여 물리적으로 전기적 신호를 개폐합니다.
- 센서 안에는 전기가 통하는 구슬이 들어있어 구슬의 위치에 따라 HIGH 또는 LOW 신호를 출력합니다.
작동되는 원리가 간단한만큼 전기의 단락, 개방 여부만 확인할 수 있으며 얼만큼 기울어졌는지 기울기 정도까지 확인할 수는 없기 때문에 더 정밀한 결과를 출력하는 센서를 사용하고자 한다면 자이로/가속도센서를 사용하는 것을 추천합니다.
- 기울기에 따라 동작하는 조명이나 휴대용 선풍기와 같은 제품에 기본 스위치로 주로 사용합니다.
회로도
소스코드
#include <Wire.h> // i2C 통신을 위한 라이브러리
#include <LiquidCrystal_I2C.h> // LCD I2C용 라이브러리
LiquidCrystal_I2C lcd(0x27,16,2); // 0x3F or 0x27
//고유주소가 LCD마다 다르기 때문입니다.
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
lcd.init(); // LCD 초기화
lcd.backlight(); // 백라이트 켜기
}
void loop() {
int readValue=digitalRead(7); //기울기 센서 핀번호
if(readValue==HIGH){ //기울기가 측정됨
Serial.println(readValue);
digitalWrite(13, HIGH);
lcd.print("Danger Danger");
delay(100);
}
else{
digitalWrite(13, LOW);
lcd.print("OK");
delay(100);
}
lcd.clear();
}
'피지컬컴퓨팅 > 아두이노' 카테고리의 다른 글
8x8 도트 매트릭스( MAX7219 ) 활용하기 (0) | 2024.03.26 |
---|---|
FND 4 digit 7 segment 활용하기 (0) | 2024.03.26 |
I2C LCD 활용하기(센서 측정 값 나타내기-초음파센서, 온습도 센서) (0) | 2024.03.21 |
I2C LCD 활용하기 (0) | 2024.03.21 |
사운드 센서(소리감지센서)를 이용한 LED제어하기 (0) | 2024.03.21 |