Você está na página 1de 7

Universidad Mariano Gálvez de Guatemala

Facultad de ingeniería
Ingeniería en sistemas de información y
Ciencias de la comunicación

CATEDRATICO: Romel Enrique fuentes Pérez

CURSO: Electrónica Analógica

TEMA: Informe proyecto Arduino

ALUMNO: EDWIN WALDEMAR ALVAREZ DIAZ

CARNET: 1990-15-22087

Sección: B

29 DE MAYO DEL 2018


INTRODUCCION

Con el fin de poner en practica los conocimientos aprendidos en el


curso de electrónica analógica dirigido por el catedrático Romel
Enrique Fuentes Pérez, se presenta a continuación un informe
detallado de la elaboración del proyecto, el cual consiste en la
elaboración de cualquier tipo de dispositivo manejado por
microprocesador, en nuestro caso fue de mucha utilidad el llamado
Arduino uno el cual nos facilitó la elaboración de un brazo mecánico
el cual nos permite escribir la hora de forma automática. Dicho
proyecto será detallado paso a paso su elaboración en el siguiente
informe.
ROBOT RELOJ (escribe la hora)

Materiales a utilizar:
7 paletas de madera
3 trocitos de madera de diferentes medidas
1 pedazo de tabla
3 servomotores de 5v
1 mini protoboard
1 juego de cables jumper
1 placa Arduino uno
1 caja plástica porta cd

Función principal del robot reloj:

Hay muchos tipos de relojes, no solo por diseño sino por la forma
en la que muestran la hora. Algunos lo hacen con manecillas, otros
con números y luego tenemos un gran abanico de modelos que
utilizan sistemas más abstractos. Hoy nos toca hablar de uno que
se basa en números pero que para decirnos qué hora es, utiliza un
sistema peculiar.
es un dispositivo que, gracias a dos servos que sostienen un
rotulador y otro para sostener y levantar la estructura es capaz
de darnos la hora y los minutos sobre una pizarra. Sí, no utiliza
una pantalla para mostrar los números, es él mismo quien la dibuja
cada cierto tiempo en un intervalo que nosotros mismos definimos.

Controlado por un microcontrolador llamado Arduino uno, se conecta


a un ordenador para recibir actualizaciones de la hora. También
cuenta con un puerto USB, pero en este caso se utiliza como
sistema de alimentación y no para sincronizarse con un PC.
Ensamblaje de piezas:
en este paso se procede a colocar
los servomotores en el espacio que
convine para poder tener una mayor
eficiencia.

Los dos servomotores son adheridos


Co un tipo de pegamento para que
Tomen rigidez y no tengan inconvenientes
a la hora de
Escribir la hora

Como se puede apreciar en las imágenes, el robot esta armado


completamente.
Parte del código para controlar el robot reloj:

/* RobotReloj
Modificado por elprofegarcia.com original de Johannes Heberlein 2014
v 1.02 ES
La librería “Time” la puede descargar en http://elprofegarcia.com/?page_id=2
o en http://playground.arduino.cc/Code/time y debe copiarla a al subdirectorio
/libraries dentro
del directorio donde tenga instalado Arduino

Conexiones entre Servos y Arduino:

Servo de elevacion -> Pin 2 del Arduino (cable Naranja del servo)
Servo izquierdo -> Pin 3 del Arduino (cable Naranja del servo)
Servo derecho -> Pin 4 del Arduino (cable Naranja del servo)
Los cables rojos de los Servos deben conectarse al Pin de 5V del Arduino
Los cables Marron de los Servos deben conectarse al Pin GND del Arduino

Primero debe calibrar los brazos para que varíen en Angulo de 90 grados exactos y
de forma cruzada entre el servo derecho e izquierdo.

Después de Calibrar, borre o marque como comentario la línea siguiente */

#define CALIBRACION

// En modo de calibración, ajuste el factor siguiente hasta que los servos se


mueven exactamente 90 grados
#define SERVOFAKTOR 640 //#define SERVOFAKTOR 620
/* En modo de calibración, ajuste los valores NULL para que los brazos de los
servos esten en todo momento paralelos Ya sea al eje X o Y */
#define SERVOLEFTNULL 1800 //#define SERVOLEFTNULL 1900
#define SERVORIGHTNULL 1000 //#define SERVORIGHTNULL 984

#define SERVOPINELEVADOR 2 // Pin 2 conexión del servo elevador


#define SERVOPINIZQUIERDO 3 // Pin 3 conexión del servo izquierdo
#define SERVOPINDERECHA 4 // Pin 4 conexión del servo derecho

// definir posiciones del servo elevador


#define LIFT0 1080 // en la superficie de dibujo
#define LIFT1 925 // elevación entre escritura de numeros
#define LIFT2 825 //#define LIFT2 725 // yendo con el borrador

// velocidad de brazo elevador, un número mayor es más lento


#define VELOCIDADELEVADOR 1500

// longitud de los brazos


#define L1 35
#define L2 60 //#define L2 55.1
#define L3 13.2

// puntos de origen de servo izquierda y derecha


#define O1X 22
#define O1Y -25
#define O2X 47
#define O2Y -25

#include <Time.h> // descargar esta librería en


http://elprofegarcia.com/?page_id=2
#include <Servo.h>
int servoLift = 1500;

Servo servo1; //
Servo servo2; //
Servo servo3; //

volatile double lastX = 75;


volatile double lastY = 47.5;

int last_min = 0;

void setup()
{
// Ajuste la hora actual, sólo el primero en valores,: hh, mm es necesario
setTime(18,01,0,0,0,0);

drawTo(75.2, 47);
lift(0);
servo1.attach(SERVOPINELEVADOR); // servo elevador
servo2.attach(SERVOPINIZQUIERDO); // servo izquierdo
servo3.attach(SERVOPINDERECHA); // servo derecho
delay(1000);

void loop()
{

#ifdef CALIBRACION

// los brazos de los servos tendran 90 ° entre los movimientos, paralelo al eje
X e Y
drawTo(-3, 29.2);
delay(500);
drawTo(74.1, 28);
delay(500);

#else

int i = 0;
if (last_min != minute()) {

if (!servo1.attached()) servo1.attach(SERVOPINELEVADOR);
if (!servo2.attached()) servo2.attach(SERVOPINIZQUIERDO);
if (!servo3.attached()) servo3.attach(SERVOPINDERECHA);

lift(0);

hour();
while ((i+1)*10 <= hour())
{
i++;
}

number(3, 3, 111, 1);


number(5, 25, i, 0.9);
number(19, 25, (hour()-i*10), 0.9);
number(28, 25, 11, 0.9);

i=0;
while ((i+1)*10 <= minute())
Conclusion

En el informe anterior se dio a conocer el proceso de


elaboración del proyecto de electrónica analógica el cual
consistía en hacer uso de un micro procesador.
Ya que forma parte del curso anteriormente pronunciado, se
puso en práctica varios conceptos aprendidos durante el
curso.

Você também pode gostar