Академический Документы
Профессиональный Документы
Культура Документы
Language Reference
Arduino programs can be divided in three main parts: structure, values (variables
and constants), and functions.
Structure
setup()
loop()
Control Structures
if
if...else
for
switch
case
while
do... while
break
continue
return
goto
FurtherSyntax
; (semicolon)
{} (curlybraces)
// (single line
comment)
/* */ (multi-line
comment)
#define
#include
ArithmeticOperators
=
(assignmentoperat
or)
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulo)
ComparisonOperators
== (equalto)
!= (notequalto)
< (lessthan)
> (greaterthan)
<= (less than or
equal to)
>= (greater than
or equal to)
BooleanOperators
&& (and)
Ing. Ronald N. Kopp
Variables
Constants
HIGH | LOW
INPUT | OUTPUT |
INPUT_PULLUP
LED_BUILTIN
true | false
integerconstants
floatingpointconst
ants
Data Types
void
boolean
char
unsignedchar
byte
int
unsignedint
word
long
unsignedlong
short
float
double
string - chararray
String - object
array
Conversion
char()
byte()
int()
word()
long()
float()
Variable
Scope&Qualifiers
variable scope
static
volatile
const
Utilities
sizeof()
Pgina 1
Functions
Digital I/O
pinMode()
digitalWrite()
digitalRead()
Analog I/O
analogReference()
analogRead()
analogWrite() PWM
Dueonly
analogReadResoluti
on()
analogWriteResoluti
on()
Advanced I/O
tone()
noTone()
shiftOut()
shiftIn()
pulseIn()
Time
millis()
micros()
delay()
delayMicroseconds()
Math
min()
max()
abs()
constrain()
map()
pow()
sqrt()
Trigonometry
sin()
cos()
tan()
RandomNumbers
randomSeed()
random()
Bits and Bytes
lowByte()
highByte()
Arduino
|| (or)
! (not)
Pointer Access
Operators
*
dereferenceoperat
or
&referenceoperato
r
BitwiseOperators
& (bitwise and)
| (bitwiseor)
^ (bitwisexor)
~ (bitwisenot)
<< (bitshiftleft)
>> (bitshiftright)
CompoundOperators
++ (increment)
-- (decrement)
+=
(compoundadditio
n)
-=
(compoundsubtrac
tion)
*=
(compoundmultipli
cation)
/=
(compounddivision
)
&=
(compoundbitwise
and)
|=
(compoundbitwise
or)
bitRead()
bitWrite()
bitSet()
bitClear()
bit()
ExternalInterrupts
attachInterrupt()
detachInterrupt()
Interrupts
interrupts()
noInterrupts()
Communication
Serial
Stream
USB (Leonardo and Due
only)
Keyboard
Mouse
Glosario:
code / function: comando
sketch: boceto/programa
delay: retraso / demora
loop: bucle/lazo
set: establecer/inicializar
running: ejecutndose
Paginas consultadas:
Ing. Ronald N. Kopp
Pgina 2
Arduino
http://wiring.org.co/reference/
http://arduino.cc/en/Tutorial/HomePage
Pgina 3
Arduino
Funciones bsicas
Los bocetos (sketch) utilizados aqu, de ejemplos, son programas que
demuestran los comandos bsicos de Arduino. Se encuentran incluidos en el
programa Arduino; para abrirlos, hacemos clic en el botn Abrir de la barra de
herramientas y buscamos en la carpeta de ejemplos.
1.Basics
BareMinimum: The bare minimum of code needed to start an Arduino
sketch.
Blink: Turn an LED on and off.
DigitalReadSerial: Read a switch, print the state out to the Arduino Serial
Monitor.
AnalogReadSerial: Read a potentiometer, print its state out to the Arduino
Serial Monitor.
Fade: Demonstrates the use of analog output to fade an LED.
ReadAnalogVoltage : Reads an analog input and prints the voltage to the
serial monitor
Pgina 4
Arduino
Hardware Required
Arduino Board
Circuit
Solo se necesita la placa Arduino para ste ejemplo.
Pgina 5
Arduino
Code
El comando setup() se coloca cuando se inicia un boceto. Lo usaremos para
inicializar variables, estados de los pines, comenzar a usar las bibliotecas, etc. El
comando setup() slo se ejecutar una vez, y esto ser, despus de cada
arranque o reinicio de la placa Arduino.
Nombre
Ejemplo
setup()
void setup() {
pinMode(0, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.print('.');
delay(1000);
Pgina 6
Arduino
Descripci
n
Sintaxis
Parmetro
s
}
La funcin es llamada una vez que el programa empieza a ser
ejecutado. Suele definir el ambiente inicial, tal como el estado de los
pines (INPUT o OUTPUT), inicializar el puerto serial, etc. Todo esto
antes que loop() empiece a ejecutarse. Las variables declaradas en
setup() no son accesibles desde loop().
void setup() {
declaraciones
}
Declaracio Cualquier declaracin valida.
nes
Descripci
n
Sintaxis
Parmetro
s
loop ()
void setup() {
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH);
}
Continuamente ejecuta las lneas de cdigo dentro suyo,
bloquendose cuando el programa es detenido. La funcin loop() es
usada en conjuncin con setup(). El nmero de veces que loop()
se ejecuta por segundo puede ser controlada con las funciones
delay() y delayMicroseconds().
loop() {
declaraciones
}
Declaracio Una secuencia de declaraciones para ser ejecutados
nes
una y otra vez.
El cdigo de abajo en realidad no hace nada, pero sta estructura es til para ser
copiada y pegada, de tal manera que podamos empezar cualquier boceto por
nuestra cuenta. Tambin muestra cmo hacer comentarios de los comandos.
Cualquier lnea que comienza con dos barras inclinadas (//) no ser ledo por el
compilador, podremos escribir lo que queramos despus de ella. El comentar
nuestro cdigo puede ser particular mente til para explicar, tanto a nosotros
mismo y a otros, cmo funciona nuestro programa paso a paso.
Nombre
Ejemplo
//comentario
// Inicializa el pin 0 como OUTPUT
// Asigna el valor HIGH al pin 0
pinMode(0, OUTPUT);
// Inicializa el pin 0 como OUTPUT
digitalWrite(0, HIGH);
// Asigna el valor HIGH al pin 0
Pgina 7
Arduino
Descripci
n
Sintaxis
Parmetro
s
void setup() {
// poner el cdigo de configuracin aqu, para ejecutar una vez
}
void loop() {
// poner el cdigo principal aqu, para ejecutar repetidamente
}
Nombre
Ejemplo
Descripci
n
Sintaxis
Parmetro
s
Nombre
Ejemplo
Descripci
n
Sintaxis
Parmetro
s
/* */ (multiline comment)
/*
Cambia de HIGH y LOW un pin
alternando entre ellos
y esperando 100 milisegundos
en cada alteracin
*/
digitalWrite(8, HIGH);
delay(100);
digitalWrite(8, LOW);
Notas de explicacin incrustadas en el cdigo. Los comentarios son
usados para recordar e informar a otros acerca del funcionamiento
de su programa. Los comentarios de multiples lneas son usados
para descripciones de textos largos o para comentar partes del
cdigo mientras la aplicacin esta depurando. Los comentarios son
ignorados por el compilador
/*
comentarios
*/
Comentari Cualquier secuencia de caracteres.
o
{} (llaves)
int a[] = { 5, 20, 25, 45, 70 };
Define el inicio y fin del bloque de una funcin y de bloques de
instrucciones de estructuras como el for() y el if(). Los corchetes
son tambin usados para definir los valores inciales en la
declaracin de un arreglo
{ declaracin }
{ ele0, ..., eleN }
Declaracio Cualquier secuencia de instrucciones vlida
nes
Pgina 8
Arduino
ele0,
eleN
...,
2. Blink: parpadear
Este ejemplo muestra la cosa ms simple que podemos hacer con un Arduino, el
destello de un LED.
Hardware Required
Ing. Ronald N. Kopp
Pgina 9
Arduino
ArduinoBoard
LED
Circuit
Para construir el circuito, conectamos una resistencia de 220 ohmios al pin 13. A
continuacin, conectamos la pata ms larga de un LED (la pata positiva, llamada
el nodo) a la resistencia. Fijamos la pata ms corta (la pata negativa, llamado el
ctodo) a tierra. A continuacin, conectamos la placa Arduino en el ordenador,
iniciamos el programa de Arduino, e introducimos el cdigo de abajo.
La mayora de las placas Arduino ya tienen un LED conectado al pin 13 en la
propia placa. Si ejecutamos este ejemplo, sin el hardware conectado, deberamos
ver que el LED este intermitente.
Pgina 10
Arduino
Schematic
Pgina 11
Arduino
Code
En el siguiente programa, lo primero que hacemos es asignar al pin 13 como un
pin
de
salida
con
la
lnea:
pinMode(13, OUTPUT);
Nombre
Ejemplo
pinMode()
int inpin = 8;
int outpin = 9;
int val = 0;
void setup() {
pinMode(inpin, INPUT);
pinMode(outpin, OUTPUT);
}
Descripci
n
Sintaxis
Parmetro
s
void loop() {
val = digitalRead(inpin);
if (val == HIGH)
{
digitalWrite(outpin, HIGH);
} else {
digitalWrite(outpin, LOW);
}
}
El comando pinMode() designa al pin digital I/O especificado como
INPUT o OUTPUT. Un pin I/O digital o binario puede tener dos posible
valores: HIGH o LOW. Es posible asignar o leer el valor de un pin
digital I/O usando los mtodos digitalWrite() y digitalRead().
pinMode (pin, valor)
Pin
Valor
digitalWrite()
int outpin = 0;
void setup() {
pinMode(outpin, OUTPUT);
}
void loop() {
digitalWrite(outpin, HIGH);
}
Pgina 12
Arduino
Descripci
n
Sintaxis
Parmetro
s
Esto suministra 5 voltios al pin 13 que crear una diferencia de voltaje a travs
de los terminales del LED, y lo encender. Luego lo apagamos con la lnea:
digitalWrite(13, LOW);
Para eso se necesita que el pin 13 vuelva a 0 voltios, y se vuelva a apagar el LED.
Y entre el encendido y el apagado, se requiere un tiempo suficiente para que una
persona vea el cambio, por lo que el comando delay() le dir al Arduino que no
haga nada durante 1000 milisegundos, o un segundo.
Nombre
Ejemplo
delay()
int pin = 0;
int ledpin = 1;
void setup() {
pinMode(pin, INPUT);
pinMode(ledpin, OUTPUT);
}
Descripci
n
Sintaxis
Parmetro
s
void loop() {
if (pin == HIGH) {
digitalWrite(ledpin, HIGH);
}
else {
digitalWrite(ledpin, LOW);
}
delay(250); // Detiene el programa por 250 milisegundos
}
Obliga al programa a detenerse por un tiempo especificado. El
tiempo de demora es especificado en milsimas de segundo. La
llamada a la funcin delay(3000) detendr el programa por tres
segundos. Alias de delayMIlliseconds().
delay(milisegundos)
Milisegund
os
int:
Especificado
en
milisegundos
milisegundos en 1 segundo)
(hay
1000
Pgina 13
Arduino
// el Pin 13 tiene un LED conectado en la mayora de las placas Arduino.
// le damos un nombre:
int led = 13;
// el setup se ejecuta de rutina una vez cuando se presiona RESET o se enciende
la placa:
void setup() {
// inicializamos el pin digital como una salida.
pinMode(led, OUTPUT);
}
// la rutina loop se ejecuta una y otra vez por siempre
void loop() {
digitalWrite(led, HIGH); // enciende el LED (el nivel de tensin es un ALTO)
delay(1000);
// esperar un segundo
digitalWrite(led, LOW); // apaga el LED haciendo el nivel de tensin un BAJO
delay(1000);
// espera un segundo
}
Nombre
Ejemplo
Descripci
n
Sintaxis
Parmetro
s
Nombre
Ejemplo
Descripci
n
Sintaxis
Parmetro
s
int
int a;
// Declara la variable "a" de tipo int
a = 23;
// Asigna a "a" el valor 23
int b = -256; // Declara la variable "b" y le asigna el valor -256
int c = a + b; // Declara la variable "c" y le asigna la suma de "a" y
"b"
Tipo de datos para enteros, nmeros sin punto decimal. Los enteros
pueden ser tan grandes como 32.767 y tan pequeos como -32,768.
Estos son almacenados como 16 bits de informacin.
int var
int var = valor
var
valor
; (punto y coma)
int a;
// Declaracin
a = 30;
// Asignacin de la declaracin
Serial.print(i); // Funcin de la declaracin
Es declaracin destructora que separa elementos en un programa.
Una declaracin es una instruccin completa al computador y el
punto y coma es usada para separar instrucciones (es similar al
punto "." al escribir en Espaol). Los punto y coma son usados para
separar diferentes elementos en una estructora for()
Decalracin;
Declaracio Una simple declaracin para ejecutar
nes
Pgina 14
Arduino
Hardware Required
ArduinoBoard
A momentary switch, button, or toggle switch
10k ohm resistor
breadboard
hook-up wire
Circuit
Conectamos los tres cables a la placa Arduino. Los dos primeros, el rojo y el
negro, se conectan a las dos filas horizontales largas en el lado derecho del
protoboard para facilitar el acceso a la alimentacin de 5 voltios y tierra. El tercer
cable va desde pin digital 2 hasta una pata del pulsador. Esa misma pata del
pulsador se conecta a travs de una resistencia pull-down (aqu 10K Ohms) a
tierra. La otra pata del pulsador se conecta a la alimentacin de 5 voltios.
Los pulsadores o conmutadores conectan dos puntos en un circuito cuando se los
presiona. Cuando el pulsador est abierto (sin apretar) no hay ninguna conexin
entre las dos patas del pulsador, por lo que el pin est conectado a tierra (a
travs de la resistencia pull-down) y lee como BAJO, o 0. Cuando se cierra el
pulsador, se hace una conexin entre sus dos patas, conectando el pin a 5
voltios, de modo que el pin lee como ALTO, o 1.
Si desconectamos el pin I/O digital del todo, el LED puede parpadear de forma
errtica. Esto se debe a que la entrada es "flotante" es decir, que no tiene una
Ing. Ronald N. Kopp
Pgina 15
Arduino
conexin slida a la tensin o a tierra, y cambiar al azar a un estado, ya sea a
un ALTO o a un BAJO. Es por eso que se necesita una resistencia pull-down en el
circuito.
Schematic
Pgina 16
Arduino
Code
En el programa a continuacin, la primera cosa que haremos en la funcin setup
ser comenzar la comunicacin serie, en 9600 bits de datos por segundo, entre
la placa Arduino y el ordenador con la lnea:
Serial.begin(9600);
Nombre
Ejemplo
serial
int val;
void setup() {
Serial.begin(9600); // Inicializa el puerto serial en 9600 baud
}
Descripci
n
Sintaxis
Mtodos
void loop() {
if ( Serial.available() > 0 ) // Si los datos estn disponibles para
leer
{
val = Serial.read();
// los lee y los almacena en 'val'
}
analogWrite(0, val);
}
El puerto serial Serial de Wiring permite fcilmente leer o escribir
datos hacia y desde un dispositivo externo. Permite comunicar dos
maquinas y da la flexibilidad de hacer sus propios dispositivos y
usarlos como entrada/salida de Wiring. El puerto serial es un puerto
de nueve pines que sola existir en la mayora de las PCs y puede
ser emulado a travs de un adaptador serial USB. El puerto Serial
est disponible en los pines 0(Rx) y 1(Tx). Las velocidades tpicas
son: 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 y
115200 baudios.
serial
begin()
Abre el puerto serial para leer o escribir
read()
Devuelve un nmero entre 0 y 255 para el siguiente
byte esperado por el buffer. Devuelve -1 si no hay
ningn byte, aunque esto debera ser evitado utilizando
available() para ver si hay datos que estn disponibles.
write()
Escribe un byte en el puerto serial
print()
Escribe datos (int, float, byte, char, char[], nmeros en
base (DEC, BIN, OCT or HEX) o Strings en el puerto
serial
println()
Funciona como el mtodo print pero imprime un
carcter y hace un salto de line cada vez que es
llamada la funcin
available() Devuelve el nmero de bytes disponibles.
peek()
Examina el siguiente byte que se encuentra disponible
Pgina 17
Arduino
flush()
end()
A continuacin, configuramos el pin digital 2, como una entrada. Este pin leer la
seal de salida desde el pulsador del circuito:
pinMode(2,INPUT);
Ahora que la configuracin se ha completado, pasamos a configurar el bucle.
Cuando se pulsa el pulsador, 5 voltios fluirn libremente a travs de nuestro
circuito, y cuando no se presione, el pin de entrada se conectar a tierra a travs
de la resistencia de 10kilo-ohmios. Esta es una entrada digital, lo que significa
que el pulsador slo puede estar en un estado encendido (visto por el Arduino
como un "1", o ALTO) o en un estado de apagado (visto por el Arduino como
un"0", o BAJO), sin nada en el medio.
Lo primero que hay que hacer en el bucle principal del programa es establecer
una variable para contener la informacin que viene del pulsador. Dado que la
informacin que viene del pulsador ser un "1" o un "0", se puede utilizar un tipo
de dato int. Llamaremos a esta variable sensorValue, y lo configuramos a que sea
igual a lo que se lee en el pin digital 2. Podemos lograr todo esto con una sola
lnea de cdigo:
int sensorValue = digitalRead (2);
Nombre
Ejemplo
digitalRead()
int inpin = 8;
int outpin = 9;
int val = 0;
void setup() {
pinMode(inpin, INPUT);
pinMode(outpin, OUTPUT);
}
Descripci
n
Sintaxis
void loop() {
val = digitalRead(inpin);
if (val == HIGH)
{
digitalWrite(outpin, HIGH);
} else {
digitalWrite(outpin, LOW);
}
}
Lee el estado (o valor) de un pin digital
digitalRead(pin)
Pgina 18
Arduino
Parmetro
s
Pin
Int
Una vez que el Arduino ha ledo la entrada, se debe hacer que imprima esta
informacin a la computadora como un valor decimal. Para hacer esto utilizamos
el comando Serial.println() en nuestra ltima lnea de cdigo:
Serial.println (sensorValue);
Ahora, cuando se abra el monitor serial en el entorno Arduino, se ver una
corriente de "0"s si su interruptor est abierto, o "1"s si su interruptor est
cerrado.
// el Pin digital 2 tiene un pulsador unido a l. Le daremos un nombre:
int pushButton = 2;
// el setup se ejecuta de rutina una vez cuando se presiona RESET o se enciende
la placa:
void setup() {
// comienza la comunicacin serial a 9600 bits por segundo:
Serial.begin(9600);
// inicializamos alpulsador como una entrada:
pinMode(pushButton, INPUT);
}
// la rutina loop se ejecuta una y otra vez por siempre:
void loop() {
// leemos el pin de entrada:
int buttonState = digitalRead(pushButton);
// imprimimos el estado del botn:
Serial.println(buttonState);
delay(1);
// retraso entre las lectura para la estabilidad
}
Pgina 19
Arduino
Pgina 20
Arduino
Hardware Required
ArduinoBoard
10-kilohm Potentiometer
Circuit
Pgina 21
Arduino
Pgina 22
Arduino
Schematic
Pgina 23
Arduino
Pgina 24
Arduino
Code
En el siguiente programa, lo primero que haremos en la funcin de configuracin,
es comenzar la comunicacin serie, en 9600 bits de datos por segundo, entre el
Arduino
y
el
ordenador
con
el
comando:
Serial.begin(9600);
A continuacin, en el bucle principal de nuestro cdigo, es necesario establecer
una variable para almacenar el valor de la resistencia (que estar entre 0 y 1023,
perfecto par un tipo de dato entero) que viene desde nuestro potencimetro:
int sensorValue = analogRead(A0);
Nombre
Ejemplo
analogRead()
int inpin = 0;
int val = 0;
void setup() {
Serial.begin(9600);
}
Descripci
n
Sintaxis
Parmetro
void loop() {
val = analogRead(inpin);
// lee el valor de entrada del pin
anlogo 0
Serial.println(val);
// escribe el valor al puerto serial
El comando analogRead() lee el valor de un pin anlogo. Los
valores posibles estn en el rango 0-1023, donde 0 es 0 voltios y
1023 es 5 voltios.
analogRead(pin)
Pin
Por ltimo, es necesario imprimir esta informacin para que el monitor serial lo
muestre como un valor decimal(DEC). Nosotros haremos esto con el comando
Serial.println()
con
la
lnea
de
cdigo:
Serial.println (sensorValue, DEC)
Ahora, cuando se abre el monitor de serial en el entorno de desarrollo Arduino,
Ing. Ronald N. Kopp
Pgina 25
Arduino
debera verse un flujo constante de nmeros que van desde 0 hasta 1023, en
correlacin con la posicin del potencimetro. A medida que gira el
potencimetro, estas cifras responden casi al instante.
// el setup se ejecuta de rutina una vez cuando se presiona RESET o se enciende
la placa:
void setup() {
// comienza la comunicacin serial a 9600 bits por segundo:
Serial.begin(9600);
}
// la rutina loop se ejecuta una y otra vez por siempre:
void loop() {
// lee el valor de entrada del pin analgico 0:
int sensorValue = analogRead(A0);
// imprime el valor que se lee:
Serial.println(sensorValue);
delay(1);
// Retraso entre las lectura para la estabilidad (el punto y coma
cierra la sentencia)
}
Pgina 26
Arduino
Hardware Required
Arduinoboard
Breadboard
a LED
a 220 ohm resistor
Circuit
Conectamos el nodo (la pata ms larga, positivo) de nuestro LED al pin de salida
digital 9 en nuestro Arduino a travs de una resistencia de 220 ohmios. Y
Conectamos el ctodo (la pata ms corta, negativo) directamente a tierra.
Ing. Ronald N. Kopp
Pgina 27
Arduino
Schematic
Pgina 28
Arduino
Code
Ing. Ronald N. Kopp
Pgina 29
Arduino
Despus de configurar el pin 9 como una salida, no hay nada ms quehacer en el
comando setup () de nuestro cdigo.
pinMode(led, OUTPUT);
Nombre
Ejemplo
analogWrite()
int outpin = 29;
int val = 0;
void setup() {
}
Descripci
n
Sintaxis
Parmetro
void loop() {
analogWrite(outpin, val); // escribe un valor en el pin 29 PWM
val = (val + 10) % 255; // incrementa el valor y lo mantiene en el
rango 0-255
}
El comando analogWrite() asigna un valor en el pin de salida PWM.
Los valores posibles por defecto estn en el rango de 0-255 (ver el
comando setPWMResolution()). Nota: analogWrite es un alias para el
comando PWMWrite(). Usar analogWrite() en un pin sin capacidad
PWM hace que el pin sea colocado en HIGH sin ningn otro efecto.
analogWrite(pin, valor)
Pin
Valor
Pgina 30
Arduino
Si el brillo llega a los extremos en cualquiera de sus valores (0 255), entonces
fadeAmount se cambia a negativo. En otras palabras, si fadeAmount es 5, cuando
brightness llegue a 255 fadeAmountse se establecer en -5. Esto har que vaya
disminuyendo la intensidad en escalones de 5, hasta llegar a 0. Al llegar a este
valor fadeAmount cambiar nuevamente de -5 a 5 y esto har que vaya
aumentando en escalones de 5 hasta llegar a 255. Como vemos el brillo no solo
cambia de atenuacin sino tambin de direccin.
Nombre
Ejemplo
Descripci
n
Sintaxis
if()
true || false // Evala verdadero porque el primero es verdadero
false || true // Evala verdadero porque el segundo es verdadero
true || true // Evala verdadero porque ambas son verdadero
false || false // Evala falso porque ambas son falso
Permite al programa tomar una decisin sobre que bloque de cdigo
ejecutar. Si la expresin evala true, las instrucciones encerradas
en bloque son ejecutadas y si la expresin evala false las
instrucciones no son ejecutada
if (expresin) {
declaraciones
}
Parmetro
Expresin
Declaraci
n
Nombre
Ejemplo
Descripci
n
Sintaxis
Parmetro
== (equality)
int a = 23;
int b = 23;
if (a == b) {
Serial.print("las variables a y b son iguales");
}
Determina si dos valores son equivalentes. El operador de igualdad
es diferente del operador de asignacin
valor1 == valor2
Valor1
Valor2
Arduino
Nombre
Ejemplo
Descripci
n
Sintaxis
Parmetro
|| (logical OR)
true || false // Evala verdadero porque el primero es verdadero
false || true // Evala verdadero porque el segundo es verdadero
true || true // Evala verdadero porque ambas son verdadero
false || false // Evala falso porque ambas son falso
Permite al programa tomar una decisin sobre que bloque de cdigo
ejecutar. Si la expresin evala true, las instrucciones encerradas
en bloque son ejecutadas y si la expresin evala false las
instrucciones no son ejecutada
expresin1 || expresin2
Expresin
1
Expresin
2
analogWrite() permite cambiar el valor PWM muy fcilmente, por que el retraso
(dalay) al final del boceto controla la velocidad de atenuacin (fade). Intentemos
cambiar el valor de demora (dalay) y ver cmo cambia el programa.
delay(30);
int led = 9;
int brightness = 0;
int fadeAmount = 5;
Pgina 32
Arduino
brightness = brightness + fadeAmount;
// invertimos la direccin de la decoloracin en los extremos de la atenuacin:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// Esperarmos 30 milisegundos para ver el efecto de atenuacin
delay(30);
}
Hardware Required
ArduinoBoard
a variable resistor, like a potentiometer
Circuit
Pgina 33
Arduino
Pgina 34
Arduino
Code
En el siguiente programa, lo nico que haremos en la funcin de configuracin,
es comenzarla comunicacin serie, en 9600 bits de datos por segundo, entre el
Arduino
y
el
ordenador
con
el
comando:
Serial.begin(9600);
Ing. Ronald N. Kopp
Pgina 35
Arduino
A continuacin, en el bucle principal de nuestro cdigo, es necesario establecer
una variable para almacenar el valor de la resistencia (que estar entre 0 y 1023,
perfecto par un tipo de dato entero) que viene desde nuestro potencimetro:
int sensorValue = analogRead(A0);
Para cambiar los valores de 0 a 1023 en un rango que corresponda a la tensin
que la clavija est leyendo, tendremos que crear otra variable, un float, y hacer
un poco de matemticas. Para crear un factor de escala entre 0,0 y 5,0, dividimos
5,0 por 1023,0 y luego lo multiplicamos por sensorValue:
float voltage = sensorValue * (5.0 / 1023.0);
Nombre
Ejemplo
Descripci
n
Sintaxis
float
float a;
a = 1.5387;
float b = -2.984;
float c = a + b;
y "b"
Parmetro
Var
Valor
Por ltimo, es necesario imprimir esta informacin para que el monitor serial lo
muestre como un valor decimal (DEC). Nosotros haremos esto con el comando
Serial.println()
con
la
lnea
de
cdigo:
Serial.println(voltage)
Ahora, cuando abrimos el monitor serial en el entorno Arduino, deberamos ver
un flujo constante de nmeros que van desde 0,0 hasta 5,0. A medida que se gira
el potencimetro, esto corresponder a la tensin de entrada en el pin A0.
Pgina 36
Arduino
// el setup se ejecuta de rutina una vez cuando se presiona RESET o se enciende
la placa:
void setup() {
// comienza la comunicacin serial a 9600 bits por segundo:
Serial.begin(9600);
}
// la rutina lopp se ejecuta una y otra vez por siempre:
void loop() {
// leeos la entrada del pin analgico 0 y lo almacenamos en la variable
sensorValue:
int sensorValue = analogRead(A0);
// convertirmos la lectura analgica (que va desde 0 hasta 1023) en un voltaje (0
- 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// imprimimos el valor que se leer:
Serial.println(voltage);
}
Pgina 37
Arduino
Pgina 38