Interfaz entre Flex Sensor y Arduino

¿Quieres aprender a utilizar un Flex Sensor con Arduino pero no sabes por dónde empezar? En este artículo te enseñaremos cómo crear una interfaz efectiva entre el Flex Sensor y Arduino. Sigue leyendo para descubrir paso a paso cómo conectar y programar estos dos componentes para crear proyectos interactivos y sensoriales. ¡No te lo pierdas!

Un sensor de curvatura, también llamado sensor de curvatura, es un sensor económico y fácil de usar para medir la cantidad de deflexión o flexión.

Ganó gran popularidad en la década de 1990 cuando se incluyó en el Nintendo Power Glove. Desde entonces, se ha utilizado como goniómetro para medir los movimientos de las articulaciones, sensor de puertas, interruptor de parachoques para detectar paredes y sensor de presión en pinzas robóticas.

Descripción general del sensor flexible

Un sensor flexible es básicamente una resistencia variable cuyo valor de resistencia cambia cuando se dobla. Debido a que la resistencia es directamente proporcional a la cantidad de flexión, a menudo se la denomina Potenciómetro flexible.

Los sensores flexibles suelen venir en dos tamaños: 2,2'' (5,588 cm) de largo y 4,5'' (11,43 cm) de largo.

Interfaz entre Flex Sensor y Arduino

construcción

Un sensor flexible a base de tinta conductora consta de un sustrato de resina fenólica sobre el que se aplica tinta conductora. Luego se coloca un conductor segmentado encima para crear un potenciómetro flexible.

Interfaz entre Flex Sensor y Arduino

Instrucciones de uso

El sensor flexible solo está diseñado para doblarse en una dirección, lejos de la tinta, como se muestra en la imagen a continuación. Si dobla el sensor en la dirección opuesta, no obtendrá datos precisos e incluso podría dañarlo.

Interfaz entre Flex Sensor y Arduino

Además, evite doblar el sensor demasiado cerca de la base (donde se engarzan las clavijas), ya que esto puede provocar torceduras y fallas.

¿Cómo funcionan los sensores flexibles?

La tinta conductora del sensor actúa como una resistencia. Cuando el sensor está recto, esta resistencia es de unos 25k.

Interfaz entre Flex Sensor y Arduino

Cuando se dobla el sensor, la capa conductora se estira, lo que da como resultado una sección transversal reducida (imagínese el estiramiento de una banda elástica) y una mayor resistencia. En un ángulo de 90°, esta resistencia es de aproximadamente 100K.

Cuando se realinea el sensor, la resistencia vuelve a su valor original. Al medir la resistencia, puede determinar cuánto está doblado el sensor.

Lectura de un sensor flexible

La forma más sencilla de leer el sensor flexible 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.

Interfaz entre Flex Sensor y Arduino

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 sensor flexible.

Usando esta ecuación podemos calcular el voltaje de salida (Vo).

Interfaz entre Flex Sensor y Arduino

En esta configuración, el voltaje de salida disminuye a medida que aumenta el radio de curvatura.

Por ejemplo, con un suministro de 5 V y una resistencia desplegable de 47 k ohmios, la resistencia será relativamente baja (alrededor de 25 k) cuando el sensor esté plano (0°). Esto crea el siguiente voltaje de salida:

Interfaz entre Flex Sensor y Arduino

En curva completa (90°), la resistencia aumenta a aproximadamente 100 K. Esto da como resultado el voltaje de salida:

Interfaz entre Flex Sensor y Arduino

Cableado de un sensor flexible a un Arduino

Conectar un sensor Flex a un Arduino es muy fácil.

Debe conectar una resistencia desplegable de 47 kΩ en serie con el sensor flexible para crear un circuito divisor de voltaje. Luego, la entrada A0 ADC de un Arduino se conecta a la unión de la resistencia desplegable y el sensor flexible.

Interfaz entre Flex Sensor y Arduino

Tenga en cuenta que los sensores flexibles son en realidad solo resistencias, lo que significa que puede conectarlos en cualquier dirección y seguir funcionando.

código de ejemplo de arduino

Aquí hay un boceto simple que lee los datos del sensor del pin ADC del Arduino y los muestra en el monitor serie. Para la mayoría de los proyectos, eso es prácticamente todo lo que se necesita.

const int flexPin = A0;			// Pin connected to voltage divider output

// Change these constants according to your project's design
const float VCC = 5;			// voltage at Ardunio 5V line
const float R_DIV = 47000.0;	// resistor used to create a voltage divider
const float flatResistance = 25000.0;	// resistance when flat
const float bendResistance = 100000.0;	// resistance at 90 deg

void setup() {
	Serial.begin(9600);
	pinMode(flexPin, INPUT);
}

void loop() {
	// Read the ADC, and calculate voltage and resistance from it
	int ADCflex = analogRead(flexPin);
	float Vflex = ADCflex * VCC / 1023.0;
	float Rflex = R_DIV * (VCC / Vflex - 1.0);
	Serial.println("Resistance: " + String(Rflex) + " ohms");

	// Use the calculated resistance to estimate the sensor's bend angle:
	float angle = map(Rflex, flatResistance, bendResistance, 0, 90.0);
	Serial.println("Bend: " + String(angle) + " degrees");
	Serial.println();

	delay(500);
}

