안녕하세요.
압력센서 둥근형태 말고 사각 형태 실리콘이 붙어 있는 제품이 있어 테스트해 보았습니다. 사실 원형 플렉스형 압력센서를 주문하면 한 주 걸린다고 해서 바로 오는 것으로 주문했습니다. 비용은 크기가 작아서 그런지 원형보다는 가격이 싼 편이었습니다.
1. FSR(Force Sensing Resistor) 란
FSR은 Franklin Eventoff가 1977년에 발명하고 특허를 받았으며, 압력을 감지하는 면에 가해지는 압력에 반비례해서 전기 저항이 감소하는 특성이 있고, 이것을 센서 입력으로 받아서 압력을 측정합니다.
아무런 압력이 없을 경우 센서는 무한대의 저항값을 가집니다. 그리고 센서에 약간의 힘을 가하면 100KΩ의 저항이 발생하며, 이후 힘을 줄수록 저항값이 떨어집니다.(센서마다 저항값을 달라 질 수 있습니다. 아래는 참고 예시) 아래 그림이 힘에 따른 센서의 저항값 변화입니다. 가로축 Force의 단위는 Newtons*100입니다.
원리를 보면 몇 개의 레이어로 구성된 박막 형태의 센서입니다. 가장 기본적인 FSR은 중간에 스페이서(Spacer)라고 하는 공간적인 갭을 만드는 레이어를 중앙에 두고 있습니다. 그리고, 이 스페이스 위아래로 회로가 인쇄되어 있는 레이어(FPC)와 전도성 물질로 코딩이 되어 있는 필름 레이어(MD film)가 배치됩니다. 그리고, 위에서 힘이 가해지게 되면, FPC의 더 많은 부분이 MD film과 접촉을 하면서 센서의 저항 값이 줄어들게 됩니다.
2. FSR, QA6P 스펙
- Response time : < 10 μsec
- Operating temp : -20℃ ~ 60℃
- Durability : 2,000,000 stroke (100g) or over 500,000 stroke (150g)
- Drift : < 5% per logarithmic time scale by constant load of 100g
- Electric crosstalk (noise) : None
- Power consumption : Consumes only while operating. Typically around 5mA, and maximum 20mA.
- Resistance output range : ~ 200Ω
- Sensing range : 5g ~ 4kg
3. 회로 구성하기 및 연결하기
1) 회로 구성하기
- 이번 압력센서는 센서만 있어서는 안 되고 PULL-DOWN 저항을 연결해 주어야 정확한 값을 얻을 수 있습니다.
- 압력 범위 맞게(민감도(ADC))를 값을 조정을 하려면 Rc저항 값을 큰 것으로 바꿔주거나 사용전압을 높여주면 됩니다.
(범위는 2.2V ~ 5V, 풀업 저항은 1k ~47k)
- 출력 값을 보려면 멀티미터로 저항을 측정하면 됩니다. 혹은 ADC 회로를 구성하여 저항의 역수에 비례한 값(컨덕턴스)을 측정할 수 있습니다. 아래와 같이 간단한 회로를 구성하면 공식에 의해 출력 값을 얻게 됩니다. 회로도에서 Ra가 FSR 센서의 저항이며, Rc는 레퍼런스 풀 다운 저항입니다.
- 간단하게 테스트해 본 결과입니다. (사용 보드와 환경에 따라서 다를 수 있습니다.)
Vin에 3.3V 연결했을 경우 / 5V 연결했을 경우 Rc 변경
1.5k를 달았을 때 60 / 65
3.0k를 달았을 때 70 / 100
10k를 달았을 때 133 / 180
- 푸른색은 센서의 저항 값이며, 붉은색은 저항 값의 역수(컨덕턴스)이다. 회로로부터 얻어낸 ADC 출력 값이 푸른색 그래프와 유사한 모양을 갖습니다.
- 컨덕턴스 그래프를 보면, 50g 이하에서는 기울기가 높고, 500g 이상에서는 기울기가 완만한 것을 알 수 있습니다. Rc 저항 값을 변경해 주면 그래프가 아래와 같이 달라집니다. Rc 값을 높여주면 낮은 무게의 해상도가 높아지며, 반대로 낮추면 높은 무게의 해상도가 높아집니다.
2) 아두이노 나노 연결하기
- 가지고 있는 것이 1.5k 탄소막 저항이라 아래와 같이 연결하였습니다. 가변저항이 있다면 연결해서 점퍼 케이블로 연결해서 저항값을 바꿔 테스트해 보시는 것도 도움 될 것입니다.
브레드 보드에 장착하기 위해서 핀을 납땜하였습니다. QA6P 구멍에 2.54mm 핀이 들어가지 않습니다. 그래서 LED 다리나 저항 다리를 잘라서 사용하시면 됩니다.
- 점퍼 케이블 사용하지 않게 하려고 저항 다리를 길게 해서 사용했습니다.
4. 소스 확인
- 특별하게 어려운 것 없이 제조사 홈페이지에서 알려주는 소스를 그대로 이용합니다.
- map 함수를 통해서 아날로그 입력 핀에서 입력된 0~1024 값을 0~255 값으로 매핑되도록 하였습니다.
https://www.arduino.cc/reference/en/language/functions/math/map/
int SensorPin = A0; //analog pin 0
void setup(){
Serial.begin(9600);
}
void loop(){
int SensorReading = analogRead(SensorPin);
int mfsr_r18 = map(SensorReading, 0, 1024, 0, 255);
Serial.println(mfsr_r18);
delay(100);
}
5. 결과 확인
- 누르지 않고 있으면 풀다운 상태로 0 값을 가지고 있다가 누르기 시작하면 전압이 올라가며 매핑된 수치 값으로 받을 수 있습니다.
- 동작 영상
감사합니다.
<참조 사이트>
1. Force-sensing resistor(힘 감지 저항)
https://en.wikipedia.org/wiki/Force-sensing_resistor
2. 압력센서 FSR, QA6P
http://mdex-shop.com/product/detail.html?product_no=49&cate_no=1&display_group=5#UIF_HTML
3. Force Sensitive Resistor (FSR) 압력 센서
http://www.hardcopyworld.com/ngine/aduino/index.php/archives/629
'Embedded > Arduino' 카테고리의 다른 글
아두이노 나노 호환보드 워치독(Watchdog) 작동 안 되는 현상(멈춤현상) (0) | 2024.04.03 |
---|---|
Arduino Nano 33 IoT Bootloader blocked 된 경우 J-LINK EDU로 벽돌된 것 살리기 (성공후기) (0) | 2024.04.01 |
Arduino MPU9250(MPU6050) FIFO overflow error 해결하기 (2) | 2024.03.24 |
아두이노 나노를 이용한 GY-68(BMP180)기압/온도센서 테스트 (0) | 2024.03.21 |
아두이노 나노를 이용한 5V 수중 펌프 모터 제어(SZH-GNP155) (0) | 2024.03.20 |