Documentos de Académico
Documentos de Profesional
Documentos de Cultura
N°1
Ing. “Otto Krause”
Taller de Electrónica
Título: Informe
Proyecto: Robot Explorador
Integrantes: Rojas Gabriel – Santoandré Germán
Profesor: Nicolás Potenza
Curso: 4° División: 1°
Horarios: Lunes y martes de 7:45 hs. a 12:05 hs.
Ciclo lectivo: 2017
Características principales:
- El HC-SR04 es un sensor ultrasónico de bajo costo que no sólo puede detectar si un objeto se
presenta, como un sensor PIR (Passive Infrared Sensor), sino que también puede sentir y transmitir la
distancia al objeto.
- Tienen dos transductores, básicamente, un altavoz y un micrófono.
- Ofrece una excelente detección sin contacto (remoto) con elevada precisión y lecturas estables en
un formato fácil de usar.
- El funcionamiento no se ve afectado por la luz solar o el material negro como telémetros ópticos
(aunque acústicamente materiales suaves como telas pueden ser difíciles de detectar).
- La velocidad del sonido en el aire (a una temperatura de 20 °C) es de 343 m/s. (por cada grado
centígrado que sube la temperatura, la velocidad del sonido aumenta en 0,6 m/s).
Características técnicas:
- Los módulos incluyen transmisores ultrasónicos, el receptor y el circuito de control.
- Número de pines:
VCC: Alimentación +5V (4.5V min – 5.5V max)
TRIG: Trigger entrada (input) del sensor (TTL)
ECHO: Echo salida (output) del Sensor (TTL)
GND
- Corriente de reposo: < 2mA
- Corriente de trabajo: 15mA
- Ángulo de medición: 30º
- Ángulo de medición efectivo: < 15º
- Detección de 2cm a 400cm o 1" a 13 pies (Sirve a más de 4m, pero el fabricante no garantiza una
buena medición).
- “Resolución” La precisión puede variar entre los 3mm o 0.3cm.
- Dimensiones: 45mm x 20mm x 15mm
- Frecuencia de trabajo: 40KHz
Calculo de temperatura:
Si os acordáis de cuando hablamos de la API de Arduino, hay una función que se
llama analogRead donde le pasamos como parámetro el número de pin que queremos leer y nos da un
valor entre 0 y 1023 osea, 1024 valores. Esto quiere decir que si en el pin tenemos 0V nos dará 0 y si
tenemos 5V o 3.3V (depende de a que voltaje esté funcionando nuestro Arduino) nos dará 1023, así de
sencillo.
Por lo tanto si queremos saber que voltaje tenemos en la entrada analógica solo debemos de multiplicar
por 5/1024 (0.0048V de precisión). Esto nos da el voltaje de nuestro sensor, ahora hay que transformar los
voltios en grados. Ya hemos averiguado, gracias a la ficha técnica, que 1ºC equivale a 10mV (0.01V) por
lo tanto solo debemos de dividir el valor de voltaje obtenido antes entre 0.01 y nos dará la temperatura.
Para que os quede más claro os dejo aquí la formula que deberíamos aplicar.
Circuito interno:
Disposición de pines:
DOUT: Depende del valor del potenciómetro, ya que establece un umbral que al superarlo hace que la
salida sea 0 (funciona con lógica inversa).
AOUT: Esta da el valor de contaminante en el aire (entre 100 y 150 es normal).
-Fotoresistencia LDR: Componente cuya resistencia varía sensiblemente con la cantidad de luz percibida.
La relación entre la intensidad lumínica y el valor de la resistencia no es lineal. Se utiliza ampliamente
para medir la iluminación en dispositivos electrónicos que requieren un precio agresivo. Su
comportamiento es el siguiente:
Más luz = menor resistencia eléctrica
Menos luz = mayor resistencia eléctrica
- Divisor de tensión: Mediante un par de resistencias en serie, es posible repartir la tensión suministrada
por la fuente entre las terminales de estas, en nuestro caso, el divisor se utiliza con el LDR (R1) para
obtener una tensión variable de acuerdo a la cantidad de luz percibida.
-Conversión Analógico-Digital (ADC): Es el proceso mediante el cual se convierte una magnitud física
como un voltaje, corriente, temperatura, etc. en un número binario (o señal digital) con el propósito de
facilitar su manejo por circuitos digitales como un CPU. El micro realiza este proceso para conocer la
cantidad de luz percibida por el LDR y poder procesarla numéricamente.
-Control inputs, son los terminales de control, dos de ellos son los pines de habilitación de cada motor
Puede llegar a manejar un motor paso a paso de dos fases y cuatro fases, o dos motores de corriente
continua. Este módulo incluye un regulador de tensión 78M05 para obtener la energía de alimentación del
dispositivo, sin embargo, cuando se superan los 12V, se sugiere usar una fuente de poder externa de 5V
como fuente de alimentación digital y deshabilitar el jumper de 12V. Este módulo tiene gran capacidad de
filtrado de ruido, cuenta con un diodo de protección ante corriente inversa, haciendo que su
funcionamiento sea más estable y fiable.
Voltaje de control 5V
Nivel de entrada de señal de control · Nivel bajo: -0.3V <= Vin <= 1.5 V
Los actuadores son los dispositivos que permiten al sistema de control ‘actuar’ sobre el ‘mundo real’ para
realizar las acciones deseadas, existen multitud de sistemas actuadores aunque el mando y control de los
mismos es más fácil, en general, que el manejo de sensores.
TIPOS DE ACTUADORES.
• Electrónicos.
• Hidráulico
• Neumáticos.
• Eléctricos.
Los actuadores hidráulicos, neumáticos y eléctricos son usados para manejar aparatos mecatrónicos.
Los actuadores electrónicos también son muy utilizados en los aparatos mecatrónicos, como por ejemplo,
en los robots.
Los motores de corriente continua son actuadores de tipo electronicos. El motor de corriente continua es
una máquina que convierte energía eléctrica en mecánica, provocando un movimiento rotatorio, gracias a
la acción de un campo magnético.
Lenguaje de programación:
Crear un proyecto.
Editar.
Compilar.
Simular.
Simular en circuito.
Programar.
Fig. 8
La función o módulo puede procesar los datos que se le envíen -printf(), bioskey(), etc. - o simplemente
ejecutarse -kbhit(), getch(), etc. -. A los datos que se le envían a una función se los denomina argumentos.
A su vez, puede devolver un dato a la función llamadora -pow(), getchar(), etc.- o no devolver nada –
clrscr(), _setcursortype(), etc. -.
Su nombre.
Forma general:
tipo de dato que devuelve nombre (cantidad, tipo y orden de sus argumentos);
Por ejemplo, si deseo crear una función que calcule el promedio de 3 números su declaración podría ser la
siguiente.
La declaración de una función se realiza antes del main y después de la definición de constantes.
Para llamar una función, es decir, pedir que se ejecute, tengo 4 posibilidades:
Forma general:
nombre();
Ejemplo:
clrscr();
Forma general:
Ejemplo:
printf(“Hola mundo!”);
Forma general:
variable=nombre();
Ejemplo:
letra=getche();
Forma general:
Ejemplo:
prom=promedio(n1,n2,n3);
Prototipo
Forma general:
Proceso/s.
Los parámetros son las variables que van a recibir los datos provenientes de la función llamadora. En el
caso de nuestro ejemplo quedaría de la siguiente forma:
float promb;
promb=(n1b+n2b+n3b)/3;
return(promb);
La utilización de la letra ‘b’ como sufijo de cada identificador es para diferenciar las variables de la
función local de las variables de la función llamadora.
Las variables declaradas dentro de una función son locales de la misma, es decir, solo puedo afectar a esas
posiciones de memoria cuando estoy ejecutando la función propiamente dicha. Al declararlas al comienzo
de la función se reserva el espacio de memoria para utilizarlo durante la misma. Sin embargo, al finalizar
esta y regresar al punto de donde se había llamado estos espacios de memoria se liberan nuevamente.
Un vector es un conjunto de posiciones de memoria relacionadas entre sí por el hecho de tener el mismo
nombre y tipo formato. Cada variable se identifica por el nombre del vector seguido de un número
llamado ‘subíndice numérico’ indicado entre corchetes. Este comienza en 0 para la primer posición de
memoria y va incrementándose de a uno.
En resumen, las vectores son un conjunto de variables que poseen las siguientes características:
Mismo nombre.
Forma general:
Por ejemplo, un vector en el que guardemos las notas de 10 alumnos podría declararse de la siguiente
manera:
Cargar un vector
Una de las principales ventajas que presentan los vectores es que con una misma línea de código se
pueden afectar diferentes posiciones de memoria. Esto se logra utilizando una variable como subíndice
numérico.
Forma general:
for (i=0;i<=tamaño-1;i++)
scanf(“%d”, &nombre[i]);
En el ejemplo anterior si las notas se ingresan por teclado el código podría ser el siguiente:
for (i=0;i<=9;i++) {
scanf(“%d”, ¬as[i]);
Del mismo modo, para mostrar el contenido de un vector por pantalla se puede utilizar el mismo criterio:
Forma general:
for (i=0;i<=tamaño-1;i++)
for (i=0;i<=9;i++)
Para darle un valor inicial a cada una de las variables de un vector (numérico) existen dos alternativas:
Valores distintos:
Forma general:
Ejemplo:
int notas[10]={7,5,8,10,5,4,7,3,9,6};
NOTA: esta forma de inicializar un vector tiene la ventaja de que se puede omitir especificar el tamaño
del mismo. Es decir, si hiciéramos lo siguiente:
int notas[]={7,5,8,10,5,4,7,3,9,6};
Se crearía un vector tipo int de tamaño 10, al igual que en el primer caso.
Mismo valor:
Forma general:
for(i=0;i<=tamaño-1;i++)
nombre[i]=valor;
Ejemplo:
for(i=0;i<=4;i++)
goles[i]=0;
Hardware:
Placa multiproposito:
Despues:
Función “Timer()”:
Antes:
Función “CAD()”:
Antes:
Despues:
Bloques:
Bloques: