Lector de temperaturas en grados Fahrenheit y centígrados, con display LCD, es un aplicación bastante simple e interesante. Verdaderamente la plataforma Arduino es muy verstil, y adems fcil de comprender. Durante muchos a!os estuve interesado en los microprocesadores y micro controladores, "#"$, %ic, %arala&, 'asic (tamp, AV) y otros pero los encontraba muy monótonos, pero cuando me tope con Arduino, me sorprendí, las aplicaciones *ue se le pueden dar son inmensas y los componentes *ue se pueden encontrar para esta plataforma, son s+per interesantes, los %( permiten la creación creación de de e*uipos de vuelo parcialmente parcialmente autónomos, autónomos, con tan solo indicar indicar las coordenadas, coordenadas, es un un proyecto proyecto *ue ms tarde tarde mostrare, mostrare, con los *uadcopter *uadcopter.. .. -ambin la robótica esta increíble con los /e&podos, este ser otro proyecto *ue mostrare ms adelante, y las aplicaciones en C0C 1Fresadoras2, en fin son temas *ue mas adelante tocaremos. Indicador de temperatura LCD
A*ui tienen el s3etch para arduino 45 -emperature -emperature 6ndicator F4C 7ith L89$ sensor. apce&pert.blogspot.com apce&pert.7ordpress.com 54 44 LCD library code: ;include
, ?, $, @, 2B 44 Variables float -empCB float -empFB int -emp%in B void setup12E 44 LCDs line position of columns and ro7s: ro7s: lcd.begin1@, G2B lcd.print1H lcd.print1 H -emp 6ndicatorH2B lcd.setCursor1#, lcd.setCursor1#, 2B lcd.print1H-empH2B I void loop12E -empC -empC analog)ead1-emp%in2B 44read the value from the sensor -empC -empC 1$.# 5 -empC -empC 5 ##.#24#G?.#B 44convertion the analog data to temperature -empF -empF 11-empC5>24$2 J 9GB 44convertion celcius to farenheit 44 print result result to lcd display lcd.setCursor l cd.setCursor1, 1, 2B lcd.print1-empC,2B lcd.print1HCH2B
lcd.setCursor1$, lcd.setCursor1$, 2B lcd.print1-empF,2B lcd.print1HFH2B delay1###2B I /asta la pro&ima. )eacciones: a la4s sbado, Kulio G", G#G 0o G#G 0o hay comentarios comentarios.: .: Arduino 6) )emote Control Controlar ? relays con un control remoto 6nfreroKo Mnviar esto por correo electrónico elec trónico 'lo 'log-h g-hisN isN Compar Compartir tir en e n -7itterCompar -7itter Compartir tir en Faceboo Fa ceboo3 3 Compartir en %interest /oy les traigo un proyecto de como controlar un panel de ? relays utiliOando in control remoto infraroKo 1 6) remote control 2. se re*uiere tener la libreria del sensor infreroKo. 0ota importante en esta libreria re*uiere una pe*ue!a modificacion, solo cuando utiliOas las verciones nuevas del programa de Arduino .# y .#. en las anteriores no tendras problemas. La modificacion consiste en remplaOar ;include
Mstoy utiliOando el Control remoto modelo RS##, lo pueden conseguir en ebay.com, en la imagen podrn ver los códigos de cada tecla, los necesitaran para su proyecto.
Con el siguiente s3etch de Arduino podrn localiOar los códigos de otros controles, los códigos los podrn ver en el serial monitor, por si desean utiliOar otro diferente: 44apce&pert.blogspot.com 44 6) )emote Control Code Finder ;include <6)remote.h= int )MCVT%60 B 44define input pin on Arduino 6)recv irrecv1)MCVT%602B decodeTresults resultsB void setup12 E (erial.begin1>@##2B irrecv.enable6)6n12B 44 (tart the receiver I void loop12 E if 1irrecv.decode1Uresults22 E (erial.println1results.value 2B irrecv.resume12B 44 )eceive the ne&t value I I
%ara finaliOar, el (3etch de Arduino con el cual podremos controlar los cuatro relay como se ve en la imagen superiorB 44 apce&pert.blogspot.com ;include <6)remote.h= int )MCVT%60 B int )elayT%60 9B int )elayGT%60 GB int )elay9T%60 B int )elay?T%60 #B 6)recv irrecv1)MCVT%602B decodeTresults resultsB void setup12 E pin8ode1)elayT%60, W-%W-2B pin8ode1)elayGT%60, W-%W-2B pin8ode1)elay9T%60, W-%W-2B pin8ode1)elay?T%60, W-%W-2B pin8ode1@, W-%W-2B irrecv.enable6)6n12B 44 (tart the receiver I int on B void loop12 E if 1irrecv.decode1Uresults22 E if 1results.value @G?$2 E 44 RS## button E on NonB digitalPrite1)elayT%60, on X /6/ : LP2B I I E if 1results.value @"#$$2 E 44 RS## button G E on NonB digitalPrite1)elayGT%60, on X /6/ : LP2B I I E if 1results.value @?9#?$2 E 44 RS## button 9 E on NonB digitalPrite1)elay9T%60, on X /6/ : LP2B I I E if 1results.value @@#$2 E 44 RS## button E on NonB digitalPrite1)elay?T%60, on X /6/ : LP2B I I irrecv.resume12B 44 )eceive the ne&t value I IIII Mspero *ue no tengan problemas, pero de tenerlos pueden comunicarse y con gusto los ayudare en lo posible. /asta la pró&ima. )eacciones: a la4s sbado, Kulio G", G#G 0o hay comentarios.: Vínculos a esta publicación viernes, 9 de Kulio de G#G ArduinoQComponentes para control de potencia Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest Mstos son algunos componentes *ue se podrían utiliOar con los proyectos de Arduino, mostrare algunos circuitos bsicos para tener ideas de cómo aplicarlos.
Q Los transistores Q la imagen muestra cómo utiliOarlos, el transistor debe seleccionarse seg+n el voltaKe y la corriente de operación, el especificado en la imagen es el -6%GG este transistor puede ser operado a un m&imo de ##voltios y la corriente m&ima de operación es de $ amperios, recuerde *ue es el m&imo, recomiendo utiliOarlo al #Y de su capacidad, tambin aplicar los disipadores de calor.
Mspecificaciones del -ipGG 1 Datasheet 2 http:44777.fairchildsemi.com4ds4-64-6%G#.pdf G -ransistores 8(FM- Aun*ue luce similar al transistor, este no tiene *ue ver con la corriente *ue transcurre por su base, es solo el voltaKe aplicado le ate o compuerta de control 1similar a la base del transistor2, La ventaKa con los mosfet es *ue podemos utiliOar motores o cargas con mayor potencia ya *ue estos pueden maneKar corrientes desde # hasta ## amperios, estos son modelos muy comunes tambin encontraran de mayores capacidades pero son ms costosos y no tan accesibles. mostrare algunas imgenes para sus aplicaciones sencillas.
9 Los Solid State Relay1 )elevadores en estado sólido2 Q Msta alternativa lucir mucho mas profesional si realiOan un proyecto comercial o industrial, se utiliOan en circuitos de corriente alterna, podrían remplaOar los arrancadores
magnticos de motores, sin la necesidad de tener *ue remplaOar contactos como en los controladores magnticos *ue se utiliOan en las industrias. %ueden ser controlados con voltaKes de 9 hasta G?Voltios DC, son muy verstiles, re*uieren disipadores de calor y si tienen ventilación ser mucho meKor.
%ara motores trifasicos
como pueden ver hay diversas formas de contralar cargas desde Arduino. hasta la pró&ima. )eacciones: a la4s viernes, Kulio 9, G#G comentario: Vínculos a esta publicación Mti*uetas: Arduino, Arduino y )elays martes, # de Kulio de G#G Controlar " relays con Visual 'asic y Arduino Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest %odrn ver como hacer *ue se puedan controlar " relays desde visual 'asic G##, tan solo con un solo botón podrs activar y desactivar. -ambin podrn observar como los indicadores cambiaran de color verde a roKo cuando el relay este activado, %odrn comparar con la publicación anterior y podrn notar los cambios realiOados en el (3etch de arduino y tambin en Visual 'asic. 0o solo podrn controlar relays, pueden apilarlo en diferentes proyectos como prender motores, lmparas, entre otras cosas. Mspero les guste.
%odran utilisar diferentes paneles de relays :
A*uí les deKo el (3etch de Arduino
44apce&pert.blogspot.com 44Con este programa controlaras " relays con pulsar un boton para actibar y 44al pursarlo nuevamente se desactiva. char inDataZG#[B 44 Allocate some space for the string char inCharB 44 Phere to store the character read byte inde& #B 44 6nde& into arrayB 7here to store the character void setup12 E (erial.begin1>@##2B pin8ode19, W-%W-2B pin8ode1G, W-%W-2B pin8ode1, W-%W-2B pin8ode1#, W-%W-2B pin8ode1>, W-%W-2B pin8ode1", W-%W-2B
pin8ode1, W-%W-2B pin8ode1@, W-%W-2B I char %inut1char5 -his2 E 7hile 1(erial.available12 = #2 44 Dont read unless 44 there you 3no7 there is data E if1inde& < >2 44 ne less than the siOe of the array E inChar (erial.read12B 44 )ead a character inDataZinde&[ inCharB 44 (tore it inde&JJB 44 6ncrement 7here to 7rite ne&t inDataZinde&[ \#B 44 0ull terminate the string I I if 1strcmp1inData,-his2 #2 E for 1int i#Bi<>BiJJ2 E inDataZi[#B I inde&#B return1#2B I else E return12B I I void loop12 E if 1%inut1H9 onH2#2 E digitalPrite19, /6/2BI if 1%inut1H9 offH2#2 EdigitalPrite19, LP2BI if 1%inut1HG onH2#2 E digitalPrite1G, /6/2BI if 1%inut1HG offH2#2 EdigitalPrite1G, LP2BI if 1%inut1H onH2#2 E digitalPrite1, /6/2BI if 1%inut1H offH2#2 EdigitalPrite1, LP2BI if 1%inut1H# onH2#2 E digitalPrite1#, /6/2BI if 1%inut1H# offH2#2 EdigitalPrite1#, LP2BI if 1%inut1H> onH2#2 E digitalPrite1>, /6/2BI if 1%inut1H> offH2#2 EdigitalPrite1>, LP2BI if 1%inut1H" onH2#2 E digitalPrite1", /6/2BI if 1%inut1H" offH2#2 EdigitalPrite1", LP2BI if 1%inut1H onH2#2 E digitalPrite1, /6/2BI if 1%inut1H offH2#2 EdigitalPrite1, LP2BI if 1%inut1H@ onH2#2 E digitalPrite1@, /6/2BI if 1%inut1H@ offH2#2 EdigitalPrite1@, LP2BI I
Visual 'asic G## 6mports (ystem.6 6mports (ystem.6.%orts 6mports (ystem.-hreading %ublic Class Form (hared Tcontinue As 'oolean (hared Tserial%ort As (erial%ort Dim pinout9 As 'oolean -rue Dim pinoutG As 'oolean -rue Dim pin As 'oolean -rue Dim pinout# As 'oolean -rue Dim pinout> As 'oolean -rue Dim pinout" As 'oolean -rue Dim pinout As 'oolean -rue Dim pinout@ As 'oolean -rue
%rivate (ub FormTLoad1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 8y'ase.Load (erial%ort.Close12
(erial%ort.%ort0ame Hcom?H Cambiar el numero de %uerto HC8H (erial%ort.'aud)ate >@## (erial%ort.Data'its " (erial%ort.%arity %arity.0one (erial%ort.(top'its (top'its.ne (erial%ort./andsha3e /andsha3e.0one (erial%ort.Mncoding (ystem.-e&t.Mncoding.Default Mnd (ub %rivate (ub 'uttonTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton.Clic3 (erial%ort.pen12 6f pinout9 -rue -hen (erial%ort.Prite1H9 onH2 )ectangle(hape.'ac3Color Color.)ed Mlse (erial%ort.Prite1H9 offH2 )ectangle(hape.'ac3Color Color.Lime Mnd 6f pinout9 0ot 1pinout92 (erial%ort.Close12 Mnd (ub %rivate (ub 'uttonGTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'uttonG.Clic3 (erial%ort.pen12 6f pinoutG -rue -hen (erial%ort.Prite1HG onH2 )ectangle(hapeG.'ac3Color Color.)ed Mlse (erial%ort.Prite1HG offH2 )ectangle(hapeG.'ac3Color Color.Lime Mnd 6f pinoutG 0ot 1pinoutG2 (erial%ort.Close12 Mnd (ub %rivate (ub )ectangle(hapeTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hape.Clic3, )ectangle(hape".Clic3 Mnd (ub %rivate (ub 'utton9TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton9.Clic3 (erial%ort.pen12 6f pin -rue -hen (erial%ort.Prite1H onH2 )ectangle(hape9.'ac3Color Color.)ed Mlse (erial%ort.Prite1H offH2 )ectangle(hape9.'ac3Color Color.Lime Mnd 6f pin 0ot 1pin2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton?TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton?.Clic3 (erial%ort.pen12 6f pinout# -rue -hen (erial%ort.Prite1H# onH2 )ectangle(hape?.'ac3Color Color.)ed Mlse (erial%ort.Prite1H# offH2 )ectangle(hape?.'ac3Color Color.Lime Mnd 6f pinout# 0ot 1pinout#2 (erial%ort.Close12 Mnd (ub %rivate (ub )ectangle(hape9TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hape9.Clic3, )ectangle([email protected] Mnd (ub
%rivate (ub )ectangle(hape?TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hape?.Clic3, )ectangle(hape$.Clic3 Mnd (ub %rivate (ub )ectangle(hapeGTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hapeG.Clic3, )ectangle(hape.Clic3 Mnd (ub %rivate (ub 'utton"TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton".Clic3 (erial%ort.pen12 6f pinout@ -rue -hen (erial%ort.Prite1H@ onH2 )ectangle(hape".'ac3Color Color.)ed Mlse (erial%ort.Prite1H@ offH2 )ectangle(hape".'ac3Color Color.Lime Mnd 6f pinout@ 0ot 1pinout@2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton$TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton$.Clic3 (erial%ort.pen12 6f pinout> -rue -hen (erial%ort.Prite1H> onH2 )ectangle(hape$.'ac3Color Color.)ed Mlse (erial%ort.Prite1H> offH2 )ectangle(hape$.'ac3Color Color.Lime Mnd 6f pinout> 0ot 1pinout>2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton@TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles '[email protected] (erial%ort.pen12 6f pinout" -rue -hen (erial%ort.Prite1H" onH2 )ectangle(hape@.'ac3Color Color.)ed Mlse (erial%ort.Prite1H" offH2 )ectangle(hape@.'ac3Color Color.Lime Mnd 6f pinout" 0ot 1pinout"2 (erial%ort.Close12 Mnd (ub %rivate (ub 'uttonTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton.Clic3 (erial%ort.pen12 6f pinout -rue -hen (erial%ort.Prite1H onH2 )ectangle(hape.'ac3Color Color.)ed Mlse (erial%ort.Prite1H offH2 )ectangle(hape.'ac3Color Color.Lime Mnd 6f pinout 0ot 1pinout2 (erial%ort.Close12 Mnd (ub Mnd Class /asta la pro&ima. )eacciones: a la4s martes, Kulio #, G#G comentario: Vínculos a esta publicación Mti*uetas: Arduino, Arduino y )elays, Arduino y Visual 'asic lunes, > de Kulio de G#G Arduino y Visual 'asic G##QControlar relay con un solo boton Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest
Mn esta publicación controlaremos ? relays utiliOando un programa creado en Visual 'asic G##, mediante la comunicación del puerto W(' nos conectaremos al Arduino W0, y este a subes activara o desactivara los relay. Lo prepare por una petición en los comentarios y a*uí esta la respuesta. %rimero el eKemplo ser con ? )elays y en la pró&ima publicación ser con " relays para *ue puedan ver los cambios realiOados y sirva de eKemplo para todos. Mspero les guste.
Ml circuito utiliOado ser el mismo de la publicación anterior: Controlando 4 relays con Arduino y Visual Basic 2!
Conecciones electricas: %in 9 Q canal pin G Q canal G pin Q canal 9 pin # Q canal ?
A continuación el (3etch de Arduino W0
44apce&pert.blogspot.com 44Con este programa controlaras ? relays con pulsar un botón para activar y 44al pulsarlo nuevamente se desactiva. char inDataZG#[B 44 Allocate some space for the string char inCharB 44 Phere to store the character read byte inde& #B 44 6nde& into arrayB 7here to store the character void setup12 E (erial.begin1>@##2B pin8ode19, W-%W-2B pin8ode1G, W-%W-2B pin8ode1, W-%W-2B pin8ode1#, W-%W-2B I char %inut1char5 -his2 E 7hile 1(erial.available12 = #2 44 Dont read unless 44 there you 3no7 there is data E if1inde& < >2 44 ne less than the siOe of the array E inChar (erial.read12B 44 )ead a character inDataZinde&[ inCharB 44 (tore it inde&JJB 44 6ncrement 7here to 7rite ne&t inDataZinde&[ \#B 44 0ull terminate the string I I if 1strcmp1inData,-his2 #2 E for 1int i#Bi<>BiJJ2 E inDataZi[#B I inde&#B return1#2B I else E return12B I I void loop12 E if 1%inut1H9 onH2#2 E digitalPrite19, /6/2BI if 1%inut1H9 offH2#2 EdigitalPrite19, LP2BI
if if if if if if
1%inut1HG onH2#2 E digitalPrite1G, /6/2BI 1%inut1HG offH2#2 EdigitalPrite1G, LP2BI 1%inut1H onH2#2 E digitalPrite1, /6/2BI 1%inut1H offH2#2 EdigitalPrite1, LP2BI 1%inut1H# onH2#2 E digitalPrite1#, /6/2BI 1%inut1H# offH2#2 EdigitalPrite1#, LP2BI
I
Continuamos con el codigo fuente de Visual 'asic G##
6mports (ystem.6 6mports (ystem.6.%orts 6mports (ystem.-hreading %ublic Class Form (hared Tcontinue As 'oolean (hared Tserial%ort As (erial%ort Dim pinout9 As 'oolean -rue Dim pinoutG As 'oolean -rue Dim pin As 'oolean -rue Dim pinout# As 'oolean -rue %rivate (ub FormTLoad1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 8y'ase.Load (erial%ort.Close12 (erial%ort.%ort0ame Hcom?H Cambiar el numero de %uerto HC8H (erial%ort.'aud)ate >@## (erial%ort.Data'its " (erial%ort.%arity %arity.0one (erial%ort.(top'its (top'its.ne (erial%ort./andsha3e /andsha3e.0one (erial%ort.Mncoding (ystem.-e&t.Mncoding.Default Mnd (ub %rivate (ub 'uttonTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton.Clic3 (erial%ort.pen12 6f pinout9 -rue -hen (erial%ort.Prite1H9 onH2 )ectangle(hape.'ac3Color Color.)ed Mlse (erial%ort.Prite1H9 offH2 )ectangle(hape.'ac3Color Color.Lime Mnd 6f pinout9 0ot 1pinout92 (erial%ort.Close12 Mnd (ub %rivate (ub 'uttonGTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'uttonG.Clic3 (erial%ort.pen12 6f pinoutG -rue -hen (erial%ort.Prite1HG onH2 )ectangle(hapeG.'ac3Color Color.)ed Mlse (erial%ort.Prite1HG offH2 )ectangle(hapeG.'ac3Color Color.Lime Mnd 6f pinoutG 0ot 1pinoutG2 (erial%ort.Close12 Mnd (ub %rivate (ub )ectangle(hapeTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hape.Clic3 Mnd (ub %rivate (ub 'utton9TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton9.Clic3 (erial%ort.pen12
6f pin -rue -hen (erial%ort.Prite1H onH2 )ectangle(hape9.'ac3Color Color.)ed Mlse (erial%ort.Prite1H offH2 )ectangle(hape9.'ac3Color Color.Lime Mnd 6f pin 0ot 1pin2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton?TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton?.Clic3 (erial%ort.pen12 6f pinout# -rue -hen (erial%ort.Prite1H# onH2 )ectangle(hape?.'ac3Color Color.)ed Mlse (erial%ort.Prite1H# offH2 )ectangle(hape?.'ac3Color Color.Lime Mnd 6f pinout# 0ot 1pinout#2 (erial%ort.Close12 Mnd (ub %rivate (ub )ectangle(hape9TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hape9.Clic3 Mnd (ub %rivate (ub )ectangle(hape?TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hape?.Clic3 Mnd (ub %rivate (ub )ectangle(hapeGTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles )ectangle(hapeG.Clic3 Mnd (ub Mnd Class
(uerte con el proyecto. racias
)eacciones: a la4s lunes, Kulio #>, G#G > comentarios: Mti*uetas: Arduino, Arduino y )elays, Arduino y Visual 'asic domingo, " de Kulio de G#G Visual 'asic G## y Arduino Q (ervo control con LCD display. Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest Mn el post anterior presente como controlar un servo utiliOando un (lider en Visual 'A(6C G##, ahora les traigo una actualiOación para meKorar su apariencia y a!adir nuevas funciones. Mspero les guste, para *ue les funcione idntico tienen *ue instalar un tipo de letra digital si no la tienen los dígitos no lucirn iguales, lo encontraran en el mismo sitio *ue este archivo. 1 $@>TD66-AL.ttf 2
Mnlace a la publicación anterior: Arduino Q Visual 'asic G## (ervo control con LCD display Arduino (3etch TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 44 apce&pert.7ordpress.com 44 servo control con LCD display position ;include <(ervo.h= ;include
, ?, $, @, 2B void setup12 E lcd.begin1@, G2B lcd.print1H(ervo %osition:H2B myservo.attach192B (erial.begin1>@##2B I void loop12 E static int val #B lcd.setCursor1#, 2B if1(erial.available122 E char ch (erial.read12B s7itch1ch2 E case #...>: val val 5 # J ch #B brea3B
case s: myservo.7rite1val2B lcd.print11float2val2B val #B brea3B I I I TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
A*uí les deKo el código fuente para *ue puedan comparar las diferencias: %ublic Class (ervoController %rivate serial%ort As 0e7 6.%orts.(erial%ort %rivate (ub FormTLoad1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 8y'ase.Load -ry Pith serial%ort .%ort0ame ]C89^ .'aud)ate >@## .%arity 6.%orts.%arity.0one .Data'its " .(top'its 6.%orts.(top'its.ne Mnd Pith serial%ort.pen12 serial%ort.Prite1]#s^2 Catch e& As M&ception 8sg'o&1e&.-o(tring2 Mnd -ry Mnd (ub %rivate (ub -rac3'arT(croll1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles -rac3'ar.(croll serial%ort.Prite1-rac3'ar.Value U ]#s]2 %rogress'ar.Value 1-rac3'ar.Value 5 #2 -e&t'o&.-e&t -rac3'ar.Value 5 # U 1^ ]2 Mnd (ub %rivate (ub LabelGTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles LabelG.Clic3 Mnd (ub %rivate (ub -e&t'o&T-e&tChanged1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles -e&t'o&.-e&tChanged Mnd (ub %rivate (ub %rogress'arTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles %rogress'ar.Clic3 Mnd (ub Mnd Class A"C #$pert %iles &Ser'oController2(
)eacciones: a la4s domingo, Kulio #", G#G 0o hay comentarios.: Mti*uetas: Arduino y Visual 'asic Lectura de valores en el puerto analogo de arduino Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest Mn este proyecto podremos visualiOar como trabaKa el puerto anlogo, es sencillo pero al comprenderlo podemos aplicarlo a muchas ideas como, Voltímetro, control de temperaturas para unidades de acondicionadores de aire, controladores de carga para bancos de baterías de sistemas solares o eólicos 1molinos de viento2, en fin son muchísimas las aplicaciones *ue podemos darle al Arduino utiliOando los puertos anlogos.
Los componentes los podemos ver en la imagen. %ublicare tres (3etch para poder comprender como funciona el puerto anlogo. Ml primer (3etch podremos ver como al variar la posición del pot la lectura en el puerto anlogo 1pin #2 se refleKara en la velocidad con *ue el led prende y apaga. La variación ser en milisegundos. 45 %ot s3etch blin3 an LMD at a rate set by the position of a potentiometer 54 const int pot%in #B 44 select the input pin for the potentiometer const int led%in 9B 44 select the pin for the LMD int val #B 44 variable to store the value coming from the sensor void setup12 E pin8ode1led%in, W-%W-2B 44 declare the led%in as an W-%WI void loop12 E val analog)ead1pot%in2B 44 read the voltage on the pot digitalPrite1led%in, /6/2B 44 turn the led%in on delay1val2B 44 blin3 rate set by pot value 1in milliseconds2 digitalPrite1led%in, LP2B 44 turn the led%in off delay1val2B 44 turn led off for same period as it 7as turned on I Mn el segundo (3etch podremos observar como Arduino interpreta la variación de voltaKe en el puerto anlogo 1pin#2 y nos la mostrara en el (erial 8onitor del programa Arduino como lo podrn ver en la imagen. %odremos notar *ue cuando en el pin sea # Voltios el serial les mostrara # y cuando sea $ Voltios entonces el serial les mostrara #G9, Los valores sern entre # /asta #G9.
45 Analog)ead(erial )eads an analog input on pin #, prints the result to the serial monitor. Attach the center pin of a potentiometer to pin A#, and the outside pins to J$V and ground. -his e&le code is in the public domain. 54 44 the setup routine runs once 7hen you press reset: void setup12 E 44 initialiOe serial communication at >@## bits per second: (erial.begin1>@##2B I 44 the loop routine runs over and over again forever: void loop12 E 44 read the input on analog pin #: int sensorValue analog)ead1A#2B 44 print out the value you read: (erial.println1sensorValue2B delay12B 44 delay in bet7een reads for stability I Mn el siguiente (3etch combinare los dos (3etch anteriores haciendo unas modificaciones al segundo para incorporarlo al primero, para *ue sirva de eKemplo. 45 %ot s3etch blin3 an LMD at a rate set by the position of a potentiometer 54 const int pot%in #B 44 select the input pin for the potentiometer const int led%in 9B 44 select the pin for the LMD int val #B 44 variable to store the value coming from the sensor void setup12 E pin8ode1led%in, W-%W-2B 44 declare the led%in as an W-%W44 initialiOe serial communication at >@## bits per second: (erial.begin1>@##2B I void loop12 E val analog)ead1pot%in2B 44 read the voltage on the pot digitalPrite1led%in, /6/2B 44 turn the led%in on delay1val2B 44 blin3 rate set by pot value 1in milliseconds2
digitalPrite1led%in, LP2B 44 turn the led%in off delay1val2B 44 turn led off for same period as it 7as turned on 44 read the input on analog pin #: int val analog)ead1pot%in2B 44 print out the value you read: (erial.println1val2B delay12B 44 delay in bet7een reads for stability I Msta parte es importante comprenderla por*ue ser la base para otros proyectos *ue mostrare, como obtener lecturas remotas, pero ser mas adelante. Mspero les sirva para practicar, luego mostrare como hacer el voltímetro y el control de temperatura, para la pró&ima. )eacciones: a la4s domingo, Kulio #", G#G 0o hay comentarios.: Vínculos a esta publicación Mti*uetas: Arduino Laboratorio Virtual con Arduino Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest
ArduLab es un entorno de trabaKo *ue permite interactuar con una placa Arduino 1Diecimila o Duemilanove2 para crear un labaratorio virtual. 8ediante ArduLab podemos realiOar una serie de actividades y e&perimentos orientados principalmente al aprendiOaKe de conceptos sencillos relacionados con la tecnología 1principalmente electrónica y robótica2. ArduLab no es un entorno de programación, es un Laboratorio Virtual de M&perimentación *ue permite al usuario, aprender, probar y conocer como paso previo a la programació de sistemas, con sensores y actuadores, basados en Arduino. 8as informacion en: http:44complubot.educa.madrid.org4inicio.phpXseccionprincipal ____________________________________________Q Q 6nstalación
%rimeros pasos
ArduLab ##? ArduLab ##? para Pindo7s `% (%9 y Pindo7s 1rar2, o en formato Oip1G>4#$4G#2. Fichero fuente del Firm7are versión ##? con soporte para el 6DM Arduino .# 1G4#G4G#G2. )eacciones: a la4s domingo, Kulio #", G#G 0o hay comentarios.: Mti*uetas: ArduLab Arduino Q Visual 'asic G## (ervo control con LCD display Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest
Arduino servo control. Mn este proyecto se utiliOa un servo *ue estar controlado por una %C atabes de una aplicación creada en V'G##, Donde un (lider controlara la posición del servo y ser desplegada en un LCD display. Los servos vienen con dos códigos de colores: 2 Amarillo se!al )oKo VoltaKeJ 8arrón -ierra G2 'lanco se!al )oKo VoltaKeJ 0egro -ierra Cone&ión del servo, (e!al pin9 Cone&iones del Li)uidCrystal lcd&*,+,4,,-,(/ Arduino ser'o control S0etc1
44 apce&pert.7ordpress.com 44 servo control con LCD display position ;include <(ervo.h= ;include , ?, $, @, 2B void setup12 E lcd.begin1@, G2B lcd.print1H(ervo %osition:H2B myservo.attach192B (erial.begin1>@##2B I void loop12 E static int val #B lcd.setCursor1#, 2B if1(erial.available122 E char ch (erial.read12B s7itch1ch2 E case #...>: val val 5 # J ch #B brea3B case s: myservo.7rite1val2B lcd.print11float2val2B val #B brea3B I
I I Codigo fuente Visual 'asic G## 1(ervoController2
%ublic Class (ervoController %rivate serial%ort As 0e7 6.%orts.(erial%ort %rivate (ub FormTLoad1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 8y'ase.Load -ry Pith serial%ort .%ort0ame ]C89^ .'aud)ate >@## .%arity 6.%orts.%arity.0one .Data'its " .(top'its 6.%orts.(top'its.ne Mnd Pith serial%ort.pen12 serial%ort.Prite1]#s^2 Catch e& As M&ception 8sg'o&1e&.-o(tring2 Mnd -ry Mnd (ub %rivate (ub -rac3'arT(croll1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles -rac3'ar.(croll serial%ort.Prite1-rac3'ar.Value U ]#s^2 Mnd (ub Mnd Class A"C #$pert %iles &Ser'oController!(
)eacciones: a la4s domingo, Kulio #", G#G 0o hay comentarios.: Mti*uetas: Arduino LCD Seypad (hield Controlando ? relays con Arduino y Visual 'asic G## Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest %ara este proyecto se re*uiere un panel con ? relays para poder controlar e*uipos de mayor potencia como motores compresores o simplemente para iluminación de una residencia u un almacn, Las aplicaciones son variadas. Mste control relay board lo pueden conseguirse en ebay.com, no tiene *ue ser igual al ilustrado, vienen de G, ?, " relays y ms. Lo seleccionaran de acuerdo a su proyecto. AbaKo encontraras el s3etch de Arduino y el código fuente de V'G##, tambin deKare el lugar para baKar el archivo &Arduino4C1RelayControl( V'G##. Mspero les funcione bien y recuerden seleccionar el puerto de comunicación W(' cuando corran la aplicación en sus %C yo utiliOo el Com9, (uerte con el proyecto. /asta la pró&ima. Conecciones electricas: %in 9 Q canal
pin G Q canal G pin Q canal 9 pin # Q canal ?
Arduino (3etch 44 'y: apce&pert.blogspot.com int )L? 9B 44 the number of the )elay pin int )L9 GB int )LG B int )L #B
void setup12 E (erial.begin1>@##2B 44 set serial speed pin8ode1)L?, W-%W-2B 44 set )elay as output digitalPrite1)L?, LP2B 44turn off )elay pin8ode1)L9, W-%W-2B digitalPrite1)L9, LP2B pin8ode1)LG, W-%W-2B digitalPrite1)LG, LP2B pin8ode1)L, W-%W-2B digitalPrite1)L, LP2B
I void loop12E 7hile 1(erial.available12 #2B 44 do nothing if nothing sent int val (erial.read12 #B 44 deduct ascii value of # to find numeric value of sent number if 1val ?2 E 44 test for command then turn on )elay (erial.println1H)elay ? onH2B digitalPrite1)L?, /6/2B 44 turn on )elay I if 1val 92 E (erial.println1H)elay 9 onH2B digitalPrite1)L9, /6/2B I if 1val G2 E (erial.println1H)elay G onH2B digitalPrite1)LG, /6/2B I if 1val 2 E (erial.println1H)elay onH2B digitalPrite1)L, /6/2B I
else if 1val "2 44 test for command # then turn off LMD E (erial.println1H)elay ? FFH2B digitalPrite1)L?, LP2B 44 turn off LMD I
else if 1val 2 E (erial.println1H)elay 9 FFH2B digitalPrite1)L9, LP2B I else if 1val @2 E (erial.println1H)elay G FFH2B digitalPrite1)LG, LP2B I else if 1val $2 E (erial.println1H)elay FFH2B
digitalPrite1)L, LP2B I
else 44 if not one of above command, do nothing E 44val valB I (erial.println1val2B (erial.flush12B 44 clear serial port I
&Arduino4C1RelayControl( Visual 'asic G##
6mports (ystem.6 6mports (ystem.6.%orts 6mports (ystem.-hreading %ublic Class Form (hared Tcontinue As 'oolean (hared Tserial%ort As (erial%ort %rivate (ub FormTLoad1'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 8y'ase.Load (erial%ort.%ort0ame 1]com9^2 c1ange com port to matc1 your Arduino port(erial%ort.Close12 (erial%ort.'aud)ate >@## (erial%ort.Data'its " (erial%ort.%arity %arity.0one (erial%ort.(top'its (top'its.ne (erial%ort./andsha3e /andsha3e.0one (erial%ort.Mncoding (ystem.-e&t.Mncoding.Default very importantN Mnd (ub %rivate (ub 'uttonTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton.Clic3 (erial%ort.pen12 (erial%ort.Prite1]^2 (erial%ort.Close12 Mnd (ub
%rivate (ub 'utton9TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton9.Clic3 (erial%ort.pen12 (erial%ort.Prite1]G^2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton$TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton$.Clic3 (erial%ort.pen12 (erial%ort.Prite1]9^2 (erial%ort.Close12 Mnd (ub %rivate (ub 'uttonTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton.Clic3 (erial%ort.pen12 (erial%ort.Prite1]?^2 (erial%ort.Close12 Mnd (ub %rivate (ub 'uttonGTClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'uttonG.Clic3 (erial%ort.pen12 (erial%ort.Prite1]$^2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton?TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton?.Clic3 (erial%ort.pen12 (erial%ort.Prite1]@^2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton@TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles '[email protected] (erial%ort.pen12 (erial%ort.Prite1]^2 (erial%ort.Close12 Mnd (ub %rivate (ub 'utton"TClic31'yVal sender As (ystem.bKect, 'yVal e As (ystem.MventArgs2 /andles 'utton".Clic3 (erial%ort.pen12 (erial%ort.Prite1]"^2 (erial%ort.Close12 Mnd (ub Mnd Class A"C #$pert %iles &Arduino4C1RelayControl(
)eacciones: a la4s domingo, Kulio #", G#G G comentarios: Mti*uetas: Arduino y Visual 'asic 0ueva version para arduinoQArduino.#. Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest Lo podrn conseguir en la pagina oficial en ingles Q Do3nload t1e Arduino Sot3are ya *ue en la pagina en espa!ol no est actualiOada o lo pueden ba5ar directamente a)u6 . Do7nload Arduino .#. 1release notes2, hosted by oogle Code: Pindo7s 8ac ( ` Linu&: 9G bit, @? bit
%ueden elegir esta versión *ue ya esta actualiOada para utiliOar el sensor Wltrasónico /C()#? y el 8otor Control (hield, si lo desean pinchen el icono del (SR D)6VM. Msta versión la estar actualiOando cada veO *ue incluya nuevos componentes de programación, como 'luetooth, %(, entre otras cosas. Arduino!..!AC" 7pdated
)eacciones: a la4s domingo, Kulio #", G#G 0o hay comentarios.: Vínculos a esta publicación Mti*uetas: 6nstalar Arduino Como instalar Arduino a una%C con Pindo7s Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest %ara poder programar nuestro Arduino tenemos *ue configurar nuestra computadora y en este caso ser con Pindo7s . Le mostrare los pasos y tambin el enlace a la pagina oficial de Arduino, en la sección de instalación. %rimero deben tener instalado el programa de Arduino, la versión mas actualiOada en este momento es la del sitio en ingles Q 1http:44arduino.cc4en48ain4(oft7are 2 y la e&plicación la encontraran en el sitio en espa!ol Q 1http:44arduino.cc4es4uide4Pindo7s 2. ComenOare con la instalación:
Deben tener a mano su Arduino W0 y su cable W(', lo conectaran al puerto de su computadora, la ma*uina reconocer el panel Arduino , podrn verificar en el De'ice 8anagerde sus computadoras, cuando lo localicen, debe verse similar a la siguiente imagen.
Como podrn notar el icono del Arduino tiene una indicación de color amarillo, esto representa alg+n problema o error al instalar. %icaremos sobre Arduino Wno con el ratón y presionamos el botón derecho, nos mostrara una ventana y en ella seleccionaremos 7pdate Dri'er Sot3are como se puede observar en la imagen a continuación.
Luego Veremos la siguiente ventana:
(eleccione Bro3se my computer y pasara a la pró&ima ventana, en esta sección deben localiOar el archivo conde instalaron el programa de Arduino, en este eKemplo lo instale en el des3top de mi ma*uina, buscaremos el folder Dri'ers y presionan el botón 9:
La siguiente ventana *ue vern les indicara una advertencia, seleccionen Istall t1is dri'er sot3are any3ay
Msperaremos *ue termine la instalación. Cuando finalice abra reasignado el puerto, Veamos en la pró&ima imagen.
Luego sabiendo *ue le asigno el "uerto de comunicaci;n Com* , %asaremos a abrir al programa de Arduino, localiOar el 8odelo de nuestro micro controlador y liego el puerto de comunicación. Como veremos en las siguientes imgenes:
Ra para este momento estaremos listos para programar nuestro Arduino W0. Mspero *ue no tengan problemas. /asta la pró&ima. )eacciones: a la4s domingo, Kulio #", G#G $ comentarios: Vínculos a esta publicación Mti*uetas: 6nstalar Arduino 8edidor de distancias con LCD @G y (ensor ultrasonico /C()#?. Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest Mste circuito ya se complica ms, utiliOare un S1ield LCD <:eypad y el sensor sónico =C>SR4.Ms el *ue estaremos utiliOando frecuentemente en las pruebas. Mn esta ocasión veremos las lecturas, sin utiliOar el puerto W(' de nuestra %C. Al utiliOar este shield, nos ahorramos complicaciones, y resulta un proyecto con mayor esttica, luce mas profesional. Ver imagen:
Las conecciones son importantes: VCC $Voltios -rig Conectar al pin ;G Mcho Conectar al pin ;9 nd -ierra A*uí les deKo el s3etch para instalarlo en el arduino, est en ]cm^ centímetros pero es sencillo cambiarlo a pulgadas. 44 Wltrasonic.h Q Library for /)(C#? Wltrasonic )anging 8odule. 44 )ev. G 1#@4G#2 44 777.arduino.com.es ;include ,?,$,@,2B Wltrasonic ultrasonic1G,92B 44 1-rig %60,Mcho %602 void setup12 E lcd.begin1@, G2B I void loop12 E lcd.clear12B lcd.setCursor1#, #2B lcd.print1ultrasonic.)anging1C822B 44 C8 para metrico y 60C para pulgadas lcd.print1^ C8^2B delay1$##2B I Mspero *ue no tengan problemas, solo funciona si el programa de arduino esta actualiOado para el sensor sónico. Cual*uier complicación, me deKan un comentario y tratare de ayudarles. )eacciones: a la4s domingo, Kulio #", G#G G comentarios: Vínculos a esta publicación Mti*uetas: (ensor ultrasonico /C()#? 8edidor de distancias con ultrasonidos /C()#?. Mnviar esto por correo electrónico 'log-hisN Compartir en -7itterCompartir en Faceboo3Compartir en %interest
/ola, este circuito de pruebas, es para familiariOarse con el sensor ultrasinico, lo utiliOare para tomar distancias, estas se refleKaran en ]cm^ . 'asicamente mide distancias calculando el tiempo en *ue emite el pulso sonico y lo recibe, demodo *ue lo pocras ver en tu %C cuandi activas el monitor serial. Les mostrare como activar este monitor, es sensillo. Ver imagen?
Ver imagen de como se comunica con el monitor serial.