ARDUINO 334265-633524 Sensor Flex Lång
Introduktion
Vi ägnar så mycket tid åt att prata om att känna av saker som är mindre mekaniska, att det är lätt att glömma att accelerometern inte är den enda delen i stan. Flexsensorn är en av de delar som ofta förbises av den avancerade användaren. Men vad händer om du behöver kolla om något böjt sig? Som ett finger, eller en dockarm. (Många leksaksprototyper verkar ha detta behov). Varje gång du behöver upptäcka en flex, eller böj, är en flexsensor förmodligen delen för dig. De finns i några olika storlekar. Flexsensorn är ett variabelt motstånd som reagerar på böjningar. Oböjd mäter den cirka 22KΩ, till 40KΩ när den böjs i 180º. Observera att böjningen bara detekteras i en riktning och avläsningen kan vara lite skakig, så du kommer att få de bästa resultaten när du upptäcker förändringar på minst 10º. Se också till att du inte böjer sensorn vid basen eftersom den inte registreras som en förändring och kan bryta ledningarna. Jag tejpar alltid en tjock skiva på basen för att den inte ska böjas där.
Att koppla upp det, och varför
Flexsensorn ändrar sitt motstånd när den böjs så att vi kan mäta den förändringen med en av Arduinos analoga stift. Men för att göra det behöver vi ett fast motstånd (som inte ändras) som vi kan använda för den jämförelsen (Vi använder ett 22K-motstånd). Detta kallas en voltage divider och delar 5v mellan flexsensorn och motståndet. Den analoga läsningen på din Arduino är en voltage meter. Vid 5V (dess max) skulle den läsa 1023, och vid 0v läsa 0. Så vi kan mäta hur mycket volymtage är på flexsensorn med hjälp av analogRead och vi har vår avläsning.
Mängden av de 5V som varje del får är proportionell mot dess motstånd. Så om flexsensorn och motståndet har samma resistans delas 5V jämnt (2.5V) till varje del. (analog avläsning av 512) Låtsas bara att sensorn bara läste 1.1K resistans, 22K-motståndet kommer att suga upp 20 gånger så mycket av de 5V. Så flexsensorn skulle bara få .23V. (Analog läsning av 46) \Och om vi rullar flexsensorn runt ett rör, kan flexsensorn vara 40K eller motstånd, så flexsensorn kommer att suga upp 1.8 gånger så mycket av de 5V som 22K-motståndet. Så flexsensorn skulle få 3V. (Analog läsning av 614)
Koda
Arduino-koden för detta kunde bara inte vara enklare. Vi lägger till några serietryck och förseningar till den bara så att du enkelt kan se avläsningarna, men de behöver inte finnas där om du inte behöver dem. I mina tester fick jag en läsning på Arduino mellan 512 och 614. Så utbudet är inte det bästa. Men med funktionen map() kan du konvertera det till ett större intervall. int flexSensorPin = A0; //analog pin 0
Example Kod
void setup(){ Serial.begin(9600); }void loop(){int flexSensorReading = analogRead(flexSensorPin); Serial.println(flexSensorReading) //I mina tester fick jag en läsning på arduino mellan 512 och 614. //Med map() kan du konvertera det till ett större intervall som 0-100. int flex0to100 = map(flexSensorReading, 512, 614, 0, 100); Serial.println(flex0to100); fördröjning(250); //bara här för att sakta ner utmatningen för enklare läsning
Dokument/resurser
![]() |
ARDUINO 334265-633524 Sensor Flex Lång [pdf] Användarmanual 334265-633524, 334265-633524 Sensor Flex Long, Sensor Flex Long, Flex Long, Long |