miércoles, 6 de julio de 2011

La placa ARDUINO

Hace unos días recibí una placa arduino que compré por ebay, muy económica U$A 20 incluído el envío y el cable de conexión a usb. Esta placa es de código abierto y hardware libre con un microcontrolador te la podes armar si queres, aunque como es tan económica casi no conviene, arduino es una plataforma que sirve para infinidad de proyectos, puede trabajar online o alimentada por una fuente externa sin necesidad de que esté conectada a la PC. En la red se puede encontrar mucha información al respecto, utiliza un tipo de programación basada en Processing/Wiring , yo se muy poco de programación sin embargo en un par de días y en forma intuitiva he logrado hacer varios programitas, entre los cuales esta uno para completar el Termometro electrónico de fácil construcción que esta descrito en este mismo blog y más aún transformarlo en un termostato electrónico que puede servir para mantener temperaturas de una estufa de cultivo, de un baño maría o lo que fuera o simplemente para acotarlo de tal manera que indique que una persona tiene fiebre

Como recién estoy comenzando con este tema solo agregaré algunas fotos de la placa y como se trabaja con los paneles protoboard que son muy prácticos para hacer proyectos de electrónica sin usar el soldador y de forma experimental.

termometroarduino 001 (Medium)

Esta es la placa Duemilanove en la parte superior los pines digitales y el la inferior salidas de tensión y pines analógicos. El chip largo es el Atmega328 de32kb, en la parte superior izquierda el cable USB y en la inferior izquierda la entrada para fuente3 externa

termometroarduino 002 (Medium)

Este es un panel protoboard este tiene cuatro secciones la superior y la inferior marcadas con líneas rojas y azules, esos pines están todos conectados en forma horizontal, se los usa para la alimentación, rojo positivo y azul negativo. En la parte central hay dos secciones separadas. Cada columna de 5 pines está eléctricamente unida.

termometroarduino 003 (Medium)

El montaje del termómetro electrónico, el cable de pintas verdes va a los 5v de la placa arduino, el negativo no se ve y esta unido a la fila de donde sale el cable gris de pintas amarillas que es uno de los terminales de la sonda, el blaco de pintas azules es el otro de la sonda que puede verse con su diodo terminal, el cable blanco de pintas negras va al pin0 ananalógico del arduino y la resistencia de 2k2 va entre los 5v y la entrada analógica y la sonda

termometroarduino 004 (Medium)

En esta se ve todo el enredo de cables.

termometro

Con un programa Frizzing puede dibujarse como en este caso. Muy simple no?

termometroarduino 005 (Medium)

La pantalla de la netbook , al costado superior izquierdo la pantalla del monitor serie marcando los mV que entrega el sensor y la temperatura. El código en la pantalla del programa del arduino.

El programa IDE del arduino puede bajarse gratis de http://www.arduino.cc/es/ también hay ejemplos y mucha información.

El programa para el termómetro electrónico lo dejo en el siguiente enlace.

// These constants won't change. They're used to give names
// to the pins used:
const int analogInPin = A0; // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to
int sensorValue = 0; // value read from the pot
int outputValue = 0; // value output to the PWM (analog out)

void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
pinMode (13, OUTPUT);
}
void loop() {
// read the analog in value:
sensorValue = analogRead(analogInPin/1024)*4.9; // convierte a mV
// map it to the range of the analog out:
outputValue = map(sensorValue, 0, 1023, 0, 255);
// change the analog out value:
analogWrite(analogOutPin, outputValue);
int temperatura = (-.54054*sensorValue+375.675);
if(temperatura <=15)
digitalWrite(13,HIGH);
if(temperatura >=17)
digitalWrite(13,LOW);
// print the results to the serial monitor:
Serial.print("mV = " );
Serial.print(sensorValue);
Serial.print(" Temp = ");
Serial.println(temperatura);
// wait 10 milliseconds before the next loop
// for the analog-to-digital converter to settle
// after the last reading:
delay(1000);
}

Puede que no sea lo más prolijo este código, ya que lo reformé de uno de los ejemplos que trae el soft arduino, pero funciona muy bien, lo he programado para que encienda el LED del pin 13 con menos de 15 grados y corte a los 17, pero puede variarse cambiando las siguientes líneas:

if(temperatura <=15) // valor en que enciende el led en pin 13

digitalWrite(13,HIGH);

if(temperatura >=17) // valor en que apaga el led en pin13

digitalWrite(13,LOW);

