Icono del sitio AranaCorp

Dale sentido a su robot con sensores

Un robot está constituido por cuatro componentes principales: Motores para el movimiento, Mecánica para mantener las piezas unidas, sensores para que reaccionen al entorno y un código para controlarlas y crear la funcionalidad deseada.

Los sensores juegan un papel importante cuando se trata de un robot autónomo. Veremos aquí cómo usarlos.

Presentación

El propósito de un sensor es medir un valor físico (velocidad, ángulo, temperatura, etc.). Existen numerosos sensores de diferentes tipos pasivos y activos (requieren alimentación). En este ejemplo, usamos un fotoresistor, pero se puede aplicar a otro tipo de sensor.

Ejamplo de sensores :

Passivo:

Activo:

Cableado

Sensores tiene un cableado diferente dependiendo de la cantidad de pines que utilizan. Por lo general, un sensor tiene 3 pines a tierra, suministro de voltaje 5V y la señal. Para el sensor pasivo, se crea una tercera salida para leer el voltaje en sus extremos.

Codigo basico

Dependiendo de su tipo, el sensor puede devolver dos informaciones: un estado (presencia o no) o un valor de voltaje continuo.

Para leer un estado, la función a utilizar es digitalRead(). Devuelve un nivel ALTO(HIGH) o BAJO(LOW) que representa el voltaje aplicado en el pin digital (0, 1, 2, etc.).

/*Read digital state*/
// Constants
#define DELAY 500 // Delay between two measurements in ms

// Parameters
const int sensorPin = 2; // Pin connected to sensor

//Variables
int sensorState; // state from the sensor

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

void loop(void) {
  sensorState = digitalRead(sensorPin);
 
  if (sensorState == HIGH) {
     Serial.print("Sensor state is HIGH ");
  } else {
     Serial.print("Sensor state is LOW ");
  }
  delay(DELAY);
}

Para leer un valor continuo, la función que usamos es analogRead() . Devuelve un valor entre 0 y 1023 que representa el voltaje aplicado en el pin analógico de Arduino (A0, A1, A2, etc.).

/*Read analog signal*/
// Constants
#define DELAY 500 // Delay between two measurements in ms

// Parameters
const int sensorPin = A0; // Pin connected to sensor

//Variables
int sensorVal; // Analog value from the sensor

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

void loop(void) {
  sensorVal = analogRead(sensorPin);
  Serial.print("Sensor reading = ");
  Serial.println(sensorVal); // the analog reading
  delay(DELAY);
}

Aplicaciones

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código

Salir de la versión móvil