Resistencia de detección de fuerza Arduino (FSR)

En este tutorial de resistencia de detección de fuerza Arduino, seguiré todos los pasos para configurar un circuito que pueda detectar la presión colocada en una almohadilla de presión o comúnmente conocida como resistencia de detección de fuerza (FSR).

También puede conectar una resistencia de sensor de fuerza a la Raspberry Pi. Es un poco más complicado que el Arduino, ya que no tiene pines analógicos en la Raspberry Pi.

Hay muchos usos para un sensor como éste. Hacia el final del tutorial, repaso algunos proyectos de ejemplo que hacen uso de este sensor genial.

El tutorial completo sobre cómo configurar un sensor de fuerza con Arduino está justo debajo. También pasamos por un código simple para los valores de la resistencia.

Equipo

A continuación se muestra la lista completa de equipos que necesitará para completar este tutorial de almohadilla de presión Arduino.

Recomendado

Arduino Uno

Tablero de circuitos

Alambre de tablero

Resistencia del sensor de fuerza (almohadilla de presión)

Resistencia de 100k

Circuito de resistencia de detección de fuerza

El circuito para este proyecto de Arduino es muy fácil ya que solo necesitamos la resistencia de detección de fuerza y ​​una resistencia de 100k.

Para este tutorial, explicaré cada parte y por qué la necesitaremos en nuestro circuito.

Resistencia del sensor de fuerza (FSR)

Esta resistencia es la parte más importante del circuito, ya que detectará cada vez que se aplique presión al área plana del sensor. Para este tutorial, utilizo un sensor de almohadilla de presión Flexiforce, pero hay alternativas mucho más económicas, incluido hacer el tuyo propio.

Cuando se aplica poca o ninguna presión sobre el sensor, la resistencia será casi infinita. Una vez que aplicas un poco de presión, la resistencia cae. Bajará a poco menos de 25 k ohmios cuando se aplique mucha presión.

Es casi exactamente lo mismo que una resistencia dependiente de la luz, pero se basa en la fuerza en lugar de la luz.

Resistor

Esta resistencia actuará como resistencia desplegable y como divisor de voltaje. Dividirá los 5v entre la almohadilla de presión y la resistencia. Cuando se aplica presión, proporcionará suficiente voltaje para registrarse con el pin analógico Arduino.

A continuación se muestra la ecuación que puede calcular cuál será el voltaje de nuestro pin GPIO. Por ejemplo, si nuestra almohadilla de presión tiene la resistencia máxima, será (100,000 / (100,000 + 10,000,000)) * 5 = ~ 0.004 voltios. Esto debería leer 0 al leer desde el pin analógico.

Si está aplicando un poco de presión al FSR para que la resistencia caiga a 50,000 ohmios, nuestra ecuación será (100,000 / (100,000 + 50,000)) * 5 = ~ 3.3 voltios. Esto debería leer alrededor de 700 en el pin analógico.

Diagrama de circuito

Como mencioné anteriormente, el diagrama de circuito para una resistencia de detección de fuerza es realmente sencillo con el Arduino. Siga los siguientes pasos para conectar todo o observe el diagrama de abajo.

  • Conecte un extremo del FSR a 5v.
  • Coloque la resistencia de 100k en la placa de pruebas y haga que un extremo vaya a GND y el otro al pin analógico 0.
  • Por último, haga que el extremo de la resistencia que va al pin analógico 0 también vaya al FSR.

Video de ejemplo del sensor de fuerza Arduino

Si te encanta ver las cosas visualmente, puedes ver este proyecto en acción justo debajo. Paso por los pocos pasos para armar el circuito y cuál debería ser la salida en serie cuando aplica presión a la resistencia de detección de fuerza.

Puede encontrar el código requerido para este proyecto justo debajo del video.

¿Adblock bloquea el video? Apóyenos suscribiéndose a nuestro servicio sin publicidad.

Codificación del sensor de fuerza

El código para este circuito de sensor de fuerza Arduino es bastante sencillo. Puede cambiar el código para que se ajuste más a sus necesidades, pero este debería ser un buen punto de partida.

