Вы находитесь на странице: 1из 7

Search the Arduino Playground

Manuals and Curriculum


(http://playground.arduino.cc/Main/ManualsAndCurriculum)
Arduino StackExchange
(http://arduino.stackexchange.com)
Board Setup and Configuration
(http://playground.arduino.cc/Main/ArduinoCoreHardware)
Development Tools
(http://playground.arduino.cc/Main/DevelopmentTools)
Arduino on other Atmel Chips
(http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips)
Interfacing With Hardware
(http://playground.arduino.cc/Main/InterfacingWithHardware)
- Output
(http://playground.arduino.cc/Main/InterfacingWithHardware#Output)
- Input
(http://playground.arduino.cc/Main/InterfacingWithHardware#InputTOC)
- User Interface
(http://playground.arduino.cc/Main/InterfacingWithHardware#ui)
- Storage
(http://playground.arduino.cc/Main/InterfacingWithHardware#Storage)
- Communication
(http://playground.arduino.cc/Main/InterfacingWithHardware#Communication)
- Power supplies
(http://playground.arduino.cc/Main/IntWithHWPwrSup)
- General
(http://playground.arduino.cc/Main/InterfacingWithHardware#General)

Interfacing with Software


(http://playground.arduino.cc/Main/InterfacingWithSoftware)
User Code Library
(http://playground.arduino.cc/Main/GeneralCodeLibrary)
- Snippets and Sketches
(http://playground.arduino.cc/Main/SketchList)
- Libraries
(http://playground.arduino.cc/Main/LibraryList)
- Tutorials

(http://playground.arduino.cc/Main/TutorialList)

Suggestions & Bugs


(http://code.google.com/p/arduino/issues/list)
Electronics Technique
(http://playground.arduino.cc/Main/ElectroInfoResources)
Sources for Electronic Parts
(http://playground.arduino.cc/Main/Resources)
Related Hardware and Initiatives
(http://playground.arduino.cc/Main/SimilarBoards)
Arduino People/Groups & Sites
(http://playground.arduino.cc/Main/People)
Exhibition
(http://playground.arduino.cc/Projects/ArduinoUsers)
Project Ideas
(http://playground.arduino.cc/Projects/Ideas)
Languages
(http://playground.arduino.cc/Main/Languages)
PARTICIPATE
(http://playground.arduino.cc/Main/Participate)
- Suggestions
(http://code.google.com/p/arduino/issues/list)
- Formatting guidelines
(http://playground.arduino.cc/Main/Participate#contribrules)
- All recent changes
(http://playground.arduino.cc/Site/AllRecentChanges)
- PmWiki
(http://playground.arduino.cc/PmWiki/PmWiki)
- WikiSandBox training
(http://playground.arduino.cc/Main/WikiSandbox)
- Basic Editing
(http://playground.arduino.cc/PmWiki/BasicEditing)
- Cookbook (addons)
(http://www.pmwiki.org/wiki/Cookbook/CookbookBasics)
- Documentation index
(http://www.pmwiki.org/wiki/PmWiki/DocumentationIndex)
- Drone with Arduino
(http://www.bartoloilliano.com/arduinotutorial-costruire-un-dronecon-webcam-telecomandatoda-pc-tramite-csharp.html)
- Thermostat with Arduino
(http://arduinothermostat.blogspot.co.uk)

Pgina a revisar.

'''Falta definir traduccion: Thermistor, Pull Up Resistor

Captulo 6: Usando los pines


analgicos

Como se mencion anteriormente en este libro, el mundo real no es digital y, a veces, no puedes
traducir los cambios en el entorno en lecturas digitales. Por ejemplo, la temperatura no cambia slo de
fro a caliente, cambia en un rango valores distintos y, normalmente, estos cambios ocurren muy
lentamente. ste es el motivo por el cual, a menudo, utilizamos sensores analgicos para leer los
parmetros del entorno tales como, la temperatura, la luz, o el movimiento. Esta informacin
resultante es almacenada como datos digitales secuenciales. Dado que Arduino no puede manejar la
informacin como los humanos, necesitamos traducir los datos analgicos para que Arduino pueda
entenderlos.
Los sensores analgicos pueden transformar los datos del entorno en un valor de voltaje comprendido
entre 0V y 5V. Estos valores son distintos de los HIGH o LOW que utilizan los sensores digitales. Para los
pines digitales, HIGH y LOW significan 5V y 0V respectivamente, y nada ms. Sin embargo los pines
analgicos pueden diferenciar cualquier valor intermedio.
La resolucin entre los valores mximos y mnimos difieren de un microprocesador a otro. Arduino
nicamente puede distinguir 1024 niveles en rango de 0V a 5V.

1: La cremallera analgica
La cremallera analgica es diferente a la cremallera digital del captulo anterior. La cremallera digital
slo poda estar HIGH o LOW (5V o 0V). sin embargo, la cremallera analgica, puede darte un rango de
valores entre 0V y 5V.
Para hacer una cremallera analgica necesitas una cremallera normal, algo de hilo conductor y una
resistencia de 10k. Comience cosiendo la resistencia en su lugar. Despus cose un cable rojo en uno
de los terminales de la resistencia, y un cable azul en el otro terminal. Los colores de los cables son para
que recuerdes dnde va cada cable. Desde donde empieza el cable azul, cselo entre cada diente de la
cremallera. Cuando llegues al final de un lado de la cremallera, haz lo mismo en el otro lado y baja de
nuevo.
Asegurate de que el hilo est intacto a lo largo de la cremallera o no funcionar. Una vez hayas llegado
al final de la cremallera por el otro lado, une un cable negro y coselo en su lugar. Ahora la cremallera
est lista y podemos empezar a escribir nuestro cdigo para leer qu valores nos proporciona la
cremallera. Para poder mostrar qu valores nos da la cremallera, necesitamos usar la comunicacin
serie, de modo que Arduino pueda conectarse al equipo y mostrarnos los datos en el monitor:
int analogPin = 2;
/* Aqu declaramos que queremos usar el pin analgico 2, y lo llamaremos analogPin */
int myZipper=0;

/* Aqu declaramos un entero que actuar como variable temporal, donde podremos
almacenar los valores que nos proporcione la cremallera */
void setup(){
Serial.begin(9600);
/* Esto configurar tu comunicacin y la fijar a 9600 baudios (9600 bits por
segundo) */
}
void loop(){

myZipper = analogRead(analogPin);
/* Aqu hacemos una lectura analgica de analogPin y guardamos el valor en la
variable myZipper */
Serial.println(myZipper);
/* Este comando enviar el valor almacenado en myZipper a travs del puerto serie y
despus hace una pausa de 200 milisegundos */
delay(200); //pausa de 200 milisegundos
}

[Get Code] (http://playground.arduino.cc/Es/OSW041?action=sourceblock&num=1)

Lo primero que hacemos en void loop() es una lectura analgica del pin analgico 2. El valor es
almacenado en la variable myZipper. Despus imprimimos este valor por el puerto serie y, cualquier
aparato conectado a Arduino (por ejemplo, un PC) recibir el valor almacenado en la variable. Lo ultimo
que hacemos es aadir una pausa en nuestro programa, ya que, aunque Arduino es pequeo, todava
se comunica ms rapidamente que un ordenador normal, as que la pausa permite sincronizarse con
Arduino. Ahora podemos subir nuestro cdigo a la placa Arduino. Una vez que el cdigo est subido,
conecta el cable rojo en el puerto que indica 5V, el cable negro a uno de los puertos de GND, y el ltimo
cable al pin analgico 2. Si declaras tu analogPin en tu programa como cualquiero otro pin que no sea
el 2, tendrs que colocar el cable azul en ese pin analgico:
Una vez que hayas subido el cdigo y conectado los cables, abre el monitor serie, que es el botn ms a
la derecha de tu IDE de Arduino. Ahora aparecern los valores en el monitor y, si abres y cierras la
cremallera, los valores irn cambiando. Si no puedes ver ningn nmero en tu monitor, asegurate que
la velocidad de comunicacin fijada en el IDE de Arduino es la misma que en tu programa (9600 en el
ejemplo). Cada cremallera te dar unos valores diferentes, puesto que no es algo exacto; pequeas
diferencias afectarn en los resultados. Este tipo de sensor analgico casero es lo suficientemente
bueno como para ser usado en la mayora de prototipos que necesiten un dispositivo de entrada
oculto.

2: Usando un sensor de luz LDR


El siguiente esquema muestra como coser una LDR y una resistencia en un trozo de tela y dnde deben
conectarse los cables en el Arduino: '###################################### The resistor
used in the example is what is called a pull up resistor. We sometimes use pull up resistors to ensure
we wont get 5V straight back in the Arduino. A pull up resistor is the same as a normal resistor but is
used to lower the output voltage from a power source. The combination of a resistor with the LDR is
also necessary for another reason: without it we wouldnt be able to get analog values from the LDR.
This configuration is called a voltage divider and it changes the voltage on the Arduino input
depending on the changes in the LDR. '#######################################
La resistencia usada en el ejemplo es lo que llamamos una resistencia "Pull up". A veces usamos
resistencias pull-up para asegurarnos que no recibe los 5V en sentido contrario el Arduino. Una
resistencia Pull up es una resistencia normal pero usada para reducir el voltaje de salida de una fuente
de tensin. La combinacin de una resistencia con la LDR es necesaria por otra razn: sin ella no
seramos capaces de obtener valores analgicos de la LDR. sta configuracin se conoce con el nombre
de divisor de tensin y cambia el voltaje a la entrada del Arduino dependiendo de los cambios en la
LDR. Conecta un cable rojo a una de las patillas de la resistencia y a los 5V de Arduino. Entre la
resistencia y la LDR ponemos un cable que conecte a nuestro pin analgico. La misma conexin va a

una patilla de la LDR. No importa que patilla conectes. De la otra patilla de la LDR cose un cable que
conecte con el puerto GND del Arduino. Cuando hayas conectado todo prueba el siguiente cdigo y
observa los valores que proporciona la LDR:
int analogPin = 2;
/* el pin analgico que usaremos en Arduino */
int myLDR = 0;
/* variable temporal para almacenar los valores de la LDR */
void setup(){
Serial.begin(9600);
/* configurando la conexin y la velocidad */
}
void loop(){
myLDR = analogRead(analogPin);
/* leemos el valor de la LDR y lo almacenamos */
Serial.println(myLDR);
/* mostramos el valor almacenado en myLDR */
delay(200);
}

[Get Code] (http://playground.arduino.cc/Es/OSW041?action=sourceblock&num=2)

En el ejemplo anterior leemos el valor, lo almacenamos y lo mostramos en el ordenador. No olvides


abrir tu monitor serie en el IDE de Arduino y configurarlo a 9600 baudios para poder ver los valores
captados por Arduino. Una vez que todo funcione, prueba a tapar la LDR con tu mano y comprueba
que el valor que devuelve Arduino. Recuerda este valor y prueba el siguiente cdigo de ejemplo.
int analogPin = 2;
/* el pin analgico que usaremos en Arduino */
int myLDR = 0;
/* variable temporal para almacenar el valor de la LDR */
int myDarkNumber = 100;
/* el umbral de oscuridad, sustituir por el valor obtenido tapando la LDR con la mano */
int ledPin = 13;
void setup(){
Serial.begin(9600);
/* configurando la conexin y la velocidad */
pinMode(ledPin,OUTPUT);
/* declaramos ledPin como Salida */
}
void loop(){
myLDR = analogRead(analogPin);
/* leemos el valor de la LDR y lo almacenamos */
if (myLDR <= myDarkNumber){
digitalWrite(ledPin,HIGH);
}else{
digitalWrite(ledPin,LOW);
}
}

[Get Code] (http://playground.arduino.cc/Es/OSW041?action=sourceblock&num=3)

En este ejemplo la variable "myDarkNumber" es el valor que obtuviste al tapar la LDR con la mano en el
ejemplo anterior. En mi caso es 100, pero t debes cambiarlo por tu valor. Este programa leer el valor
de la LDR y lo comparar con la variable del umbral (myDarkNumber) y si la LDR es menor o igual al
umbral el LED interno de la placa Arduino se ecender, de no ser as permanecer apagado.

3: Usando un sensor de temperatura NTC


El cdigo siguiente, para leer un termmetro, es el mismo que para la LDR. Ambos funcionan bien por
tratarse de sensores analgicos:
int analogPin = 2;
/* el pin analgico que usaremos en Arduino */
int myNTC= 0;
/* variable temporal para guardar los valores del termmetro */
void setup(){
Serial.begin(9600);
/* configurando la comunicacin y la velocidad */
}
void loop(){
myNTC = analogRead(analogPin);
/* lee el valor del NTC y lo almacena */
Serial.print(myNTC);
/* muestra el valor almacenado en myNTC */
delay(200);
}

[Get Code] (http://playground.arduino.cc/Es/OSW041?action=sourceblock&num=4)

Ahora conecta todo como muestra la siguiente ilustracin y carga el cdigo en tu placa Arduino. Una
vez que todo est en su lugar, abre tu monitor serie e intenta calentar tu termmetro con las manos.
Debes poder observar variaciones frente al valor original, cuando comenz el programa. Aunque los
termistores no sean los mejores sensores para obtener la temperatura exacta, son una manera fcil y
barata de diferenciar entre fro y caliente. Si ests usando altas corrientes en tus prendas, o materiales
que se calienten como "muscle wires", los termistores son una manera de comprobar si tu prenda est
demasiado caliente (antes de que empiece a arder).

Share

NEWSLETTER
Enter your email to sign SUBSCRIBE
up

2015 Arduino

Copyright Notice (http://arduino.cc/en/Main/CopyrightNotice)

Contact us (http://arduino.cc/en/Main/ContactUs)

(https://twitter.com/arduino)
(https://plus.google.com/+Arduino)
(http://youtube.com/arduinoteam)

(http://www.facebook.com/official.arduino)
(http://www.flickr.com/photos/arduino_cc)

Вам также может понравиться