lunes, 13 de noviembre de 2017

Medidor de distancia con Arduino

Medidor de distancia con Arduino

Dr. Héctor Darío Aguirre Arvizu
17-11-12

Saludos amigos robotistas y estudiantes de electrónica.

En esta entrada vamos a ver cómo armar un pequeño medidor de distancia empleando un Arduino y un módulo de eco.
El principio de operación del módulo de eco es el siguiente: una pequeña bocina envía un ultrasonido en una dirección y cuando el mismo rebota en un objeto cercano localizado entre 3 cm y 3 m regresa al sensor localizado a unos dos centímetros del primero. Nosotros usamos en HCSR04 que se muestra en la imagen:
Módulo de ultrasonido HCSR04.
Para realizar el programa debemos utilizar la sencilla fórmula de la velocidad:
Fórmula de la velocidad.
De la fórmula anterior despejamos la distancia:
Fórmula de la velocidad

Conocemos la velocidad del sonido que es de 343 m/seg en condiciones normales de presión, aunque podemos generalizar a todos los puntos en el planeta, con el fin de simplificar.
Necesitamos calcular la distancia y para ello hacemos que nuestro módulo mande un pulso de duración breve para que iniciemos un contador de tiempo. Debido a que queremos que calcule directo la distancia en centímetros  hacemos la siguiente transformación de unidades:
Cálculo del factor para la distancia simplificando lo más posible
La duración de nuestro pulso será de 10 microseg.


Los siguientes son el diagrama eléctrico y el diagrama esquemático.
Diagrama eléctrico
Diagrama esquemático

A continuación presento el programa básico.

//Medidor de distancia
// Dr. Héctor Darío Aguirre Arvizu
//17-11-13

const int trig=12, echo=11; //para acordarnos de los pines y asegurar que no se modifican
float distancia=0, tiempo=0;  //declaramos las variables con las que mediremos distancia y tiempo

void setup() {
  Serial.begin(9600);
  pinMode(trig,OUTPUT); //Aquí tnemos la bocina
  pinMode(echo,INPUT); //aquí está el sensor de eco, es entrada
}

void loop() {
  digitalWrite(trig,LOW);// hace que el impulso sea cero al principio
  delayMicroseconds(5);//un tiempo de espera en microsegundos, ya que el milisegundo sería demasiado largo
  digitalWrite(trig,HIGH); //se enciende la bocina para mandar un pulso
  delayMicroseconds(10); //hacemos que el pulse dure 10 microsegundos
  tiempo = pulseIn(echo,HIGH); //se activa la bocina, empieza a contar el tiempo hasta recibir una señal, en echo.
  distancia = tiempo*0.01715; // por regla de conversión en torno a la velocidad de ida y vuelta del sonido para lectura
  Serial.print("Distancia = ");
  Serial.print(distancia); //imprimimos el valor de la variable llamada distancia, en el mismo renglón que el anterior
  Serial.println(" cm"); //imprime el nombre y da salto de línea al terminar 
  delay(500); //tiempo para que no lo haga demasiado rápido
}

Hasta aquí el programa

Reto: hacer que aparezca en metros, cambiamos la línea de cálculo de la distancia.

Aquí te mostramos un video sencillo del funcionamiento del circuito:

Esperamos te haya gustado.


D. R. 2017 Dr. Darío Aguirre





martes, 7 de noviembre de 2017

Detector de flama con Arduino

Detector de flama con Arduino


Dr. Héctor Darío Aguirre Arvizu
17-11-08


Saludos amigos robotistas.
En esta entrada presento un pequeño circuito detector de flama construido con un Arduino.
Se utilizó el siguiente módulo Honeywell, observa la disposición de las terminales Vcc, GND, A0 y D0:
Módulo detector de flama utilizado
A continuación muestro el diagrama electrónico elaborado con Fritzing, observa la nota en la imagen:
Diagrama electrónico de detector de flama
A continuación el diagrama esquemático. Recuerda que no se usó el sensor de la librería de Fritzing sino uno Honeywell con disposición de terminales completamente diferente:
Diagrama de conexiones
Acá te muestro un par de imágenes para que veas los detalles de conexión:
Detalles de conexión
Detalle de conexión
Aquí te muestro el programa que utilicé. Solamente cópialo y pégalo en tu pantalla de Arduino para hacerlo funcionar. Asegúrate que las conexiones son correctas.

//Detector de fuego
// Dr. Héctor Darío Aguirre Arvizu
//17-11-08

//Declaración de variables

const int medflama=A0, verde=2, rojo=3;  // Asignación de pin para lector de flama
int valor_medflama=0;    //Asignación de variable para medir flama

void setup() {
  // Programación de tarjeta inicial; funciones iniciales
Serial.begin(9600);
//Sección del detector de fuego
  pinMode(medflama,INPUT); //Asignamos la variable de medición de flama como entrada
  pinMode(verde,OUTPUT);  //hace que el pin 2 sea salida
  pinMode(rojo,OUTPUT);  //hace que el pin 3 sea salida
}