Obviamente esa señal de encendido y apagado del pin digital 13 del arduino puede usarse para con una electrónica adecuada para que pegue y despegue un relay y de esa forma mantener con una resistencia la temperatura de un recinto, (una incubadora o estufa).

A animarse con arduino que es una herramienta muy interesante.

10 comentarios:

  1. [...] Espacio de César Just another WordPress.com site Saltar al contenido InicioAcerca del blogBiologíaFísicaQuímica10 pruebas con…Ideas ÚtilesPáginas de colegasIdiomas ← La placa ARDUINO [...]

    ResponderEliminar
  2. hola anajesusa te sigo bastante por el foro de cientificos aficionados, tengo una consulta ¿donde conseguiste la placa de arduino por U$s 20? ¿tuviste algun problema por la aduana? desde ya te agradezco por la informacion. Saludos

    ResponderEliminar
  3. Yo se la compré a este chino: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=280681403944&ssPageName=ADME:L:OC:US:1123 hay mas baratas pero ojo, hacelo con alguien que haga traking del envío
    Saludos

    ResponderEliminar
  4. hola gracias por este articulo muy bueno y conoci una excelente herramienta como la placa arduino ya la compre estoy adaptando esto a un proyecto que estoy haciendo pero tengo una duda en el codigo cuando pones " sensorValue = analogRead(analogInPin/1024)*4.9;" ; "outputValue = map(sensorValue, 0, 1023, 0, 255);" ; "int temperatura = (-.54054*sensorValue+375.675);" entiendo de codigo y todas esas cosas pero no se como te basas para colocar esos valores cual es la lectura inicial la formula o algo asi por el estilo el map ni idea, otra cosa le quise adaptar un buzzer y puse el negativo en el gnd de arriba y el positivo en la salida digital 8 para que se active con la condicion y escribi algo asi "digitalWrite(8,HIGH);" no se activo que podria ser. disculpa lo extenso pero voy empezando en este interesante mundo de la electronica al menos conosco un poco de java y se me da facil estoy del lenguaje arduino. Espero tu respuesta Gracias!! y te Felicito EXCELENTE BLOG!!

    ResponderEliminar
  5. Hola,
    " sensorValue = analogRead(analogInPin/1024)*4.9;" esto es lo que te transforma la lectura en mV, hay unos tutoriales en youtube, son 7 el autor es Twistx77 en el tercero o cuarto explica esos números y lo del map.
    "int temperatura = (-.54054*sensorValue+375.675);" esta es la función que transforma los mV a grados centígrados, -.54054 es la pendiente.
    Te recomiendo veas esos videos y no conectes sin estar seguro, los pines del arduino soportan hasta 40 mA de corriente, si pones algo que consuma mas de eso podrías dañar el micro.

    ResponderEliminar
  6. muchas gracias ya mismo buscare esos videos, hice la prueba arme todo justo con todos esos materiales y en el mismo lugar es una herramienta muy facil y util, me arrojo resultados aunque no los he corroborado con un termometro genuino a ver. gracias por tu respuesta

    ResponderEliminar
  7. No necesitas el termómetro para ver si lee bien, te sirves una copa de agua con hielo molido, pones la sonda y debe dar 0ºC o haces hervir agua y dentro la sonda, tiene que dar los 100ºC. en caso de no dar exacto hay que variar la función

    ResponderEliminar
  8. Gracias por responder, no me llego al correo la respuesta y revisando tu espacio de nuevo la vi, te vuelvo a molestar ¿como trabaja el sistema paypal? gracias de nuevo por las molestias, saludos

    ResponderEliminar
  9. Paypal es un sistema que te permite hacer tus negocios por su intermedio, es decir alli vas a asentar el numero de tu tarjeta de crédito y en ninguna otra parte, yo siempre he comprado y para eso es gratuito, no se cuando vendes y tienes que cobrar. Es un sistema bastante seguro, yo hace años lo uso.

    ResponderEliminar
  10. Hola, EXCELENTE BLOG! lo tengo agendado en favoritos desde hace un tiempo, hoy te dejo este comentario para preguntarte si tuviste que hacer un trámite aduanero o recibiste la placa en tu casa. ¿de que provincia sos? yo estoy en el interior de córdoba y probé comprar un integrado hace un año y nunca jamás llegó. Por suerte un amigo me trae un arduino a fin de mes desde el exterior, pero sería cómodo poder comprar cosas directamente ya que siempre hay algún sensor raro que cuesta conseguir

    ResponderEliminar