Practicas de Arduino
Ejercicios y Prácticas
Placa ARDUINO UNO
Programación en Arduino
• Los programas en Arduino están divididos en tres partes principales:
– estructuras, valores (variables y constantes) y funciones.
PRACTICA-01 – HOLA MUNDO
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("\HOLA MUNDO:\n");
}
HOLA MUNDO INICIO
FIN
Sección para configurar el estado inicial de la placa Arduino Sección para mandar llamar librerías
específicas
void setup()
• La función setup es llamada cuando un sketch inicia.
• Se utiliza para definir el estado inicial de nuestra placa arduino.
– Utilizala para inicializar variables, definir pin modes, comenzar a utilizar librerías, etc.
– La función setup SOLO SE EJECUTA UNA VEZ CUANDO SE ENCIENDE O REINICIA LA PLACA ARDUINO.
void setup() {
Serial.begin(9600);
}
EJEMPLO:
int buttonPin = 3;
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop() {
// ...
}
void loop()
• Despues de crear la función
setup, que inicializa y define los valores iniciales en la placa, la función loop() hace
precisamente lo que su nombre indica, comienza de manera
ciclica las acciones definidas por tu programa.
• Se utiliza para controlar
activamente tu placa arduino.
const int buttonPin = 3;
// setup initializes serial and the button pin
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
// loop checks the button pin each time,
// and will send serial if it is pressedvoid loop()
{
if (digitalRead(buttonPin) ==
HIGH)
Serial.write('H');
else
Serial.write('L');
delay(1000);
}
REFERENCIAS REVISAR
http://arduino.cc/en/Reference/HomePage
CONSIDERACIONES
• Los programas en arduino NO SE EJECUTAN EN LA COMPUTADORA DONDE LOS
PROGRAMAMOS, SINO EN LA PLACA.
COMPILADOR DE ARDUINO
DIAGRAMAS DE FLUJO VS CODIGO
SIMBOLO CÓDIGO (ejemplos)
n/a
int x=0; c=c+1; c++; long int resultado = factorial(x);
Serial.parseInt();
Serial.print("\nEscribe otro numero:\n"); Serial.println(x);
if(condición) { /*TRUE*/
}
/*else*/
Inicio/fin
Operación
captura impresión
CONSIDERACIONES
• El lenguaje de Arduino está basado en el lenguaje C/C++.
• El lenguaje de Arduino está optimizado para controlar hardware a través de su placa.
• NO esta diseñado para desarrollar programas para consola o computadora personal (PC).
• Por tanto ha dejado de lado instrucciones propias para programas de consola.
• La única manera de interactuar con un programa de Arduino en ejecución es a través del MONITOR SERIAL.
CAPTURA DE DATOS
• Debido a la naturaleza del lenguaje NO EXISTE UNA FUNCION de lectura de datos
simplificada, como sucede en otros lenguajes de programación, por ejemplo:
– scanf ("%79s",str); (C/C++) – cin >> cadena; (C++)
– read()
readln() (java)
– Serial.parseInt() (ARDUINO)
captura
CAPTURA DE DATOS
• En Arduino, debido a la naturaleza de la ejecución de las acciones dentro de la función loop(), donde el ciclo se ejecuta automáticamente, es
recomendable detener el flujo de instrucciones para realizar una captura:
if(Serial.available()>0) {
int x=Serial.parseInt();
captura
void loop() {
if(Serial.available()>0) {
int x=Serial.parseInt();
Serial.println(x);
long int resultado = factorial(x);
Serial.println(resultado);
Serial.print("\nEscribe otro numero:\n");
} }
PRACTICA-02 Factorial
void setup() {
Serial.begin(9600);
Serial.print("Escribe un numero\n");
}
void loop() {
if(Serial.available()>0) {
int x=Serial.parseInt();
Serial.println(x);
long int resultado = factorial(x);
Serial.println(resultado);
Serial.print("\nEscribe otro numero:\n");
} }
long int factorial(long int y) {
long int f=1;
for(int i=1;i<=y;i++) {
f=f*i;
}
return f;
}