void loop() {
  // lectura de flama
valor_medflama=analogRead(medflama); //normalmente el valor del sensor será mayor de 200 cuando no hay fuego
  digitalWrite(verde,LOW);  //aseguramos que los LEDs empiecen apagados
  digitalWrite(rojo,LOW);
//inicia el ciclo de lectura y encendido de led verde si no hay fuego e impresióin en pantalla
  if(valor_medflama>200) { //pregunta si el sensor detecta fuego
    Serial.print(valor_medflama);
    Serial.println("      normal"); //Como no hay fuego, reporta normal
    digitalWrite(verde,HIGH); //no hay fuego
  delay(1000);  //espera un segundo antes de hacer la sigueinte acción
  }
  else {  //en caso de que la lectura sea de menos de 200 realiza las siguientes acciones
  digitalWrite(verde,LOW); //apaga el led verde
      Serial.print(valor_medflama); //imprime el valor leído
      Serial.println ("     Hay Fuego"); //imprime la presencia de fuego a partir del valor menor a 200
      digitalWrite(rojo,HIGH); //enciende el led rojo indicando fuego
    delay(1000);
    digitalWrite(rojo,LOW); //apaga el led rojo de alarma
    }
//el ciclo dura dos segundos
}

Hasta aquí el programa.

Aquí te muestro un video del funcionamiento para que te guíes a la hora de operarlo.

Asegúrate que todo está conectado correctamente antes de conectar el Arduino a tu computadora.
Espero te diviertas.


DR. Darío Aguirre 2017



miércoles, 1 de noviembre de 2017

Construcción de Display de 7 segmentos grande

Display de 7 segmentos 

(ánodo común)

Dr. Héctor Darío Aguirre Arvizu
01/11/17

A continuación muestro el patrón de cómo armar un display de 7 segmentos de tamaño grande con ánodo común.

Materiales:
Base de cartón o madera.
8 LEDs de alta intensidad, cualquier color o incluso LEDs grandes.
8 resistores de 220 ohmios.
6 metros de alambre o cable calibre 22.
Tiras de cartón o cartulina para hacer las cajas de cada uno de los segmentos, de 1.5 cm de ancho, por el largo y ancho de cada segmento de la imagen de abajo.
Papel aluminio para cubrir la parte interior de las cajas
Cinta para enmascarar (masking tape) o cinta adhesiva transparente.
Una hoja de acetato trasparente o de papel cebolla o de china, para la cubierta final.

Lee varias veces las instrucciones antes de hacer cualquier cosa. Asegúrate de que entiendes lo que te pido.

1. Baja la imagen de a continuación e imprímela a tamaño carta:
Display de 7 segmentos para imprimir.
2. Pega la imagen anterior en un cartón, madera, MDF o plástico de unos 3 a 5 mm de grosor.
3. Perfora con una aguja los orificios por donde van a pasar las terminales de los 8 LEDs y los orificios superiores por donde vas a sacar las conexiones de cada segmento. Aparecen con unos pequeños puntos rojos dentro de los círculos negros en los segmentos y en las salidas de arriba de la imagen. Usa un punzón o una broca de 3/64" de diámetro para los agujeros superiores.
4. Arma las "cajitas". Coloca cartón delgado de 1.5 cm de grosor en cada uno de los perímetros de los segmentos y un pequeño cilindro para el punto decimal. Usa pegamento 850 o semejante para madera que es más firme.
5. Coloca papel aluminio cubriendo la parte interior de las cajitas que hiciste. Asegúrate de que el lado más brillante queda hacia arriba. Pega bien el papel aluminio. Espera a que se seque antes de colocar los LEDs.
6. Coloca los LEDS con las terminales positivas en la misma dirección. Dobla por atrás las terminales de los leds. ¡¡Asegúrate de que las terminales de los LEDs no tocan el aluminio!!
7. Solda todas las terminales positivas entre sí con un alambre calibre 22. Con ello tendremos un display de ánodo común.
8. Solda a cada terminal negativa un resistor de entre 150 y 220 ohmios. No hagas caso al video que recomienda hacerlo con resistores de 50 ohmios, puede provocar que la vida de los LEDs sea muy corta.
9. Solda un alambre calibre 22 a cada una de las terminales de los 8 resistores y del punto común para que los puedas sacar desde atrás hacia adelante por los orificios de la parte superior. Asegúrate que quede un alambre de un largo de unos 30 cm desde arriba hacia afuera.
10. Coloca una caja alrededor del número para allí pegar el papel
11. Termina el diseño con su cubierta de plástico.
12. Conecta el punto "com" de tu display a los +5V de la tarjeta Arduino. Los demás alambres se conectan como indica el diagrama siguiente a tu Arduino:
Conexión del display a tarjeta Arduino.
Observa que el rojo es el +5V, el punto 13 es el punto decimal del display, el 12 el segmento a, el 11 el segmento b, y así sucesivamente hasta a llegar al 6 que es el segmento g.
13. Para activar tu display ve al siguiente enlace donde podrás ver el programa de Arduino, mismo que cargarás en tu tarjeta de modo fácil, simplemente copiándolo y pegándolo:
Si quieres puedes hacer un display de cátodo común soldando los negativos a un mismo alambre y pasándolo por el agujero "com", en tanto que colocas los resistores en las terminales positivas.

Observa el siguiente video. Tómalo como referencia. No le hagas caso en lo que se refiere a lo que yo te pido en este texto. Recuerda que vas a poner un led para el punto decimal, mismo que no usan en el video:

Nota. El display construido es de tipo ánodo común, es decir, el lado positivo o ánodo, de todos los leds, están conectados en común. El otro extremo de cada uno de los leds va a una terminal de salida del circuito Arduino.

D. R. 2017 Darío Aguirre