1. El Octavo Bit
  2. / Lenguaje de programación de Arduino
  3. / Pulsein()

Pulsein()

| Actualizado:
Comentarios: 0

Lee un pulso (HIGH o LOW) de un pin determinado. Por ejemplo, si el valor especificado como parámetro es HIGH, pulseIn() espera a que el pin esté en HIGH, en ese momento comienza la cuenta (timing) hasta que la tensión en el pin esté en LOW momento en que cesa la cuenta. pulseIn() devuelve la duración del pulso en microsegundos. Asimismo, pulseIn() devuelve control con un 0 como retorno si el pulso no comienza dentro de un periodo especificado (time out).

Por ejemplo, sirve para detectar el cambio de estado en una señal por ultrasonidos, es decir, si se configura el pin del sensor de ultrasonidos a un valor alto (HIGH), devolverá el tiempo transcurrido entre el cambio de estado a ese valor. Previamente habrá que establecer el pin del triger en el sensor ultrasonidos a un valor bajo (LOW). De esta forma, sabiendo el tiempo transcurrido se puede calcular una distancia.

Sintaxis

pulseIn(pin, valor)
pulseIn(pin, valor, tiempo) 

Parámetros

  • pin: es el número del pin del que se quiere leer la duración del pulso.Tipo: int
  • valor: es el tipo de pulso que se quiere leer (HIGH o LOW). Tipo: int
  • tiempo (opcional): es el número de microsegundos que se quiere esperar para que comience el pulso; por defecto es un segundo. Tipo: unsigned long

Ejemplo:

En el ejemplo utilizamos un sensor de ultrasonido HC-SR04 para medir la distancia. El esquema de montaje sería:

Esquema para medir una distancia con Arduino
// Definir los pines para el sensor ultrasónico
const int trigPin = 9;
const int echoPin = 10;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  // Generar un pulso corto en el pin de trigger
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Medir la duración del pulso en el pin de eco
  long duracion = pulseIn(echoPin, HIGH);

  // Calcular la distancia en centímetros usando la fórmula: distancia = velocidad * tiempo / 2
  // La velocidad del sonido es aproximadamente 343 metros por segundo o 0.0343 centímetros por microsegundo
  int distancia = duracion * 0.0343 / 2;

  // Mostrar la distancia en el monitor serial
  Serial.print("Distancia: ");
  Serial.print(distancia);
  Serial.println(" cm");

  // Esperar un poco antes de realizar la próxima medición
  delay(1000);
}

El pin trigPin se utiliza para enviar un pulso corto al sensor ultrasónico, y el pin echoPin se utiliza para medir la duración del pulso reflejado. La función pulseIn() se utiliza para medir la duración del pulso en el pin de echo, y luego se calcula la distancia basándose en esa duración.

Comentarios - 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *