arduino,cursos,guias,manuales,tutoriales,ejemplos,ejercicios,codigos,electronica,circuitos,montajes,placas,componentes,noticias,actualidad,libros,descargas,pruebas,courses, guides,manuals,tutorials,examples,exercises,code,electronic,circuits,assemblies,boards,components,news, books,downloads,tests.

No puedo continuar con este proyecto

Supongo que muchos ya os habréis dado cuenta de que este blog está desactualizado desde hace unos años. No puedo seguir con el por muchos motivos, entre ellos, que ha pasado tanto tiempo que no toco arduino y la electronica que los pocos conocimientos que tenía los he ido olvidando. El trabajo y los estudios me tienen demasiado ocupado como para ponerme a montar circuitos y dedicar horas a diseñar lo que tenía en mente. No digo que lo deje para siempre, porque en el fondo me gustaría mucho terminar este proyecto, pero por el momento va a ser imposible. Dejo el blog en linea para aquellos que estáis empezando con arduino, pues creo que las pocas explicaciones que pude poner hace 2 años pueden servir de guía para empezar con esta maravillosa placa. Si algún día puedo retomar este proyecto, tener por seguro que lo pondré en este blog.

Saludos a todos/as.

Edito y agrego:

Gracias a la web de Taringa, un portal de compartir, se me han terminado de quitar las ganas que tenía de continuar con este proyecto. Si al poco tiempo que tengo le sumamos que un portal que no me merece respeto ninguno, se dedica a copiar el trabajo de los demás y si le pides que los borres te mandan a contactar con una empresa para que presentes pruebas de derechos de copyright, comprenderéis que a uno se le bajen los ánimos. Un visitante copió todas las páginas del blog y las subió al portal mencionado anteriormente. Ahora sale en Google la página de Taringa que contiene el contenido de mi blog en primera posición pasando el blog original a los últimos resultados de la primera página o a la segunda página. Una cosa es compartir y otra cosa es robar contenidos. Puedo comprender y comprendo que hay mucha gente que necesita software o libros para poder formarse, para avanzar en este mundo de la informática y pagar todas las licencias es difícil, por lo que puedo comprender que algunos usuarios pirateen. No es mi caso, pues siempre he comprado lo que he necesitado, aunque algunas veces haya descargado algún libro de internet, pero después he ido a la tienda y he comprado el libro cuanto que he tenido dinero. Ahora tengo una buena colección de libros y todo el software de mi ordenador legal, pues gracias al software libre no tengo necesidad de usar programas de pago y como el sistema operativo viene incluido en el ordenador puedo usar Windows. Volviendo al tema de lo que ha sucedido, me parece vergonzoso que un usuario se dedique a copiar una información de un lugar de libre acceso y la copie en Taringa con el descaro de decir en los comentarios que estaba cansado de hacer tutoriales de arduino toda la tarde, como diciendo que los había escrito el. Desde aquí un saludo al usuario, a Taringa y a todos los familiares de los mismos.

Ahora si puedo afirmar que no voy a continuar con el proyecto. Disculpar las molestias.

A LA IZQUIERDA DE LA PAGINA ESTAN TODOS LOS ENLACES QUE FORMAN ESTE BLOG PARA FACILITAR LA NAVEGACION


Buscar en este blog

domingo, 28 de junio de 2009

5 - EL PRIMER EJERCICIO O EJEMPLO


Hoy vamos a realizar nuestro primer ejercicio con la placa arduino. Me gustaría recordaros que estoy utilizando arduino Duemilanove, por lo que debéis tener cuidado de que los pines de vuestra placa sean los mismos.

Para poder comprender mejor este ejercicio, y todos los que vengan, explicare primero los elementos electrónicos que vamos a utilizar, como se conectan y después por ultimo indicare el código o códigos. En este primer ejemplo voy a escribir varios códigos que funcionan sobre el mismo circuito.

En muchos ejemplos que hay por la red, cuando escriben el código fuente suelen poner comentarios del siguiente modo:

Instrucción //comentario

A partir de las dos barras hay un comentario, es decir, una aclaración que a la hora de subir el código a la placa no es tenida en cuenta, por lo tanto no ocupara espacio. En mis ejemplos no voy a utilizar esas barras, porque estas indican que se trata de un comentario de una sola línea, por lo que al copiar y pegar un código de una web a otra puede darse el caso de que sin querer, ese comentario pase a otra línea y nos volvamos locos buscando el error.

Por ello, si pongo algún comentario lo pondré del siguiente modo:

Instrucción /* comentario */

La diferencia de este tipo de comentario a los otros radica en lo siguiente. El comentario empieza a partir de /* y no finaliza hasta que se encuentre con */, por lo que podemos escribir el comentario en 80 líneas si queremos, ya que hasta que no se encuentre con */ el compilador pensará que es un comentario y no lo tendrá en cuenta.

Aclarado esto vamos a comenzar con nuestro primer ejercicio. Solo vamos a necesitar los siguientes elementos:

  • Placa de arduino con su cable Usb.
  • 1 Diodo Led (da igual rojo, azul, verde, rosa.., mientras sea un led de dos patillas no habrá problema)
  • El entorno de arduino debidamente configurado.

