domingo, 3 de noviembre de 2013

CNC Linux y Codigos G con Inkscape y Sketchup



GENERACIÓN DE ARCHIVO DE CÓDIGOS G DESDE INKSCAPE

Enlaces para la descarga de los programas empleados:
 Enlaces de interés:
 Vídeos de interés:
 
Como Utilizar Gcodetools

 Como Instalar Inkscape y Gcodetools


GENERACIÓN DE ARCHIVO SVG DESDE SKETCHUP

Enlaces para descarga de los programas empleados:
MAQUINA CNC

Siguiendo con el trabajo de previo de Oscar Andres Bedoya, Yerson Andres Diaz y Eduar Alirio Gil se realizo mantenimiento a la maquina, así como la instalación permanente en un computador de CncLinux también se grabaron vídeos instructivos para futuros trabajos o de consulta en caso de necesitar configurarla nuevamente.
La maquina opera con al tarjeta TB6560 el siguiente vídeo explica la configuración básica sin tener en cuenta los fines de carrera, también se muestra las relaciones empleadas en los ejes de esta maquina.


Configuración Puerto Con TB6560


Enlaces de interés:



LINUX CNC EMC2

El software empleado es una distribución GNU/Linux basada en Ubuntu, tiene de especial que también es Real Time Linux para garantizar que los procesos de operación de los motores se ejecuten simultáneamente y sin latencias.
Enlaces de interés:



 

lunes, 28 de octubre de 2013

Cables adaptadores USB a RS232


Cables Adaptadores USB a RS232
En los computadores actuales ya no se encuentra el antes común puerto serial con conector DB9, sin embargo este puerto es muy utilizado para la realización de interfaz entre el computador aplicaciones electrónicas microcontraladas.
Como solución en el mercado se disponen de adaptadores de USB a RS232 de bajo consto, pero con el inconveniente de que el CD de los controladores esta en idioma chino o simplemente se tiene el adaptador pero no los controladores. También hay que tener en cuenta que estos cables adaptadores tienen diferentes chips y que de acuerdo a esto se instala el controlador en el caso del sistema operativo windows xp y 7.
(En windows 8 hasta ahora las pruebas de instalación realizadas son negativas )
Cable Adaptador USB a RS232  HL-340
Este cable adaptador es común de conseguir y se puede identificar en su mayoría por ser de color verde, tal como se muestra en la foto de arriba.
Para estar seguros de que el cable corresponde al HL-340 se puede utilizar la consola de Linux y ejecutar el comando lsusb.
lsusb hl-340
Identificado el chip del cable adaptador se procede a buscar el controlador, para este adaptador se encontró que corresponde al CH341SER.ZIP que se pude descargar de los siguientes enlaces.

Para instalar el HL-340 encontré el siguiente enlace:
Encontré que para las recomendaciones de instalación en windows 7 es que una vez descomprimido el archivo CH341SER.ZIP, es que se use el propio asistente de instalación de controladores de windows 7 y no el ejecutable que hay dentro de la carpeta.

Cable Adaptador USB a RS232  Prolific PL-2303
Este cable adaptador es uno de los mas populares, según el fabricante están siendo falsificados sus adaptadores y que estos productos pueden tener problemas en windows.
También el fabricante confirma que no todas las referencias de este chip es compatible para windows 8
Para estar seguros de que el cable corresponde al Prolific PL-2303 se puede utilizar la consola de Linux y ejecutar el comando lsusb.

Identificado el chip del cable adaptador se procede a buscar el controlador,  que se pude descargar de los siguientes enlaces.

La prueba realizada para su instalación en windows 7 se procedió a actualizar el controlador y de forma manual se selecciona la carpeta, luego la instalación la realizo el propio sistema.

jueves, 19 de septiembre de 2013

Pinguino RS232

PINGUINO RS232
Uno de los modos de comunicación con pinguino es la comunicación serial asíncrona con el protocolo RS232, aunque ya es poco frecuente encontrar computadores con el conector DB9 de comunicación serial se puede utilizar un adaptador USB - RS232.
Existen muchos aparatos electrónicos sobre todo de uso industrial o de laboratorio que operan con este protocolo.
También la gran mayoría de lenguajes de programación cuentan con librerías para la realización de aplicaciones con comunicación serial asíncrona.
Esquema de conexión pinguino con el max232