Primero, necesitamos declarar nuestras variables. Estos son principalmente la definición de valores estáticos, como a qué pin está conectado nuestro FSR. También definimos lo que se considera sin presión, presión ligera y presión fuerte. Por último, la lectura de presión es donde almacenaremos nuestro valor del sensor.

int pressureAnalogPin = 0;  int pressureReading;   int noPressure = 5;  int lightPressure = 100; int mediumPressure = 200;

En nuestra función de configuración, iniciamos la interfaz serial para que podamos ver la salida en nuestra computadora. Configuramos la velocidad en baudios al valor predeterminado de 9600, cámbielo si desea usar algo más.

void setup(void) {   Serial.begin(9600); }

Por último, tenemos nuestra función de bucle. Aquí primero leemos la lectura de la resistencia del sensor de fuerza. Luego generamos este valor junto con el texto «Lectura de la almohadilla de presión =».

A continuación, generamos texto para indicar si la presión que se aplica es sin presión, presión ligera, presión media o presión alta.

Después del bloque if else, demoramos 1 segundo y repetimos hasta que se cargue un nuevo programa o se apague el Arduino.

void loop(void) { pressureReading = analogRead(pressureAnalogPin);  Serial.print("Pressure Pad Reading = "); Serial.println(pressureReading);  if (pressureReading < noPressure) { Serial.println(" - No pressure"); } else if (pressureReading < lightPressure) { Serial.println(" - Light Pressure"); } else if (pressureReading < mediumPressure) { Serial.println(" - Medium Pressure"); } else{ Serial.println(" - High Pressure"); } delay(1000); }

A continuación se muestra el código completo para leer la salida de nuestras resistencias de detección de fuerza. El valor que se muestra se puede utilizar para desencadenar acciones en función de la cantidad de presión aplicada.

Es posible que deba modificar las variables si encuentra que los valores de presión son mucho más altos o más bajos.

Si el método de copiar y pegar no funciona, también puede obtener el código en nuestro GitHub.

int pressureAnalogPin = 0; //pin where our pressure pad is located. int pressureReading; //variable for storing our reading  //Adjust these if required. int noPressure = 5; //max value for no pressure on the pad int lightPressure = 100; //max value for light pressure on the pad int mediumPressure = 200; //max value for medium pressure on the pad   void setup(void) {   Serial.begin(9600); }   void loop(void) {   pressureReading = analogRead(pressureAnalogPin);      Serial.print("Pressure Pad Reading = ");   Serial.println(pressureReading);    if (pressureReading < noPressure) {     Serial.println(" - No pressure");   } else if (pressureReading < lightPressure) {     Serial.println(" - Light Pressure");   } else if (pressureReading < mediumPressure) {     Serial.println(" - Medium Pressure");   } else{     Serial.println(" - High Pressure");   }   delay(1000); }

Alternativamente, puede usar algo de la línea Cayenne con Arduino. Este software facilita mucho la implementación de circuitos y le proporciona una interfaz gráfica muy agradable.

Probando el código

Implementar el código en Arduino es bastante sencillo.

Primero, haga clic en la marca ubicada en la esquina superior izquierda del IDE de Arduino (1). Verificará que su código esté funcionando.

A continuación, haga clic en la flecha junto a la marca de verificación (2). Esto comenzará con el proceso de cargar el código en Arduino, solo debería tomar unos segundos.

Ahora, cargue el monitor en serie yendo a herramientas-> monitor en serie o ctrl + shift + M.

Debería ver su código en acción con un resultado como el siguiente. Si ve un galimatías, asegúrese de que la velocidad en baudios esté configurada correctamente.

Usos en proyectos

Hay muchos usos de una resistencia de detección de fuerza en proyectos Arduino. A continuación se muestran algunos ejemplos de lo que puede hacer.

  • Puede conectar varias resistencias de detección de fuerza al Arduino y hacer que actúen como entradas. Por ejemplo, puede usarlos para tocar una melodía cada vez que toque el sensor.
  • Haga que actúe como un botón para encender o apagar dispositivos.
  • Utilice el sensor para iluminar o atenuar las luces cuando se le aplica más o menos presión.

Realmente espero que este tutorial de resistencia de detección de fuerza Arduino lo haya guiado a través de todo lo que necesita saber. Si tiene problemas o encuentra un problema, asegúrese de dejar un comentario a continuación.