Vamos a ver lo que es un diodo led.

Un led es un diodo que emite luz cuando la polarización es directa, es decir, cuando se encuentra conectado a una corriente eléctrica que circula del polo positivo al polo negativo. Para poder conectarlo debemos saber cual es el polo positivo y cual el negativo.

El polo positivo es la patilla larga, mientras que el negativo es la patilla corta.

Si las dos patillas son aproximadamente del mismo tamaño porque has rescatado un led de algún aparato, puedes conocer las distintas patillas gracias a un corte que suelen tener en la parte que emite la luz, como podéis ver en la siguiente foto. La patilla que esta en ese lado es la patilla corta, es decir, el polo negativo y, por contra, la otra es el polo positivo.

La patilla positiva se conectara a la fuente eléctrica que lo alimentará, mientras que la negativa se conectará a masa, que en la placa arduino es la que pone GND.

Mas claro todavía, conectamos al pin 13 digital la patilla larga (+) y al GND que esta justo al lado (al menos en Duemilanove) la patilla corta (-).

Puede ser que el ejercicio no te funcione porque alguna de las patillas del led no haga un buen contacto, ya que son muy finas (o porque el led este estropeado). Te recomiendo que utilices una placa protoboar y unos cables para conectar los pines con el led que coloques en la placa de practicas.

Esto es una placa protoboard.

Este es el modo de conectar arduino, el led y la placa protoboard.

Ahora vamos a comenzar con la parte del código. Todo esto lo hemos hecho sin conectar la placa al ordenador, y seguiremos así de momento hasta que hayamos terminado con el código y estemos listos para darle al botón de “Upload to I/O Board”.

El código es bastante sencillo. Recomiendo copiarlo a mano en vez de usar copiar y pegar, porque así aprenderás mejor el lenguaje.

Una cosa muy importante: el entorno de arduino es “case sensitive”, o lo que es lo mismo, diferencia entre mayúsculas y minúsculas, por lo que las palabras “aa”, “Aa”, “aA” y “AA” son completamente diferentes y no tienen nada que ver unas con las otras. Si declaramos una variable como en nuestro código llamada “ledPin” y mas abajo nos referimos a ella como “ledpin” obtendremos algún error o el programa no funcionara como nosotros queremos, por lo que debemos tener mucho cuidado con las mayúsculas y minúsculas.

int ledPin = 13;

void setup()

{

pinMode(ledPin, OUTPUT);

}

void loop()

{

digitalWrite(ledPin, HIGH);

delay(500);

digitalWrite(ledPin, LOW);

delay(500);

}

En la primera línea declaramos una variable llamada ledPin. Una variable es un lugar donde se almacena un valor, ya sea de tipo numérico (integer) o de otra clase. En nuestro código hemos almacenado el valor 13, que es el pin de la placa arduino donde tenemos conectado nuestro led y la hemos declarado de tipo integer, por ello hemos puesto el "int" delante. El ; al final se utiliza para indicar al compilador el final de una instrucción.

La siguiente línea inicia una función. Una función es un conjunto de instrucciones. La función "void setup()" se utiliza para preconfigurar la placa de arduino. Todas las instrucciones de una función se encierran entre la llave { y }.

Continuamos, entre esas dos llaves hay una orden que le dice a arduino que configure el pin 13 como salida. Creo que no es muy difícil de ver, recuerda que al principio habíamos creado una variable llamada ledPin y le habíamos asignado el numero 13, que es el pin de salida.

Después de esta función tenemos otra función que es obligatoria, la función "void loop()". Las instrucciones de esta función se repetirán constantemente.

La primera instrucción le indica que escriba en el pin 13 (variable ledPin) un valor alto, por lo que la placa pondrá tensión en dicho pin.

La segunda instrucción le indica que espere durante 500 milisegundos. 1 segundo tiene 1000 milisegundos, por lo que 500 milisegundos son medio segundo.

Mientras tanto, ese medio segundo el led permanece encendido, porque en el pin 13 sigue habiendo una tensión.

En la siguiente le dice que escriba en el pin 13 un valor bajo, por lo que la placa quitara la tensión del pin.

A continuación la otra instrucción le indica que permanezca así durante otro medio segundo.

Bien, ahora se han terminado las instrucciones, por lo que arduino vuelve a repetir el código de la función "void loop()", es decir, ahora volvería a poner un valor alto, esperaría medio segundo, pondría un valor bajo, esperaría medio segundo, volvería a repetir y así hasta que desconectemos el cable del puerto Usb.

En fin, este es nuestro primer ejemplo, el clásico de toda la vida. Como añadido, voy a modificar un poco el código, solo los tiempos, para que no sea exactamente el mismo ejemplo que enseñan en todos los sitios. Probar el siguiente.

int ledPin = 13;

void setup()

{

pinMode(ledPin, OUTPUT);

}

void loop()

