martes, 25 de octubre de 2016

Motor paso a paso con ULN2003 Driver - Silver (DC 5V)


Saludos a todos, no quería dejar pasar el día sin mostrarle el paquete que llegó hoy y que compre en www.dx.com, por un valor de 5,78 dolares, quiero aclarar que todas las compras que hago las pago en pesos colombianos.


Esta vez pedí un par de motores paso a paso con su driver ULN2003, los motores paso a paso son dinamos que tiene la capacidad de moverse de manera discreta en pequeños ángulos, lo que lo hace útil para trabajos de precisión, de allí su uso en impresoras de tinta, impresoras 3D, cortadoras láser, robot, y lo que tu imaginación permita; lo diré en otras palabras, si deseas que gire 30 grados a la derecha lo puede hacer, si deseas que se regrese 10 grados no habrá problemas.

Por otra parte tenemos el driver ULN2003, compuesto de un integrado ULN2003, 4 led indicadores, pines de entrada y de salidas que nos servirá de intermediario entre Arduino y nuestro motor paso a paso.

Este modelo de motor no trae tornillos, así que no pude destaparlos para verlos por dentro, también noto que no es fácil girarlos con la mano pero cuando lo logras sigue el movimiento.

Pronto estaré con ustedes con más proyectos, espero animarlos y acompañarme en el aprendizaje del uso de Arduino.

lunes, 24 de octubre de 2016

Mi primer proyecto, ruleta de led




Saludos entusiastas y amantes de la tecnología, hoy les quiero compartir mi primer proyecto, el cual me ayudó mucho a conocer conceptos básico del uso de Arduino y se que también ayudara a muchos de ustedes.

Para la realización solo necesite algunos elementos del kit basico que compre en AliExpress; 10 led, un resistor, muchos cables, Arduino y un computador para introducir código, estos elementos son fáciles de conseguir en cualquier tienda de electrónica.

Los animo a empezar esta entretenida actividad, les recuerdo que es orientada a todo tipo de personas, soy principiante y me ha ido bien, anímate.

He recomendado unos  PDF para que vallas leyendo y te des cuenta el potencia que tiene aprender sobre Arduino, clic aqui para ver pdf.

En el proyecto haremos uso de los pines digitales del 2 al 11 de nuestro Arduino, por dichos pines enviaremos una tensión de 5 voltios según le ordenemos con nuestro código.

Así como podemos enviar voltajes desde nuestro Arduino, también podemos recibir, procesar, controlar usando simples lineas de comando, eso es los que hacer flexible Arduino para usarlo en casi cualquier proyecto que imagines, en la medida que realizaremos más proyectos iremos conociendo todo el potencial de esta fabulosa placa electrónica.

A continuación les hice un esquemas más fácil de entender.


Como muestra el esquema, he usado un solo resistor de 220Ω para regular el voltaje a los 10 led y así hacer un circuito más sencillo, también podemos observar que cada pin (del 2 al 11) va conectado a un led, esto para controlar el parpadeo de cada uno de nuestros led y realizar la secuencia que queramos, he hecho para ustedes dos secuencias muy básicas, ustedes podrán crear las suyas sin necesidad de cambiar el circuito.

A continuación el código.

int tiempo = 50;

void setup(){
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
}

void vuelta(){
  for(int i = 2; i <= 11; i++){
    digitalWrite(i,HIGH);
    delay(tiempo);
    digitalWrite(i,LOW);
  }
}

void regreso(){
  for(int i = 11; i >= 2; i--){
    digitalWrite(i,HIGH);
    delay(tiempo);
    digitalWrite(i,LOW);
  }
}

void loop(){
  
  for(int i = 0; i < 10; i++){
    vuelta();
  }

  for(int i = 0; i < 10; i++){
    regreso();
  }
  
}

Declaré una variable llamada tiempo, su función es definir el tiempo que transcurrirá entre cada parpadeo en los led, la variable tiene un valor de 50 que corresponde a 50 milisegundos, recordemos que un milisegundos es tomar un segundo, dividirlo en mil partes y tomar una de esas partes.

Luego viene el método setup(); que es obligatorio y se usa para definir ordenes que Arduino debe cargar al inicio o cada vez que se reinicie como por ejemplo iniciar variables, librerias, etc; en nuestro caso lo usamos para definir los pines del 2 al 11 como pines de salida.

He creado también, dos métodos vuelta() y regreso(); el método vuelta genera la ilusión de giro en sentido anti-horario (contrario a las manecillas del reloj) esto lo logro usando un ciclo for que va desde el 2 y llega hasta el 11, esto es por lo pines que estamos usando.

Explico algo importante, dentro del ciclo for declaro una variable i, esta variable se incrementa en cada ciclo, es decir cambia en el tiempo, comienza siento 2, luego 3, después 4 y así hasta llegar a ser 11 y finaliza el ciclo.

