FSR(Force Sensing Resister)은 고분자후막(PTF)장치의 하나입니다. 압력을 감지하는 면에 가해지는 압력에 반비례해서 전기 저항이 감소하는 특성이 있고, 이것을 센서 입력으로 받아서 입력을 측정할 수 있습니다. 필름 상태로 된 얇고 가벼운 센서로, 아주 약한 압력도 감지할 수 있습니다. 또 어느 정도 구부러지는 성질이 있어 곡면에도 접착할 수 있기 때문에 버튼으로 사용되고 있습니다. 보통 스위치를 이용하는 버튼에는 ON/OFF 두 단계의 정보밖에 얻을 수 없지만, FSR을 이용하는 버튼에서는 버튼을 누르는 강도에 따른 정보까지 얻을 수 있는 것이 특징입니다.
정확하게 측정하기 위해서는 압력을 감지하는 면을 균일하게 눌러야 합니다. 누르는 범위가 감지하는 면보다 넓으면, 면의 크기보다 작은 원반이나 스폰지를 감지하는 면 위에 놓거나 하는 방안이 필요합니다.
■ 압력센서 동작원리
그림과 같이 압력 센서는 4개의 레이어로 구성되어 있습니다. Electrode의 면적 중 Semi-Conductor에 닿는 면적이 증가하면 저항이 줄어드는 원리로써 약간의 힘을 가하면 약100KΩ의 저항이 발생하며, 힘을 더 가할수록 센서의 저항값이 감소합니다. 얇은 필름 방식으로 제작된 압력센서로서 간단한 접촉의 압력 측정이 가능하며, 센서 영역에 얼마나 많은 압력이 가해졌느냐에 따라 저항 값이 변하게 됩니다.
[전자부품목록]
▶ 아두이노 보드: 1개
▶ 브레드보드: 1개
▶ 점프선
▶ 저항 : 330옴, 10k옴
▶ LED 1개
▶ 압력 센서 : 1개 (FSR-402)
(http://www.icbanq.com/P007537141)
▶ CLCD: 1개
■ 아두이노
압력센서로 들어온 값을 눌린 강도에 따라 LED 밝기를 바꾸는 예제입니다.
■ 아두이노 예제
※ 압력센서로 들어오는 신호를 디지털로 변환 후 LED의 밝기가 바뀌고 LCD에 그값을 표시하는 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <LiquidCrystal.h> //sensorpin은 센서에 압력센서에 연결한 아날로그 핀(0번) int sensorPin = 0; //ledPin은 LED에 견결한 핀(9번) int ledPin = 9; //LCD 객체 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup( ){ //LCD의 열수와 행수를 설정 lcd.begin(16, 2); //ledPin을 출력으로 설정 pinMode(ledPin, OUTPUT); } void loop( ){ //센서 값을 읽어 들인다 int value = analogRead(sensorPin); //LCD화면을 지운 후에 읽어 들인 압력을 표시 lcd.setCursor(0, 0); lcd.print("PRESSURE"); lcd.print(value); //읽어 들인 값으로 LED의 밝기를 구하고 LED의 밝기 바꿈 int intensity = map(value, 0, 1023, 0, 255); analogWrite(ledPin, intensity); //10ms 동안 대기 delay(10); } | cs |
※ 압력센서로 들어오는 신호를 디지털로 변환 후 LED의 밝기가 바뀌고 아두이노 IDE 시리얼 모니터에 값을 표시하는 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | //sensorpin은 센서에 압력센서에 연결한 아날로그 핀(0번) int sensorPin = 0; //ledPin은 LED에 견결한 핀(9번) int ledPin = 9; void setup( ){ //시리얼 통신 속도 설정 Serial.begin(9600); //ledPin을 출력으로 설정 pinMode(ledPin, OUTPUT); } void loop( ){ //센서 값을 읽어 들인다 int value = analogRead(sensorPin); //읽어 들인 값으로 LED의 밝기를 구하고 LED의 밝기 바꿈 int intensity = map(value, 0, 1023, 0, 255); //압력센서값을 시리얼 모니터로 출력 Serial.println(value); analogWrite(ledPin, intensity); //10ms 동안 대기 delay(10); } | cs |
'아두이노로 장난하기' 카테고리의 다른 글
아두이노로 사람의 움직임을 감지히기 (0) | 2018.03.26 |
---|---|
아두이노로 구부러짐 측정하기 (0) | 2018.03.15 |
아두이노로 거리(초음파 센서)를 측정하기 (0) | 2018.03.13 |
아두이노로 온도(LM35D)를 측정하기 (0) | 2018.03.13 |
아두이노로 빛의 밝기를 측정하기 (0) | 2018.03.13 |