Arduino Playground is read-only starting December 31st, 2018. For more info please look at this Forum Post

Отчитане на натиск чрез FSR 0.5" и Ардуино

FSR 0.5” e сензор, който намалява съпротивлението си при натиск. Когато не се въздейства върху чувствителната му зона, съпротивлението е по-голямо от 1М ома и сензорът е почти като отворен ключ.

За да се отчете оказания натиск, сензорът се свързва в схема „делител на напрежение“, която може да се захрани с 5V от Arduino. Изходното напрежение от схемата се подава към аналогов вход и се отчита с микроконотролер, по зададена програма. В примера ще използваме и зелен дифузен светодиод за визуализиране на натиска.

Свързване

Сензорът се свързва като R2, а за R1 се избира стойност от препоръчаните в даташийта на продукта. В примера за R1 избираме стойност 10k ома и го свързваме към захранващо напрежение от 5V. Изхода от схемата се подава към един от аналоговите входове на Arduino, който в случая е A0.

Съпротивлението в схемата на светодиода се изчислява според вида и яркостта му. Свързва се към анода(+) на светодиода и към някой от цифровите изходи на Arduino, отбелязан с ~ пред номера. Катода(-) се свързва към маса (GND)

Код

/*

* Отчита натиска върху сензор и го визуализира чрез светодиод

* Tihomir Trifonov (07-2011)
* с подкрепата на Robotev.com

*/

const int analogInPin = A0;  // към A0 се свързва изхода на делителя 
const int analogOutPin = 5;  // 5 е цифровия изход към който е свързана 
			     //схемата на светодиода

int sensorValue = 0;        // данни прочетени от сензора
int outputValue = 0;        // аналогов сигнал към светодиода

void setup() {
}

void loop() {

  sensorValue = analogRead(analogInPin);   // прочита състоянието на сензора от входа A0   

  sensorValue = constrain(sensorValue, 30, 1023);    //ограничава получените
                                                     //стойности в интервала 30 - 1023

  outputValue = map(sensorValue, 0, 1023, 0, 255);  // формира сигнал за визуализиране,
                                                    // пропорционален на прочетения

  analogWrite(analogOutPin, outputValue); // подава изходния сигнал към светодиода           

}

При натискане на сензора, съпротивлението му намалява, но тъй като е свързан като R2 в „делител на напрежение“ ще намалява и изходното напрежение от схемата. Отчитайки по-слабото напрежение, микроконтролера ще подаде и по-слаб сигнал към светодиода. Така при по-силен натиск, светодиода ще свети все по-слабо докато изгасне.