ARDUINO 334265-633524 Sensor Flex Long
Introduksjon
Vi bruker så mye tid på å snakke om å føle ting mindre mekanisk, at det er lett å glemme at akselerometeret ikke er den eneste delen i byen. Flex-sensoren er en av de delene som ofte overses av den avanserte brukeren. Men hva om du trenger å sjekke om noe bøyes? Som en finger, eller en dukkearm. (Mange leketøysprototyper ser ut til å ha dette behovet). Hver gang du trenger å oppdage en flex, eller bøy, er en flex-sensor sannsynligvis delen for deg. De kommer i noen forskjellige størrelser. Flex-sensoren er en variabel motstand som reagerer på bøyninger. Ubøyd måler den omtrent 22KΩ, til 40KΩ når den bøyes i 180º. Legg merke til at bøyningen bare registreres i én retning og avlesningen kan være litt ustabil, så du vil ha de beste resultatene ved å oppdage endringer på minst 10º. Pass også på at du ikke bøyer sensoren ved basen, da den ikke registreres som en endring og kan bryte ledningene. Jeg teiper alltid et tykt bord til bunnen av det for at det ikke skal bøye seg der.
Koble det til, og hvorfor
Flex-sensoren endrer motstanden når den bøyes, slik at vi kan måle den endringen ved å bruke en av Arduinos analoge pinner. Men for å gjøre det trenger vi en fast motstand (som ikke endres) som vi kan bruke for den sammenligningen (Vi bruker en 22K motstand). Dette kalles et voltage divider og deler 5v mellom flexsensoren og motstanden. Den analoge avlesningen på din Arduino er en voltage meter. Ved 5V (maks) vil den lese 1023, og ved 0v lese 0. Så vi kan måle hvor mye volumtage er på flex-sensoren ved hjelp av analogRead og vi har vår avlesning.
Mengden av de 5V som hver del får er proporsjonal med motstanden. Så hvis flexsensoren og motstanden har samme motstand, deles 5V jevnt (2.5V) til hver del. (analog avlesning av 512) Bare lat som at sensoren bare leste 1.1K motstand, 22K motstanden kommer til å suge opp 20 ganger så mye av den 5V. Så flex-sensoren ville bare få .23V. (Analog lesning av 46) \Og hvis vi ruller flexsensoren rundt et rør, kan flexsensoren være 40K eller motstand, så flexsensoren vil suge opp 1.8 ganger så mye av den 5V som 22K-motstanden. Så flex-sensoren ville få 3V. (Analog lesning av 614)
Kode
Arduino-koden for dette kunne bare ikke vært enklere. Vi legger til noen serietrykk og forsinkelser til den bare slik at du enkelt kan se avlesningene, men de trenger ikke være der hvis du ikke trenger dem. I testene mine fikk jeg en avlesning på Arduino mellom 512 og 614. Så rekkevidden er ikke den beste. Men ved å bruke map()-funksjonen kan du konvertere den til et større område. int flexSensorPin = A0; //analog pin 0
Example Kode
void setup(){ Serial.begin(9600); }void loop(){int flexSensorReading = analogRead(flexSensorPin); Serial.println(flexSensorReading) //I testene mine fikk jeg en avlesning på arduinoen mellom 512 og 614. //Ved å bruke map(), kan du konvertere det til et større område som 0-100. int flex0to100 = map(flexSensorReading, 512, 614, 0, 100); Serial.println(flex0to100); forsinkelse(250); //bare her for å bremse utgangen for enklere lesing
Dokumenter / Ressurser
![]() |
ARDUINO 334265-633524 Sensor Flex Long [pdfBrukerhåndbok 334265-633524, 334265-633524 Sensor Flex Long, Sensor Flex Long, Flex Long, Long |