Dentro del ciclo for tenemos una linea 'digitalWrite(i,HIGH);' esto lo que hace es enviar 5 voltios por el pin que en ese momento sea igual a la variable i, la siguiente lineas 'delay(tiempo);' indica que Arduino debe esperar 50 milisegundos antes de ejecutar la siguiente linea, en términos prácticos es dejar el led encendido 50 milisegundos; luego sigue la linea 'digitalWrite(i,LOW);' que lo que hace es apagar el pin que en ese momento sea igual a la variable i, en otras palabras apagar el led; como el ciclo va desde 2 a 11 todos los pines serán sometidos a las lineas o instrucciones que estén dentro del ciclo for.

El método regreso() es análogo al método vuelta() con la diferencia que este va en sentido contrario es decir del pin 11 al pin 2; si se fijan los métodos vuelta() y regreso() representan una sola vuelta.

Seguimos con el método loop(), el cual también es obligatorio y aquí programaremos todo lo que queremos que haga nuestro Arduino, este método se ejecuta todo el tiempo de manera cíclica mientras tengamos encendido nuestro Arduino.

Dentro de nuestro metodo loop(), tenemos dos ciclos for que se ejecutan 10 veces, el primero hace un llamado a nuestro método vuelta(), lo que significa que generaremos la ilusión de dar 10 vueltas en sentido anti-horario, el segundo ciclo hace el llamado al método regreso() que generar la ilusión de dar 10 vueltas en sentido de las manecillas del reloj.

Para terminar repasemos lo aprendido: 

  • Podemos detener la ejecución de ordenes con un delay el tiempo que queramos.
  • Podemos usar los pines para enviar 5 voltios a dispositivos externos, en nuestro caso led's
  • Podemos ejecutar ordenes cuantas veces lo necesitemos con el ciclo for.
Con lo aprendido meditemos las posibilidades hasta aquí de Arduino, ¿Qué más se nos puede ocurrir?, no importa que aun nos falten los conocimientos necesarios, esto es un buen ejercicio ya que con el tiempo llenamos esos vacíos y nuestro subconsciente nos ayudara en la parte creativa.


No olviden comentar sus dudas, sugerencias.

martes, 18 de octubre de 2016

Libros recomendados para empezar arduino

Entusiastas de tecnología, hoy quiero compartir con ustedes unos excelentes y recomendados PDF para aprender y afinar nuestros conocimientos sobre Arduino, son materiales muy académicos que estoy seguro les gustará; a descargar, leer, aprender y crear.

Buen provecho.







lunes, 17 de octubre de 2016

Comprando mi primer Arduino


Como escribí en la entrada pasada, Arduino opera bajo el concepto de hardware libre, es decir ellos hacen publico sus esquemas, planos, código, etc, para que cualquiera pueda replicarlo y mejorarlo con la condición que respeten la autoría y en caso de mejoras también las hagan publicas.

En el mercado hay muchos fabricantes de estas tarjetas Arduino, algunas de excelente calidad como otras no tanta, si deseas comprar una original creadas por los mismo desarrolladores pásate por su tienda en la pagina oficial.



Mi caso particular estoy satisfecho con la compra que hice en china por medio de Aliexpress (El envío me salió gratis a Colombia), ademas del Arduino compré resistores, led's, interruptores, conectores, aquí les dejo la lista completa.



1 ×Arduino UNO R3
20×Male a Macho cable Dupont
1 × cable USB
1x400 agujeros Breadboard
5 × 3 colores de luces LED (al azar)
10×Resistor 220ohm
10×Resistor 1 K
10×Resistor 10 K
10×Resistor 100 K
2 ×Photoresistor 5516
6 ×Button (con las tapas de color mezclado)
1 × 9 V Batteryt Conector
4 × 2.54mm Pin

Todo lo anterior por la módica suma de € 4,67



Ademas de eso también compre una matriz de led's con Módulo MAX7219 por un valor de € 1,34
El total de toda la compra me salió por solo € 7,42




¿Que es Arduino?


Es la empresa creadora de una tarjeta electrónica que lleva su mismo nombre y opera bajo el concepto de hardware libre. El circuito impreso de la tarjeta electrónica esta compuesta pines de entradas y/o salidas donde podremos conectar sensores, motores, led's y si eres buen conocedor de electrónica puedes crear tu propios dispositivos periféricos para que interactuen con Arduino.

Por otro lado consta de un microcontrolador el cual es programable, es decir que puedes crear ordenes y almacenarla en la memoria del microcontrolador para que estas sean ejecutadas, esto hace a esta tarjeta muy flexible para todo tipo de proyecto electrónicos.



Otras de las características y quizás la principal es su fácil uso, integra un entorno de desarrollo con un lenguaje fácil de usar (parecido a Java) el cual se puede descargar de su pagina oficial para múltiples plataformas, si usas como yo distribuciones Linux derivadas en Debian lo mas probable es que dicho entorno de desarrollo lo puedas instalar desde tu lista de repositorios.

Para concluir quiero decirte que no necesitas conocimientos profundos de electrónica ni programación para empezar, incluso es recomendado para todos, principiantes, intermedios y avanzados.