miércoles, 18 de septiembre de 2013

Como reutilizar una cámara web de un portátil dañado

Cámara de un portátil hp desechado

 Una de las partes de un portátil que sido desechado y se puede reutilizar es la cámara web. 
Las cámaras de portátiles son pequeñas y pueden utilizarse para proyectos de estereografía o en robótica por ejemplo en un brazo para inspección de objetos.
Listado de dispositivos USB
En los portátiles las cámaras web son detectadas como dispositivos USB, por lo tanto se pueden reutilizar soldando un cable de conexión USB.
Microdia web cam de portatil

Cuando se desarma la pantalla del portátil se pude ver la cámara y un conector con 4 cables, en el caso de esta cámara los cables no están en el orden de un conector USB, asi que con un multimetro se proce a indentificar las conexiones
  • La conexion de tierra se encontro empleando como guia un circuito integrado (25L512) y los bordes de los agujeros de los tornillos que aseguran la tarjeta al chasis.
  • El integrado 25L512 y como muchos otros circuitos integrados se alimentan a 3.3V por lo tanto para encontrar el terminal de 5V de conector USB se procedió a inspeccionar el terminal de alimentación del integrado hallando que esta conectado a un regulador de voltaje y de allí probando continuidad con el multimetro se encontró el terminal de 5 Voltios.
  • Los terminales D+ y D- se determinan a prueba y error.
Cámara Microdia reconectada


 La cámara fue probada en Ubuntu con Guvcview con los controladores de video for linux.
 


miércoles, 4 de septiembre de 2013

comunicación CDC en windows con Pinguino


Comunicación CDC en windows XP

En windows xp no es problemática la instalación del controlador solo se necesita el archivo mchpcdc.inf que proporciona microchip.
Esto servira en realidad no solo para pinguino, sino también en general para cualquier PIC que tenga este soporte y este programado de esta manera.
Instalación en windows xp

Comunicación CDC windows 7


Aquí empiezan los problemas, de hecho busque  bastante en la web y no encontré una solución satisfactoria. Lo que encontré que más se parecía fue para windows 8 de como instalaban un dispositivo con chip ft232, así que con la ayuda del profesor Alexis Ramirez procedimos a lograr hacer la instalación.
Lo que encontramos en resumidas cuentas es que windows hace mal la asignación del dispositivo asociado al controlador, por lo que lo desinstalamos y manualmente le asignamos el dispositivo. En el vídeo esta mas claro el procedimiento.
En windows 8 no he probado, pero recientemente la instalación de un adapatador usb serial  con chip prolific dio problemas y quedo mal instalado el controlador, pero en windows 7 el mismo dispositivo quedo instalado correctamente. Por lo anterior y mi experiencia previa instalando otros controladores me temo que en windows 8 se encontraran dificultades o la imposibilidad de instalación.

Pasos a seguir para instalación en windows 7

Estos son los pasos para instalar el controlador de pinguino para programarlo en windows  y los pasos para instalar el controlador para comunicación serial usb cdc del pinguino en windows