{

digitalWrite(ledPin, HIGH);

delay(500);

digitalWrite(ledPin, LOW);

delay(500);

digitalWrite(ledPin, HIGH);

delay(1000);

digitalWrite(ledPin, LOW);

delay(1000);

digitalWrite(ledPin, HIGH);

delay(500);

digitalWrite(ledPin, LOW);

delay(500);

digitalWrite(ledPin, HIGH);

delay(250);

digitalWrite(ledPin, LOW);

delay(250);

digitalWrite(ledPin, HIGH);

delay(100);

digitalWrite(ledPin, LOW);

delay(100);

digitalWrite(ledPin, HIGH);

delay(100);

digitalWrite(ledPin, LOW);

delay(100);

digitalWrite(ledPin, HIGH);

delay(100);

digitalWrite(ledPin, LOW);

delay(100);

digitalWrite(ledPin, HIGH);

delay(100);

digitalWrite(ledPin, LOW);

delay(100);

}

En fin, esto es todo por hoy, estoy pensando en que podemos hacer en el próximo ejemplo. Nos vemos.

8 comentarios:

  1. Buenas, sabrias si hay algun emulador de Arduino? He visto por ahi 'emulino' pero ademas de estar muy verde por lo que he podido entender, es bajo linux, y ahora me pilla sin ningun linux para echarle un ojo.
    Creo que tiene GUI pero no he encontrado mucho sobre el.

    Saludos

    ResponderEliminar
  2. Hola, yo tambien estoy a la busqueda de un simulador de arduino, pero me parece que hasta el momento no ha salido nada. Eso de "emulino", lo he descargado y parece el codigo fuente de algun programa en C, pero al intentar compilarlo me da errores porque tiene referencias a otros fichero que no existen. Si quieres puedes utilizar National Instruments Multisim 10 para simular circuitos, pero no podras enviarle codigo a lo que diseñes, es mas bien para probar circuitos antes de montarlos y comprobar tensiones y mas cosas. Saludos.

    ResponderEliminar
  3. Hola.! Me parece re interesante esta página y bastante completa. No entiendo mucho de todo esto pero me estoy interesando y tus explicaciones son muy buenas y entendibles. Voy a leer mejor tu blog ya que estoy interesado en hacer cosas con leds para iluminación en interior de ambientes. Tienes algo de eso.? Gracias. Por favor sigue publicando cosas. Un abrazo desde Argentina

    ResponderEliminar
  4. Emulador de Arduino Aquí:
    http://www.taringa.net/posts/downloads/5476534/Simulando-Arduino-con-VirtualBreadboard.html

    ResponderEliminar
  5. Hola buen día amigo ante mano te envió un saludo desde Venezuela y te felicito por tu valiosa publicación que esta bien documentada y super explicita, yo soy nuevo en este tema y aunque mi especialidad esta enfocada en otro ámbito porque realmente soy es Ingeniero Químico, pero siempre me he sentido atraído por la robática, la automatización de procesos y el diseño de todo tipo de proyectos innovadores y he llegado a tu blog en busca de ayuda, resulta que:
    QUIERO DISEÑAR Y CONSTRUIR MI PROPIA MAQUINA CNC ROUTER PARA CORTAR PIEZA DE DISTINTOS MATERIALES CON GRAN PRECISIÓN Y HE VISTO QUE QUE CON LAS TARJETAS ARDUINO PUEDO CREAR ESA CONECCION ENTRE LA MAQUINA Y LA COMPUTADORA, PERO MI DUDA ES DE QUE MANERA O CON QUE INTERFACE PUEDO HACER QUE LA MAQUINA REPLIQUE EN EL TABLERO EL MISMO DISEÑO O FIGURA 2D o 3D QUE TENGO EN LA COMPUTADORA. por si no me entiendes la pregunta lo que quiero es saber como hago para que a través de ARDUINO la computadora reconozca la maquina como si fuera una impresora y pueda hacer que la maquina se mueva como si fuera una impresora y replique la imagen, claro está que entiendo que cada motor tiene que estar conectado a un pin especifico de la tarjeta ARDUINO, pero se que para que haga eso necesita como especie de un Driver similar al de una impresora común a continuación te dejo varios links de unas maquinas que vi en youtube:
    http://www.youtube.com/watch?v=sr5U5YlE9Zc
    http://www.youtube.com/watch?v=5HttjJerL8k
    http://www.youtube.com/watch?v=iaRc8c4Qwn4&feature=related

    ResponderEliminar
  6. hola quisiera saber como le hago para conectar un led de 4 terminales quisiera saber exactamente en cuales pines va conectado. ¿este tipo de leds utiliza codigos diferentes que al de dos?

    ResponderEliminar
    Respuestas
    1. Hola que tal

      tu led es un RGB, lo que significa que si conectas un solo pin con tierra obtendras un color ya sea rojo, verde o azul, y si comienzas a hacer combinaciones entre ellos (claro siempre conectando tierra) obtendras diferentes tonalidades, ahora que si quieres un poco mas avanzado, se realiza con PWM para darle especificamente la combinacion de colores.

      Eliminar