¿Alguna vez has querido crear un proyecto que responda a la presión o fuerza aplicada sobre una superficie? En este artículo, exploraremos la interfaz entre la resistencia sensora de fuerza (FSR) y Arduino, una combinación poderosa que te permitirá dar vida a tus ideas creativas. Descubre cómo utilizar esta tecnología para diseñar dispositivos interactivos y conectar el mundo físico con el digital. ¡No te pierdas esta fascinante guía!
Una resistencia de sensor de fuerza, también llamada sensor de fuerza o simplemente FSR, es un sensor sencillo y económico para medir la presión física, la presión y el peso.
Se encuentra en una variedad de dispositivos electrónicos portátiles, incluidos tambores electrónicos, dispositivos de juegos portátiles y teléfonos celulares.
Este sensor es excelente para medir la presión, pero no es tan preciso cuando se trata de estimar cuánto peso tiene. Entonces, si solo desea saber “si se empujó o presionó el sensor y con qué fuerza”, esta podría ser una buena opción para su próximo proyecto de medición de fuerza.
Descripción general del IEF
La patente de la tecnología utilizada en los FSR es propiedad de Interlink Electronics, que opera desde 1985. Los tipos de FSR más comunes que encontrará son Interlink FSR-402 y FSR-406.
construcción
Un FSR es simplemente una resistencia variable cuya resistencia cambia en respuesta a la presión aplicada al área de detección.
Se compone de varias capas finas y flexibles. Cuando se aprietan, una mayor cantidad de elementos de carbono que normalmente proporcionan resistencia entran en contacto con las huellas, lo que reduce la resistencia.
forma y tamaño
Hay disponible una amplia gama de FSR, cada uno con su propio tamaño, forma y rango de detección.
La mayoría de los FSR tienen áreas de detección circulares o rectangulares. Los FSR rectangulares son ideales para detectar áreas grandes, mientras que los sensores circulares pequeños pueden proporcionar una mayor precisión.
Área de detección
El rango de detección del FSR es otra consideración importante ya que determina las presiones más baja y más alta que puede detectar.
Cuanto más corto sea el rango de detección del FSR, mayor será su sensibilidad. ¡Pero! No se puede medir ninguna presión por encima del rango máximo del sensor (lo que también puede provocar daños al sensor). Por ejemplo, un FSR más pequeño de 1 kg proporcionará lecturas más sensibles de 0 a 1 kg, pero no puede diferenciar entre 2 kg y 5 kg.
¿Cómo funciona la FSR?
Como se mencionó anteriormente, un FSR es básicamente una resistencia cuyo valor de resistencia varía según la presión que se le aplica.
Si no hay presión, el sensor mostrará una resistencia infinita (superior a 1 MΩ). A medida que se aplica más presión al cabezal del sensor, la resistencia entre sus terminales disminuye, mientras que al liberar la presión la resistencia vuelve a su valor original.
El siguiente gráfico muestra la resistencia aproximada del sensor FSR-402 ante diversas fuerzas aplicadas. Aquí se utilizan escalas logarítmicas para representar los datos.
Tenga en cuenta que el gráfico es lineal por encima de 50 g. Esto se debe a que estos sensores tienen un umbral de activación. Es una fuerza que debe estar presente antes de que la resistencia caiga por debajo de 100.000. Después de eso, la relación se vuelve más lineal.
Leyendo un FSR
La forma más sencilla de leer el FSR es combinarlo con una resistencia estática para formar un divisor de voltaje que produzca un voltaje variable que pueda leerse mediante un convertidor analógico a digital de un microcontrolador.
Es importante tener en cuenta que el voltaje de salida que mide es la caída de voltaje a través de la resistencia desplegable, no la caída de voltaje a través del FSR.
Usando esta ecuación podemos calcular el voltaje de salida (Vo).
En esta configuración, el voltaje de salida aumenta a medida que aumenta la fuerza aplicada.
Por ejemplo, con un suministro de 5 V y una resistencia desplegable de 10 K sin presión, la resistencia FSR es extremadamente alta (alrededor de 10 M). Esto crea el siguiente voltaje de salida:
Si aplica una fuerza significativa al FSR, la resistencia cae a aproximadamente 250 Ω. Esto da como resultado el voltaje de salida:
Como puede ver, el voltaje de salida varía entre 0 y 5V dependiendo de la fuerza aplicada al sensor.
La siguiente tabla ofrece una descripción general aproximada del voltaje analógico que puede esperar de un FSR con diversas fuerzas aplicadas.
fuerza (libras) | Fuerza (N) | resistencia FSR | Voltaje en R |
Ninguno | Ninguno | Infinito | 0V |
0,04 libras | 0,2N | 30 kΩ | 1,3 V |
0,22 libras | 1N | 6KΩ | 3,1 V |
2,2 libras | 10N | 1KΩ | 4,5 V |
22 libras | 100N | 250Ω | 4,9 V |
Cableando un FSR a un Arduino
Es bastante fácil conectar FSR a un Arduino.
Debe conectar una resistencia desplegable de 10 kΩ en serie con el FSR para crear un circuito divisor de voltaje. A continuación, la entrada A0 ADC de un Arduino se conecta a la unión de la resistencia desplegable y el FSR.
Tenga en cuenta que los FSR en realidad son solo resistencias, lo que significa que puede conectarlos en cualquier dirección y seguir funcionando.
Ejemplo 1 de Arduino: mediciones FSR analógicas simples
En nuestro primer experimento, leemos los datos del sensor del pin ADC del Arduino y los mostramos en el monitor serie.
El código es bastante simple. Simplemente imprime lo que interpreta como una cantidad de impresión de forma cualitativa. Para la mayoría de los proyectos, eso es prácticamente todo lo que se necesita.
int fsrPin = 0; // the FSR and 10K pulldown are connected to a0
int fsrReading; // the analog reading from the FSR resistor divider
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
fsrReading = analogRead(fsrPin);
Serial.print("Analog reading = ");
Serial.print(fsrReading); // print the raw analog reading
if (fsrReading < 10) {
Serial.println(" - No pressure");
} else if (fsrReading < 200) {
Serial.println(" - Light touch");
} else if (fsrReading < 500) {
Serial.println(" - Light squeeze");
} else if (fsrReading < 800) {
Serial.println(" - Medium squeeze");
} else {
Serial.println(" - Big squeeze");
}
delay(1000);
}
Si todo está bien, debería ver el siguiente resultado en el monitor serie.
Explicación del código:
El boceto comienza especificando el pin Arduino al que está conectado el FSR. A continuación definimos el fsrReading
Variable para almacenar la lectura analógica sin procesar del FSR.
int fsrPin = 0;
int fsrReading;
La comunicación serie se configura en la función de configuración.
void setup(void) {
Serial.begin(9600);
}
En el bucle leemos la salida analógica del FSR y la mostramos en el monitor serie.
Como se mencionó anteriormente, el voltaje de salida del sensor varía de 0 V (sin presión aplicada) a aproximadamente 5 V (presión máxima aplicada). Cuando Arduino convierte este voltaje analógico en un valor digital, lo convierte en un número de 10 bits entre 0 y 1023. Por lo tanto, el valor que se muestra en el monitor serie varía de 0 a 1023 dependiendo de qué tan fuerte presione el sensor.
fsrReading = analogRead(fsrPin);
Serial.print("Analog reading = ");
Serial.print(fsrReading);
Finally, we print the amount of pressure measured qualitatively.
if (fsrReading < 10) {
Serial.println(" - No pressure");
} else if (fsrReading < 200) {
Serial.println(" - Light touch");
} else if (fsrReading < 500) {
Serial.println(" - Light squeeze");
} else if (fsrReading < 800) {
Serial.println(" - Medium squeeze");
} else {
Serial.println(" - Big squeeze");
}
Ejemplo 2 de Arduino: mediciones FSR analógicas avanzadas
El siguiente boceto de Arduino es bastante avanzado. Mide la fuerza aproximada de Newton medida por el FSR. Esto puede resultar muy útil para calibrar las fuerzas esperadas en el FSR.
int fsrPin = 0; // the FSR and 10K pulldown are connected to a0
int fsrReading; // the analog reading from the FSR resistor divider
int fsrVoltage; // the analog reading converted to voltage
unsigned long fsrResistance; // The voltage converted to resistance
unsigned long fsrConductance;
long fsrForce; // Finally, the resistance converted to force
void setup(void) {
Serial.begin(9600); // We'll send debugging information via the Serial monitor
}
void loop(void) {
fsrReading = analogRead(fsrPin);
Serial.print("Analog reading = ");
Serial.println(fsrReading);
// analog voltage reading ranges from about 0 to 1023 which maps to 0V to 5V (= 5000mV)
fsrVoltage = map(fsrReading, 0, 1023, 0, 5000);
Serial.print("Voltage reading in mV = ");
Serial.println(fsrVoltage);
if (fsrVoltage == 0) {
Serial.println("No pressure");
} else {
// The voltage = Vcc * R / (R + FSR) where R = 10K and Vcc = 5V
// so FSR = ((Vcc - V) * R) / V yay math!
fsrResistance = 5000 - fsrVoltage; // fsrVoltage is in millivolts so 5V = 5000mV
fsrResistance *= 10000; // 10K resistor
fsrResistance /= fsrVoltage;
Serial.print("FSR resistance in ohms = ");
Serial.println(fsrResistance);
fsrConductance = 1000000; // we measure in micromhos so
fsrConductance /= fsrResistance;
Serial.print("Conductance in microMhos: ");
Serial.println(fsrConductance);
// Use the two FSR guide graphs to approximate the force
if (fsrConductance <= 1000) {
fsrForce = fsrConductance / 80;
Serial.print("Force in Newtons: ");
Serial.println(fsrForce);
} else {
fsrForce = fsrConductance - 1000;
fsrForce /= 30;
Serial.print("Force in Newtons: ");
Serial.println(fsrForce);
}
}
Serial.println("--------------------");
delay(1000);
}
Así es como se ve la salida en el monitor serie.
Interfaz entre la resistencia sensora de fuerza (FSR) y Arduino
Un Resistencia Sensor de Fuerza, también conocido como Fuerza Sensor, o simplemente un FSR, es un sensor simple y económico diseñado para medir la presión física, el apretón y el peso.
Visión general del FSR
La patente de la tecnología utilizada en los FSRs es propiedad de Interlink Electronics, que ha estado en el negocio desde 1985. Los tipos más comunes de FSR que encontrará son Interlink FSR-402 y FSR-406.
Construcción
Un FSR es simplemente un resistor variable cuya resistencia varía en respuesta a la presión aplicada al área sensora.
Forma y Tamaño
Hay una amplia selección de FSR disponibles, cada uno con su propio tamaño, forma y rango de detección único.
Rango de detección
El rango de detección del FSR es otro aspecto importante porque determina las presiones más bajas y más altas que puede detectar.
¿Cómo funciona el FSR?
Un FSR es básicamente un resistor cuyo valor resistivo varía en función de la cantidad de presión aplicada sobre él.
Lectura de un FSR
La forma más simple de leer el FSR es combinarlo con un resistor estático para formar un divisor de voltaje, que produce un voltaje variable que puede ser leído por el convertidor analógico-digital de un microcontrolador.
Conexión de un FSR a un Arduino
Es bastante fácil conectar un FSR a un Arduino. Necesitas conectar un resistor de 10kΩ en serie con el FSR para crear un circuito divisor de voltaje.
Ejemplo de Arduino 1 – Mediciones de FSR analógicas simples
En nuestro primer experimento, leeremos los datos del sensor desde el pin ADC del Arduino y los mostraremos en el monitor serial.
Ejemplo de Arduino 2 – Mediciones de FSR analógicas avanzadas
El siguiente boceto de Arduino es bastante avanzado. Mide la fuerza aproximada en Newtons medida por el FSR, lo que puede ser muy útil para calibrar las fuerzas que esperas que experimente el FSR.
¡Qué útil y práctico! Me encanta cómo explican paso a paso cómo hacer la interfaz entre FSR y Arduino. ¡Muy buen artículo!
¡Interesante forma de conectar la resistencia sensora de fuerza con Arduino! ¡Genio!