Sensor de fuerza (FSR402)

Indice

  1. sensor de fuerza cona aduino

1.sensor de fuerza con arduino

#define PIN_SENSOR_FUERZA A0  // El sensor FSR y la resistencia de 10K están conectados a A0

void setup() {
  Serial.begin(9600);  // Inicializar la comunicación serial a 9600 baudios
}

void loop() {
  // Leer el valor analógico del sensor de fuerza
  int lecturaAnalogica = analogRead(PIN_SENSOR_FUERZA);
  
  // Mostrar el valor leído por el monitor serie
  Serial.print("Lectura del sensor de fuerza = ");
  Serial.print(lecturaAnalogica);  // Imprimir el valor analógico crudo (0-1023)
  
  // Clasificar la presión según el valor leído:
  if (lecturaAnalogica < 10)        // de 0 a 9
    Serial.println(" -> sin presión");
  else if (lecturaAnalogica < 200)  // de 10 a 199
    Serial.println(" -> toque ligero");
  else if (lecturaAnalogica < 500)  // de 200 a 499
    Serial.println(" -> presión suave");
  else if (lecturaAnalogica < 800)  // de 500 a 799
    Serial.println(" -> presión media");
  else                              // de 800 a 1023
    Serial.println(" -> presión fuerte");
    
  delay(1000);  // Esperar 1 segundo entre cada lectura
}

Explicación del funcionamiento:

Sensor de Fuerza (FSR – Force Sensing Resistor):

  • Un FSR cambia su resistencia cuando se aplica presión
  • A mayor presión → menor resistencia → mayor valor analógico
  • Se usa con una resistencia de 10kΩ a tierra (divisor de voltaje)

Circuito recomendado:

text

    5V
     |
    FSR
     |
     +-----> A0 (lectura analógica)
     |
   10kΩ
     |
    GND

Rangos de presión:

Valor analógicoNivel de presiónAplicación típica
0 – 9Sin presiónSensor sin tocar
10 – 199Toque ligeroToque muy suave
200 – 499Presión suaveAgarrar un objeto delicado
500 – 799Presión mediaApretar un botón
800 – 1023Presión fuerteAgarrar con fuerza

Salida en el Monitor Serie:

text

Lectura del sensor de fuerza = 5 -> sin presión
Lectura del sensor de fuerza = 45 -> toque ligero
Lectura del sensor de fuerza = 350 -> presión suave
Lectura del sensor de fuerza = 650 -> presión media
Lectura del sensor de fuerza = 950 -> presión fuerte

Aplicaciones comunes:

  • Instrumentos musicales sensibles al tacto
  • Control de agarre en prótesis robóticas
  • Interfaces de usuario por presión
  • Básculas y medición de peso (con calibración)
  • Sistemas de detección de presencia
  • Controladores para juegos
  • Terapia física y rehabilitación (medir fuerza de agarre)

Mejoras posibles:

cpp

// Agregar calibración y mapeo a peso real (necesita pruebas)
#define PIN_SENSOR_FUERZA A0

int valorMinimo = 1023;  // Para calibración
int valorMaximo = 0;

void setup() {
  Serial.begin(9600);
  
  // Calibración: pedir que no toquen el sensor por 3 segundos
  Serial.println("No tocar el sensor durante 3 segundos...");
  delay(3000);
  
  for(int i = 0; i < 100; i++) {
    int lectura = analogRead(PIN_SENSOR_FUERZA);
    if(lectura < valorMinimo) valorMinimo = lectura;
    if(lectura > valorMaximo) valorMaximo = lectura;
    delay(20);
  }
  
  Serial.print("Rango calibrado: ");
  Serial.print(valorMinimo);
  Serial.print(" - ");
  Serial.println(valorMaximo);
}

void loop() {
  int lectura = analogRead(PIN_SENSOR_FUERZA);
  
  // Mapear a porcentaje de presión (0-100%)
  int porcentaje = map(lectura, valorMinimo, valorMaximo, 0, 100);
  porcentaje = constrain(porcentaje, 0, 100);  // Limitar entre 0 y 100
  
  Serial.print("Presión: ");
  Serial.print(porcentaje);
  Serial.println("%");
  
  // Visualización con barra ASCII
  Serial.print("[");
  for(int i = 0; i < porcentaje / 5; i++) {
    Serial.print("=");
  }
  for(int i = porcentaje / 5; i < 20; i++) {
    Serial.print(" ");
  }
  Serial.println("]");
  
  delay(100);
}

Características del FSR típico (ejemplo: FSR-402):

  • Rango de fuerza: 0.1N a 100N (aprox. 0 a 10 kg)
  • Resistencia sin presión: > 10 MΩ
  • Resistencia con presión máxima: ~200 Ω
  • Diámetro: 1.5 cm a 5 cm (según modelo)
  • Tiempo de respuesta: < 1 ms

Notas importantes:

  • Los FSR no son precisos para medidas exactas de peso
  • Son cualitativos, no cuantitativos (buenos para detectar tendencias)
  • La lectura puede variar con la temperatura
  • La superficie de contacto afecta la lectura (usar un émbolo de goma para mejor consistencia)
  • La resistencia pull-down de 10kΩ es crítica para el funcionamiento correcto