1. programar por aparte en el pinguino un programa que no use la comunicación cdc.
2. conectar el pinguino al pc.
3. ejecutar el inf-wizard.exe (se debe dar un nombre al controlador que va a crear y seleccionar el botón instalar ahora .
nota: después de esto ya debería quedar listo el pinguino para programarlo por usb.

4. programar en el pinguino un ejemplo de comunicación serial cdc.
5. reiniciar el pinguino y esperar que empiece a funcionar el programa de comunicación cdc.
6. ir al administrador de dispositivos de windows y desinstalar el controlador (software y hardware) que aparece al empezar a funcionar el pinguino con el programa de cdc. muy seguramente aparecerá que se ha reconocido como un dispositivo libusb y que funciona bien.
7. desconectar y conectar de nuevo el pinguino y esperar que el programa cdc funcione.
8. en el administrador de dispositivos instalarle el controlador mchpcdc.inf al dispositivo nuevo que aparece.
9. verificar que aparezca un nuevo puerto serial con un com# asignado.
listo....

CDC en Processing y Lazarus

En GNU/Linux y en mi caso que utilizo la distribución Ubuntu no he tenido problemas, ni de instalación, ni de comunicación.
Pero en el caso de windows la comunicación con Processing no la he logrado, la aplicación se bloquea. Probando con Lazarus no tuve inconveniente alguno y fue exitosa, tampoco con el hyperterminal tuve problemas en hacer las pruebas de comunicación.

Enlaces de interés

martes, 3 de septiembre de 2013

Comunicación Bluetooth serial

MÓDULO BLUETOOTH BLK MD BC04

Este dispositivo permite conectar seriamente un sistema microcontrolado sin la utilización de cables. La conexión se hace inalambricamente por medio del protocolo bluetooth 2.0
Una de sus ventajas es que no hay que instalar controladores adicionales solo se debe seleccionar el dispositivo que aparece con el nombre de BOLUTEK y luego introducir el código 1234.
El computador lo detectara como un puerto serial virtual.
Con este modulo también es posible la comunicación con un dispositivo móvil con sistema operativo Android.
Terminales para configuración en modo serial

Diagrama esquemático BLK MD BC04
El módulo puede ser reconfigurado por medio de comandos AT, la guía de comandos puede ser consultado en:

Enlaces de interés

Videos

Como se instala en windows

Ejemplo con Android
Android con BlueTerm

martes, 20 de agosto de 2013

Impreso Pinguino 18F2550

Circuito Impreso Para Pinguino Con El PIC 18F2550

Este es el un PCB o tarjeta impresa para montar Pinguino con el 18f2550. El documento esta en formato PDF en formato carta.
La documento se dejo para que pueda ser planchado en papel fotográfico  propalcolte o especial para la fabricación de circuitos impresos.
En el siguiente gráfico se muestra como deben ir los componentes.
El conector USB es hembra y necesita una extensión para realizar la conexión al computador.

Impreso Pinguino 18f2550


viernes, 2 de agosto de 2013

Comunicación RF con los módulos RWS y TWS


COMUNICACIÓN POR RADIOFRECUENCIA CON LOS MÓDULOS RWS434 Y TWS434


Transmisor TWS 434
Receptor RWS 434

Estos módulos el receptor RWS  y el transmisor TWS  son económicos y fáciles de emplear.
La prueba que se hizo con estos módulos consistió en comunicar dos sistemas microcontrolados Pinguino. La configuración empleada fue la siguiente.
  • Comunicación serial asíncrona a 1200 baudios
  • Configuración 8N1, 8 bits de datos ninguno de paridad y un bit de parada.
La configuración propuesta es soportada casi por la mayoría de sistemas microcontrolados.
Estos módulos de comunicación son buenos en sitios abiertos y sin mucho ruido eléctrico pero es frecuente que algunos datos lleguen con errores ya sea por desfase en la frecuencia de transmisión o por ruido eléctrico que afecte la recepción de datos.
En la búsqueda que hice sobre el tema encontré que en arduino se desarrollo una librería de nombre virtualwire para resolver los inconvenientes con este tipo de transmisores y receptores. Sin embargo para aplicaciones que no necesiten ser muy robustas puede ser empleado logrando buenos resultados en cualquier tipo de sistema microcontrolado.

PROBLEMAS
  • Opera bien a 1200 baudios, pero al incrementar la tasa de transmisión por ejemplo a 9600 baudios se observa distorsión de la señal recibida.
  • Las antenas emisora y receptora deben estar casi paralelas una a la otra para un buena recepción  si las antenas están inclinadas o acostadas la comunicación es inestable.
  • En sitios ruidosos electricamente se ve afectada la señal de recepción y esto ocasiona errores en los datos recibidos.
  • Si el emisor tiene el terminal de datos flotante es decir si no esta conectado, el receptor recibirá ruido.
  • En algunas publicaciones encontré que la señal de recepción la adecuaban con un comparador por que esta no era digital, sin embargo en el modulo probado la señal de salida es completamente digital y no se necesito de adecuación.
ENLACES DE INTERÉS


PRUEBA CON OSCILOSCOPIO
Para realizar la prueba con un osciloscopio se empleo la siguiente configuración:

  • Tarjeta Pinguino conectada al módulo transmisor TWS
  • Punta de osciloscopio conectada a la salida del modulo receptor RWS
  • Base de tiempo del osciloscopio 1 ms
  • Canal A señal DC a 5 voltios por división
Envío del carácter U mayúscula

En la realización de esta prueba se envió la letra U mayúscula por que su código ASCII en formato binario es fácil de identificar. También pueden enviarse otros caracteres como los numéricos, en particular el 3 que tiene un patrón binario fácil de reconocer en el osciloscopio.
  • U en ASCII decimal corresponde a 85 por lo tanto su valor binario es  01010101.
  • 3 en  ASCII decimal corresponde a 51 por lo tanto su valor binario es  00110011.
PROGRAMA EN PINGUINO PARA EL ENVÍO DE LA U

Este programa corresponde al envío del carácter U en formato ASCII
void setup(){
   Serial.begin(1200);
}
void loop(){
   Serial.print("U");
}

MONTAJE EN PINGUINO 


Montaje pinguino con el transmisor TWS
Montaje Pinguino del receptor RWS 434


PROGRAMA EN PINGUINO PARA EMISIÓN RECEPCIÓN

Este programa corresponde al envío de los caracteres numéricos 0 y 1
void setup(){
   Serial.begin(1200);
}
void loop(){
   Serial.print("0");
   delay(1000);

   Serial.print("1");
   delay(1000);

  }



Este programa corresponde al recepción de los caracteres numéricos 0 y 1.

int caracter;
void setup(){
   Serial.begin(1200);
   pinMode(0,OUTPUT);
}
void loop(){

   if (Serial.available()) {
caracter = Serial.read();
if (caracter = ='0'){
digitalWrite(0,LOW);
}
if (caracter = ='1'){
digitalWrite(0,HIGH);
}
    }
}

miércoles, 19 de junio de 2013

Comunicación serial con lazarus

Lazarus
LAZARUS
Lazarus es una herramienta de programación tipo RAD (Desarrollo rápido de aplicaciones) que emplea el lenguaje de programación orientado a objetos Object Pascal.
Lazarus permite realizar aplicaciones para múltiples plataformas Windows, GNU/Linux, Mac OS X y recientemente Android.

Vídeo Tutoriales
Vídeos de programación en Pascal con Lazarus, estos vídeos se enfatizan el el lenguaje mas que en el IDE.
Estos vídeos explican como se utiliza el IDE de lazarus realizando una aplicación

Guías en PDF
Las guías tratan sobre Delphi, el entorno en que esta inspirado Lazarus


Comunicación serial 
Para realizar la comunicación serial, se empleara un componente para lazarus llamados 5DPO.
Este componente hay que descargarlo e instalarlo.
Instalación Del Paquete sdpo 

  1. Descomprimir sdpo-0.2.0.zip preferiblemente C:\lazarus\components que la ruta donde estan los componentes de lazarus. Si se descomprimio correctamete se tendra una carpeta con el nombre de Sdpo
  2. En lazarus vamos a Paquete > Abrir archivo de paquete(.lpk)...
  3. seleccionamos C:\lazarus\components\Sdpo\SdpoSerial\sdposeriallaz.lpk
  4. Damos click a compilar.
  5. Damos click a Usar > Instalar
  6. Aparecera un mensaje que dice "Desea reconstruir lazarus ahora" damos click a si
  7. Reiniciamos lazarus
  8. Aparecerá una nueva pestaña de componentes con el nombre de 5dpo
 Ejecución del ejemplo con sdpo
  1. En lazarus vamos a proyecto>abrir proyecto
  2. Abrimos C:\lazarus\components\Sdpo\SdpoSerial\test\sertest.lpi
  3. En el formulario seleccionamos el componente y en las propiedades>device colocamos el nombre del puerto
  4. Para los usuarios de windows colocar en propiedades>device com1, com2, com10 etc. Según donde este su puerto serial.
  5. Finalmente ejecutar la aplicación.   
Administrador de dispositivos

Selección de COM10

Trabajo Sobre Lazarus Grupo 801b ( 1 puntos del parcial )
Simular el vaciado de un tanque.


Formulario
  1. El tanque tendrá un valor inicial de nivel configurable por medio de un scrollbar
  2. Cuando se le de click al botón iniciar, el tanque empezara a vaciarse.
  3. Utilizar el Timmer para realizar la animación correspondiente al vaciado del tanque.
  4. Se utilizara un TShape para simular el tanque, el color sera verde para indicar que el tanque esta lleno mas allá de la mitad y rojo para indicar que el tanque es menor o igual a la mitad de nivel.
  5. Cuando el tanque este completamente vació debe parar la simulación y mostrar un mensaje que indique el tanque esta vacío.
Cuestionario:
  1. ¿ Cual es el lenguaje de programación empleado en lazarus ?
  2. ¿ Que significa RAD ?
  3. ¿ Es posible hacer aplicaciones para dispositivos android empleando lazarus ?
  4. ¿ Que es un componente en lazarus ?
  5. ¿ Como se declara una variable tipo entero en pascal ?
  6. ¿ Como se declara una variable tipo real en pascal ?
  7. ¿ Como se declara una variable tipo cadena de caracteres en pascal ?
  8. ¿ Como se convierte una variable cadena de caracteres a entero ?
  9. ¿ Como se convierte una variable tipo cadena de caracteres a real ?
  10. ¿ Como se convierte una variable tipo entero a cadena de caracteres ?
  11. ¿ Como se convierte una variable tipo real a cadena de caracteres ?
  12. ¿ Que es la programación orientada a objetos ?
  13. ¿ Cual es la diferencia entre una clase y un objeto ?
  14. ¿ Que son las propiedades de un objeto ?
  15. ¿ Que son eventos en un objeto ?
  16. Para el objeto Button1 diga que hacen las siguientes propiedades: Caption, Enabled, Font, Height, Width.
  17. ¿ Que son los eventos asociados a un objeto ?
  18. Para el objeto Button1, que hacen los eventos OnClick, OnMouseMove, OnMouseLeave.
  19. Para el objeto Timer1 para que sirven las propiedades Enabled e Interval.
  20. Para el objeto Timer1 para que sirve el evento OnTimer
  21. Para que sirve TShape

miércoles, 12 de junio de 2013

Como Hacer Una Presentación Al Estilo Prezi Con Impress.js

Impress.js


IMPRESS.JS
Impress.js es una herramienta para hacer presentaciones similar a Prezi, el cual se base en las versatilidades de CSS3 y los navegadores modernos como Firefox o Chrome.
Impress.js permite hacer presentaciones con características de traslación, rotación y más, incluyendo efectos 3D. A diferencia de Prezi que cuenta con plantillas, Impress necesita ser programado pero es suficiente con lo que se puede aprender en un curso básico de programación.
También en la actualidad este proyecto de software libres ha crecido y muchos colaboradores han desarrollado plantillas que pueden ser descargadas, así como también herramientas de edición online.

ENLACES DE INTERÉS
EDITORES HTML
Estos son algunos editores de código  que harán mas fácil la verificación de sintaxis y escritura de código.

Editores Online

CONCEPTOS BÁSICOS
Hyper Text Markup Languaje (HTML)
El uso predominante de este lenguaje es el de elaboración de paginas WEB y se utiliza para describir la estructura e información de la pagina en forma de texto.
Para editar un contenido HTML solo se necesita un editor de texto sin formato como el Gedit de Linux o el bloc de notas de windows, y para la visualización se necesita un navegador como Firefox o Chrome.

Videos Tutoriales de (HTML)


Como insertar una imagen


Cascading Styles Sheets (CSS)
Las hojas de estilo en cascada es una manera de aplicar estilos a una pagina web como el tipo de letra, el color, el fondo, etc. Este permite dar formato a un documento HTML, en términos web en HTML se realiza el contenido, pero CSS le da la presentación y diseño a ese contenido en un documento externo.
La ventaja de CSS esta en que se puede tener diferenciado el contenido de la apariencia y que si solo queremos cambiar la apariencia sin afectar el contenido modificamos el archivo CSS.


Java Script
Tiene una sintaxis similar al lenguaje C, pero los nombres y convenciones son adoptados del lenguaje Java, hay que aclarar que Java y JavaScript son dos lenguajes de programación diferentes con propósitos también diferentes.
La utilización mas común del JavaScript es de tener funciones embebidas en paginas HTML que puedan ser ejecutadas desde el lado del usuario por medio de un navegador como los actuales que pueden interpretar el código JavaScript.

Processing Js
Las versiones actuales de Processing cuentan con la opción de llevar el código realizado en Processing a código de JavaScript de manera que pueda utilizar y ejecutar este código en una pagina web. Esto ofrece a los programadores web disponer de la facilidad de realización de aplicaciones gráficas con Processig.

Trabajo Sobre Impress Js Grupo 801b ( 2 puntos del parcial )
Siguiendo los tutoriales realice su propia presentación, el tema a elegir para su presentación es libre puede ser sobre deportes, música, historia, una enseñanza, un trabajo de curso etc.
Ejercicios:
  • Descomprima la carpeta impress.js-master.zip y abra el archivo index.html en un navegador
  • Observe y siga la presentación utilice la barra espaciadora y las flechas del teclado.
  • Abra en un editor de texto index.html y cambie la linea  <q>Aren't you just <b>bored</b> with all those slides-based presentations?</q> con una traducción en español mas adecuada y verifique que el cambio se realiza en la diapositiva.
  • Modifique la primer diapositiva de manera que la letra sea mas grande
  • Por que la primer diapositiva tiene los valores en data x -1000 y en data y -1500, que pasa si son cambiados ?
  • Para que sirve el "step side" ?
  • Para que sirve data-rotate y como se utiliza ? 
  • Para que sirve el data-scale y como se utiliza ?
  • Realice modificaciones en la presentación modificando el data-rotate y el data-scale
  • Como funciona la opción 3D ?
  • Modifique la presentación de manera que se vea un efecto 3D diferente al que viene por defecto.
Cuestionario:
  1. Que es computación en la nube ?
  2. Que significa HTML ?
  3. Que es HTML y para que sirve ?
  4. Cual es la versión mas actual de HTML ?
  5. En HTML para que sirve el head ?
  6. En HTML para que sirve el body ?
  7. En HTML para que sirve la instrucción script ?
  8. En HTML para que se emplean los símbolos < > 
  9. Es posible en en navegador ver el código HTML de una pagina ?
  10. Como se editar el código HTML ?
  11. Que significa CSS ?
  12. Para que sirve el CSS?
  13. CSS es un lenguaje de programación ?
  14. Cual es la versión mas actual de CSS ?
  15. Que relación hay entre CSS y HTML ?
  16. Que es JavaScript ?
  17. Para que sirve JavaScript ?
  18. Que relación hay entre Java y JavaScript ?
  19. Que relación hay entre JavaScript y HTML ?
  20. Que es processing js ?
  21. Que es impress js ?
  22. Que herramienta web permite hacer la presentación online utilizando Impress ?
  23. Es posible agregar efectos 3d con Impress ?
  24. Es posible agregar música con Impress ?
  25. Por que impress js utiliza CSS y JavaScript ?


martes, 28 de mayo de 2013

Medidor de distancia por ultrasonido HC-SR04 con pinguino

HC-SR04
MEDICIÓN DE DISTANCIA POR ULTRASONIDO CON EL HC-SR04
El HC-SR04 es modulo sensor de distancia por ultrasonido que trae 4 terminales, dos de alimentación y dos para envío y recepción.
Uno de los terminales se llama trigger o disparador, es el encargado de indicarle al dispositivo que envíe la señal ultrasonica este terminal por lo menos debe estar 10 microsegundos en alto para que envíe una señal ultrasonica.
El otro terminal se llama echo o terminal de detección de eco, este terminal se coloca en alto cuando se hace el envío de la señal ultrasonica, y se coloca en bajo cuando hace recepción por medio de eco o rebote de esta sobre un objeto.
Para determinar la distancia recorrida en centímetros, se cuenta el tiempo que trascurre desde que se coloca en alto el terminal de eco y este regresa a bajo, se puede contar cada 58 microsegundos para obtener una relación en centímetros.
Calculo De La Velocidad Del Sonido
En este ejemplo se trabajara con la velocidad a 20 grados centigrados que es V=343 m/s.
Se aplica el siguiente procedimiento para hallar el tiempo en microsegundos equivalente a un centímetro.
  • Pasamos la velocidad a centímetros por segundo, esto da V=34300 cm/s
  • Calculamos el tiempo con la ecuación distancia = velocidad/tiempo, despejamos tiempo y tenemos la ecuación t=d/v, reemplazando por los valores t=1cm/(34300cm/s) luego t = 0,000029155s
  • Como la señal va y vuelve hace el doble de la distancia que se desea medir, por lo tanto tomara el doble de tiempo, así que mediremos el doble de tiempo luego t=0,000058309s, finalmente pasamos este valor a microsegundos t=58,309us que para efecto practico lo aproximaremos a t=58us en el programa.
  • Tener en cuenta que la velocidad del sonido es mayor cuando aumenta la temperatura, aproximadamente 0.6m/s por cada grado centigrado.
Vídeo mostrando la prueba realizada.

ENLACES DE INTERÉS

MONTAJE DE PRUEBA


Montaje básico HC-SR04 en Pinguino
CÓDIGO DE PRUEBA
//Codigo probado en Pinguino 9-05
//Julio Fabio De La Cruz 28-05-2013
#define  Trig  8 //Defino el terminal 8 como trigger o disparador
#define  Echo  9 //Defino el 9 como el de recepcion del eco
int Dato;//Dato sin procesar equivalente a la distancia a medir en centimetros
void setup(){
pinMode(Trig, OUTPUT);//Disparador como salida
pinMode(Echo, INPUT);//Eco como entrada
Dato=0;//Inicio dato en 0
TRISB=0;//Configuro puerto B como salida
}
void loop() {
while (digitalRead(Echo) == LOW) {//Pin del eco en bajo
digitalWrite(Trig, HIGH);//Activa el disparador
delayMicroseconds(50);//Espera 50 microsegundos (minimo 10)
digitalWrite(Trig, LOW);//Desactiva el disparador
}
while (digitalRead(Echo) == HIGH) {//Pin de eco en alto hasta que llegue el eco
Dato++;//El contador se incrementa hasta llegar el eco
delayMicroseconds(58);//Tiempo en recorrer dos centimetros 1 de ida 1 de vuelta
}
PORTB=Dato;//Muestro dato por el puerto B
delay(1000);//Espera un segundo para visualizar el dato
Dato=0;//Reinicio dato a 0 
}
CÓDIGO DE PRUEBA EN GREAT COW BASIC
También dejo el código de prueba en basic empleando great cow basic con el fin de que pueda ser
llevado a otro microcontrolador como por ejemplo el 16F877A

'****************************************************************
' Generated by Prithvi Development Studio 0.0.1 (Build: 560)

' Description : Porgrama basico para el HC-SR04
' Author      : Julio Fabio De La Cruz Gomez
' Date        : 30/05/2013 10:32:05 a.m.

'****************************************************************
#chip 16F877A, 4
#define trig PORTC.6
#define echo PORTC.7
TRISB = 0  'Configuro puerto B como salida
dir trig out 'terminal para menejar el disparardo trigger
dir echo in  'terminal para detectar el eco echo
PORTB = 0  'Limpio el puerto B colocandolo en cero
trig = OFF 'Terminal del disparador trigger en cero
dato = 0   'Variable para guardar dato de la medicion
Inicio:
       do while echo = OFF
          trig = ON   'Activa el disparador
          wait 50 us  'Espera 50 microsegundos
          trig = OFF  'Desactiva el disparador
       loop
       do while echo = ON
          dato = dato+1 'Contador se incrementa hasta llegar el eco
          wait 58 us 'Tiempo en recorres dos centimetros 1 de ida 1 de vuelta
       loop
   PORTB=dato 'Muestro dato por el puerto B
   wait 1 s 'Espera un segundo para visualizar el dato
   dato=0   'Reinicio dato a 0 
goto inicio