Professional Documents
Culture Documents
Hardware Requerido
Arduino UNO
Circuito
Slo se necesita una tarjeta Arduino conectada.
La funcin setup() se llama cuando el sketch o programa se inicia. Lo puedes utilizar para
inicializar variables, configuracin de pines, iniciar el uso de una librera, etc. sta funcin solo
corre una vez despus de encender la tarjeta o apretar el botn de reset en la tarjeta Arduino.
Luego de llamar a la funcin setup(), la funcin loop() se llama consecutivamente una y otra
vez luego de que termina. sto permite que el programa cambie y responda a medida que
corre. El cdigo en la funcin loop() de tu sketch es utilizada para activamente controlar la
tarjeta Arduino.
Cualquier lnea que empiece con dos slashes (//) o cualquier texto que est entre slashasterisco(/*) y asterisco-slash(*/) no va a ser leida por el compilador, por lo que puedes
escribir lo que desees despus de stos permitiendo escribir comentarios de tu cdigo. sto
es muy til para recordar lo que quisimos hacer como para que otros puedan entender
nuestro cdigo.
El cdigo a continuacin no hace nada, pero su estructura es til para copiarla y pegarla en
un sketch para empezar.
Dentro del cdigo, todo lo escrito de color plomo claro es un comentario que hacemos dentro
del mismo programa, esto se realiza por diferentes motivos como:
Podemos reconocer un comentario fcilmente tanto por el color como por los conjuntos de
smbolos que mencionamos: /* */ o //
Cdigo:
/*
Minimo Elemental
*/
void setup() {
// escribe ac el cdigo de setup, para que corra una vez:
}
void loop() {
// escribe ac tu cdigo principal para que corra repetidamente:
}
Clase 2 sentencia switch - case
Una sentencia if le permite elegir entre dos opciones diferenciadas, verdadero o
falso. Cuando hay ms de dos opciones, puede utilizar mltiplessentencias if, o puede
utilizar la sentencia switch. la sentencia switch permite elegir entre varias
opciones discretas. En este ejemplo se muestra cmo usarlo para cambiar entre cuatro
estados deseados de una fotoresistencia: muy oscuro, oscuro, medio y brillante.
Este programa lee primero la fotorresistencia. A continuacin, utiliza el mapa ()
para mapear su salida a uno de cuatro valores: 0, 1, 2, o 3. Por ltimo,se utiliza la sentencia
switch() para imprimir uno de los cuatro mensajes de vuelta al ordenador, dependiendo de
cul de los cuatro valores se devuelve.
Hardware Requerido
Arduino UNO
Protoboard
Fotoresistencia
Resistencia de 10K
Circuito
Esquemtico
Cdigo:
/*
Sentencia Switch
Demuestra el uso de la sentencia Switch. La sentencia Switch
permite elegir entre un numero de valores discretos. Esto es como
una serie de sentencias if.
*/
// Declaracin de sentencias
// la mxima y mnima lectura que se obtiene del sensor:
const int sensorMin = 0;
const int sensorMax = 600;
void setup() {
// inicializa la comunicacin serial:
Serial.begin(9600);
}
void loop() {
// Lectura del sensor
int sensorReading = analogRead(A0);
int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
// dependiendo del valor de range realiza una determinada accin
switch (range) {
Hardware Requerido
Tarjeta Arduino
Seis LEDs
Protoboard
Circuito
Esquemtico
Cdigo:
/*
Bucle de iteracin
Muestra el uso de: for() loop.
Prende multiples LEDs en secuencia de una direccion a otra y viceversa
El siguiente cdigo utiliza un for () loop para asignar
los pines 2-6 como salida, las cuales iran conectadas a los 5 LEDs utilizados.
Una vez que se encendi el ultimo LED, este se apaga y se prende el LED anterior
esto continua de forma continua hasta llegar primer LED, donde se inicia el ciclo
*/
// define el tiempo entre el cambio de nivel de voltaje (ms)
int tiempo = 100;
void setup() {
// usa la sentencia loop para declarar los pines como pines de salida
for (int pin = 2; pin <= 6; pin++)
{
pinMode(pin, OUTPUT);
}
}
void loop()
{
// bucle
for (int pin = 2; pin <= 6; pin++)
{
// prende el LED:
digitalWrite(pin, HIGH);
delay(tiempo);
// apaga el LED:
digitalWrite(pin, LOW);
}
// bucle
for (int pin = 6; pin >= 2; pin)
{
// prende LED
digitalWrite(pin, HIGH);
delay(tiempo);
// apaga el LED
digitalWrite(pin, LOW);
}
}
Clase 4 - Sentencia if
La sentencia if() es la sentencia ms bsica de entre todas las sentencias en la estructura de
control. Esta permite que pase algo o no, dependiendo si la condicin dada es verdadera o
falsa.
if (condicin)
Realiza una accion si la condicion es verdadera
Existe una variacin, llamada if-else:
if (condicin)
Realiza una accion si la condicion es verdadera
else
Realiza una accion si la condicion es falsa
Tambin existe la sentenca else-if, donde se puede verificar una segunda condici.
if (condicin)
Realiza una accion si la condicion es verdadera
else if (otra condicin)
Realiza una accion si la primera condicion es falsa
Vamos a usar lasentencia if todo el tiempo. En el ejemplo se enciende un LED en el
pin 13 (el LED incorporado en muchas tarjetas Arduinos) si el valor ledo en una entrada
analgica* pasa por encima de un determinado umbral.
Hardware Requerido
Tarjeta Arduino
Potencimetro
Protoboard
Circuito
Esquemtico
Cdigo:
/*
Condicional- sentencia if
Este ejemplo demuestra el uso de la sentencia if().
Se lee el valor del potencimetro(una entrada analgica) y prende el LED
solo si el valor sobrepasa el nivel de umbral.
*/
const int analogPin = A0; // pin al cual se conectar el potencimetro
const int ledPin = 9;
// pin al cual se conectar el LED
const int threshold = 400; // un valor de umbral
void setup() {
// inicializa el pin del LED como pin de salida
pinMode(ledPin, OUTPUT);
// inicializacin de la comunicacin serial
Serial.begin(9600);
}
void loop() {
// lectura del valor del potencimetro
int analogValue = analogRead(analogPin);
// si el valor analgico es suficientemente alto se prende el LED:
if (analogValue > threshold) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin,LOW);
}
// imprime el valor analgico
Serial.println(analogValue);
delay(1);
// retraso entre lecturas para estabilizar
}
*NOTA: Un sensor analgico es aquel que, como salida, emite una seal comprendida por un
campo de valores instantneos que varan en el tiempo, y son proporcionales a los efectos
que se estn midiendo.
Hardware Requerido
Tarjeta Arduino
Pulsador
Fotoresistencia
LED
Protoboard
Circuito
Esquemtico
Cdigo:
/*
Condicional Sentencia While
Este ejemplo muestra el uso de la sentencia while()
Mientras el pulsador es presionado, la rutina de calibracin es corrida.
La lectura del sensor durante el while loop define el los valores mximo y
mnimos esperados de la fotoresistencia.
Esta es una variacin del ejemplo de calibracin
*/
const
const
const
const
int
int
int
int
sensorPin = A2;
// pin that the sensor is attached to
ledPin = 9;
// pin that the LED is attached to
indicatorLedPin = 13; // pin that the built-in LED is attached to
buttonPin = 2;
// pin that the button is attached to
sensorMax = sensorValue;
}
// almacena el mnimo valor del sensor
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
Clase 6 Arreglos
Una matriz o un arreglo es una variable con mltiples partes. Si se piensa en una variable
como un vaso quecontiene un cubo de hielo, es posiblepensar en una matriz como una
bandeja de cubitos de hielo.
Este tutorial se muestra cmo se puede activar una secuencia de pines cuyos nmeros no son
ni contiguos ni necesariamente secuencial. Para hacer esto es que usted puede poner
los nmeros de pin en una matriz y luego usar for loop para iterar sobre el conjunto.
Usamos 5 LEDs conectados a los pines 2-6 en el tablero utilizandoresistencias 220 Ohm, al
igual que en el for loop. Sin embargo, aqu el orden de los LEDs se determina por su orden
en la matriz, no por su orden fsico.
Esta tcnica de poner los alfileres en una matriz es muy prctico. Usted no tiene que tener los
pines secuencialesentre s, o incluso en el mismo orden. Puede reorganizar como quieras.
Hardware Requerido
Arduino UNO
Protoboard
5 resistencia 220
6 LEDs
Circuito
Esquemtico
Cdigo:
/*
Arreglos
A diferencia de la sentencia for loop, donde los pines tienen que ser contiguos,
aqu los pines pueden estar en cualquier orden.
*/
int tiempo = 100;
int ledPines[] = { 2, 4, 6, 5, 3 };
int pin_contador = 5; // el numero de pines (el tamao del arreglo)
void setup() {
// los elementos del arreglo son nmeros desde 0 a (pin_contador 1).
// usa el for loop para inicializar cada pin como pin de salida:
for (int pin = 0; pin < pin_contador; pin++) {
pinMode(ledPines[pin], OUTPUT);
}
}
void loop() {
// bucle desde el primer pin de la lista al ultimo
for (int pin = 0; pin < pin_contador; pin++) {
// prende el LED:
digitalWrite(ledPines[pin], HIGH);
delay(tiempo);
// apaga el LED:
digitalWrite(ledPines[pin], LOW);
}
// bucle desde el ultimo pin de la lista al primero
for (int pin = pin_contador 1; pin >= 0; pin) {
// prende el LED:
digitalWrite(ledPines[pin], HIGH);
delay(tiempo);
// apaga el LED:
digitalWrite(ledPines[pin], LOW);
}
}