Si todo está bien, debería ver el siguiente resultado en el monitor serie.

Interfaz entre Flex Sensor y Arduino

Explicación del código:

El boceto comienza especificando el pin Arduino al que está conectado el sensor Flex.

const int flexPin = A0;	

Luego se definen algunas constantes, incluido el voltaje del sistema (VCC), la resistencia utilizada para hacer un divisor de voltaje (R_DIV) y la resistencia que ofrece el sensor flexible en su configuración plana y curva (flatResistance Y bendResistance, respectivamente). Asegúrese de que estas constantes estén configuradas correctamente.

const float VCC = 5;
const float R_DIV = 47000.0;
const float flatResistance = 25000.0;
const float bendResistance = 100000.0;

En el setup establecemos y configuramos la comunicación serie. flexPin como ENTRADA.

void setup() {
	Serial.begin(9600);
	pinMode(flexPin, INPUT);
}

En el bucle comenzamos a leer el ADC.

int ADCflex = analogRead(flexPin);

Cuando Arduino convierte el voltaje de salida analógico del sensor en un valor digital, lo convierte en un número de 10 bits entre 0 y 1023. Por lo tanto, para calcular el voltaje de salida real, utilizamos la siguiente fórmula:

float Vflex = ADCflex * VCC / 1023.0;

Luego, la resistencia del sensor flexible se calcula utilizando la fórmula derivada de la fórmula del divisor de voltaje y se muestra en el monitor en serie.

float Rflex = R_DIV * (VCC / Vflex - 1.0);
Serial.println("Resistance: " + String(Rflex) + " ohms");

Luego usamos la resistencia calculada para estimar el ángulo de flexión del sensor. Para ello utilizamos el integrado en el IDE. map() Función.

El map() La función mapea la resistencia del sensor y la convierte en su ángulo de flexión. cuando llamamos map(Rflex, flatResistance, bendResistance, 0, 90.0)El valor de flatResistance se asigna a 0°, el valor de bendResistance se asigna a 90 ° y los valores intermedios se asignan a valores intermedios.

float angle = map(Rflex, flatResistance, bendResistance, 0, 90.0);
Serial.println("Bend: " + String(angle) + " degrees");
Serial.println();
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Interfaz entre Flex Sensor y Arduino

Descripción general del Sensor Flex

Un sensor flex, también conocido como sensor de flexión, es un sensor de bajo costo y fácil de usar que se utiliza para medir la cantidad de deflexión o flexión. Ganó popularidad en la década de 1990 debido a su inclusión en el Power Glove de Nintendo. Desde entonces, las personas lo han estado utilizando como goniómetro para medir el movimiento articular, como sensor de puerta, como interruptor de parachoques para detectar paredes y como sensor de presión en pinzas robóticas.

Construcción del Sensor Flex

Un sensor flex basado en tinta conductora está hecho de un sustrato de resina fenólica sobre el cual se aplica tinta conductora. Se coloca un conductor segmentado encima para crear un potenciómetro flexible.

¿Cómo funcionan los sensores flex?

La tinta conductora en el sensor sirve como resistor. Cuando el sensor está recto, esta resistencia es de alrededor de 25k. Al doblar el sensor, la capa conductora se estira, lo que resulta en una reducción de la sección transversal y un aumento de la resistencia.

Lectura de un Sensor Flex

La forma más sencilla de leer un sensor flex 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 análogo-digital de un microcontrolador.

Cableado de un Sensor Flex a un Arduino

Conectar un sensor flex a un Arduino es muy simple. Es importante tener en cuenta que los sensores flex son simplemente resistores, lo que significa que se pueden conectar en cualquier dirección y seguirán funcionando.

Ejemplo de Código Arduino

Aquí tienes un código simple que lee los datos del sensor desde el pin ADC del Arduino y los muestra en el monitor serial.


const int flexPin = A0; // Pin conectado a la salida del divisor de voltaje

// Cambia estas constantes de acuerdo al diseño de tu proyecto
const float VCC = 5;
const float R_DIV = 47000.0;
const float flatResistance = 25000.0;
const float bendResistance = 100000.0;

void setup() {
Serial.begin(9600);
pinMode(flexPin, INPUT);
}

void loop() {
int ADCflex = analogRead(flexPin);
float Vflex = ADCflex * VCC / 1023.0;
float Rflex = R_DIV * (VCC / Vflex - 1.0);
Serial.println("Resistencia: " + String(Rflex) + " ohmios");

float angle = map(Rflex, flatResistance, bendResistance, 0, 90.0);
Serial.println("Flexión: " + String(angle) + " grados");
Serial.println();

delay(500);
}

Para más detalles sobre cómo leer y utilizar un sensor flex con Arduino, puedes consultar la fuente original.

1 comentario en «Interfaz entre Flex Sensor y Arduino»

Deja un comentario