Arduino
Arduino
Arduino
OPEN HARDWARE
OPEN HARDWARE
El hardware libre ofrece las mismas libertades que el
software libre, pero aplicadas a los planos del hardware.
ORDENADORES DE PLACA
ÚNICA (SBC)
ORDENADORES SBC
• Bajo consumo
• Mínimo espacio
• Poca emisión térmica
• Fácil integración con otros componentes
eléctricos/electrónicos y mecánicos
• Utilización de estándares de comunicación
• Bajo costo
ORDENADORES SBC
Ejemplos de aplicaciones:
ARDUINO
ARDUINO
Es una plataforma de
hardware libre, basada en
una placa con un
microcontrolador y un entorno
de desarrollo diseñado para
facilitar el uso de la
electrónica en proyectos
multidisciplinares.
ARDUINO
ARQUITECTURA Y
CARACTERÍSTICAS TÉCNICAS DE
ARDUINO
Arquitectura y características
técnicas de Arduino
Arquitectura y características
técnicas de Arduino
Arquitectura y características
técnicas de Arduino
Si no se termina una
instrucción con punto y coma
“;”, el programa indicará un
error en la línea
correspondiente a la
instrucción.
BLOQUE DE COMENTARIOS:
ASIGNACIONES COMPUESTAS:
Combinan una operación aritmética con una variable asignada.
Normalmente se utilizan en bucles.
OPERADORES DE COMPARACIÓN:
• Wire.onRequest(sendData)
•Ejecuta la función sendData que envía el mensaje mediante
•Wire.write(char *msg);
Wire.begin(2); //iniciamos el esclavo
Wire.onRequest(sendData); //activa el evento sendData
void sendData()
{
while(Wire.available())
Wire.write(msg); //enviamos el mensaje
}
BUS I2C
• Wire.onReceive(receiveData);
•Ejecuta la función receiveData que recibe el mensaje mediante
•Wire.read();
• Wire.Write(char *cadena)
•Envía por el BUS I2C una cadena de caracteres al esclavo
especificado. Se utiliza así:
Ejemplo:
FUNCIONES
Ejemplo de construcción de una función:
La siguiente función devolverá un número entero, se le
asignará el nombre delayVal(). La justificación de su
existencia, es que lee un valor analógico con resolución de
10 bit´s (0 a 1023), y lo transforma en un número entero
de 8 bit´s (0 a 255), dividiendo en 4 al primero. Finalmente
se devuelve el valor “v” como número entero y se retorna
al programa principal.
PROGRAMACIÓN C.
VARIABLES
VARIABLES
Espacio reservado en memoria cuyo contenido puede
variar a lo largo de la ejecución del algoritmo.
• int temperatura;
ASIGNACIÓN DE UNA
VARIABLE
significa dar un valor a esa variable y se hace de la siguiente
manera:
nombre de la variable = valor de la variable
• temperatura = 25;
//asignaciones temperatura = 25 + 2;
Temperatura Anterior = temperatura;
temperaturaAnterior = temperaturaAnterior + 1;
PROGRAMACIÓN C
VARIABLES
Tipos básicos de variables numéricas:
Ejemplos:
boolean bVarT = true;
boolean bVarT = 1;
• Ejemplos:
char nombreUsuario[10] = “John Smith”
int edades[4] = {23,56,67,35}
boolean casado[4]={verdadero, falso, falso, verdadero}
c1= ‘a’;
c1= c1 + 1 //¿Cuanto vale c1 ahora?
PROGRAMACIÓN C
VARIABLES
Ejemplos de asignaciones con cadenas:
char otraCadena[24];
sprintf(otraCadena,cadena); //otraCadena vale “Esto es
una Cadena de 24”
//asignaciones a1 = a1+ i;
e1=enteros[i] + a1;
int a=5;
if (a>0) a=a+1;
else a=0;
PROGRAMACIÓN C
SENTENCIAS Y BLOQUES
Bloque: Conjunto de sentencias simples que forman una
unidad. Se utilizan llaves para acotar un bloque.
Los bloque se pueden anidar.
Ejemplo de bloques y sentencias.
int a=0;
int b=0;
if (a>0) //inicio sentencia
• {//inicio del bloque
a=a+1;
b=a;
}//fin del bloque
• else a=0; //fin de sentencia
PROGRAMACIÓN C.
SENTENCIAS
Sentencia condicional: Ejecuta una “sentencia” (simple o
bloque) solo sí la “condición” es cierta:
if ( condición ) sentencia o bloque
else
sentencia o bloque
Si es falsa se ejecuta el else
Ejemplo if…else:
if ( x==1 )
Serial.println (“la
variable x vale uno”);
else
Serial.println (“la
variable x no vale
uno”);
PROGRAMACIÓN C.
SENTENCIAS
Ejemplo if…else anidado, notar el uso de bloques:
int x=50;
int edad=0;
if ( x<0 ) Serial.println (“la variable x es negativa”);
else
{
if ( x>=0 && x<=10 )
{
Serial.println (“la variable x está entre 0 y 10”);
edad = x;
}
else
Serial.println (“la variable vale más de 10”);
}
PROGRAMACIÓN C.
SENTENCIAS
Instrucción de ciclo While
Ejecuta una “sentencia” varias veces. La ”sentencia” se ejecuta
una y otra vez mientras la ”condición” sea cierta.
while ( condición )
sentencia
Ejemplo while:
int j=0;
while ( j < 10 )
{
Serial.println (j);
j++; //equivalente a j=j+1
}
PROGRAMACIÓN C.
SENTENCIAS
Sentencia bucle For
while ( condición )
sentencia
PROGRAMACIÓN C.
SENTENCIAS
Ejemplo while:
int j=0;
while ( j < 10 )
{
Serial.println ( j );
j++; //es lo mismo que j=j+1
}
PROGRAMACIÓN C.
SENTENCIAS
Bucle do…while
do
{
sentencia
} while ( condición );
Ejemplo while:
int j=0; do
{
Serial.println ( j );
j++; //es lo mismo que
j=j+1
} while (j < 10);
PROGRAMACIÓN C.
VARIABLES
Variables globales:
Son variables que tienen como ámbito todo el programa:
funciones, loop, procedimientos. Pueden leerse y escribirse
desde cualquier parte del programa.
Se declaran al comenzar el programa, no deben estar incluidas
en ninguna función o procedimiento.
Variables locales:
Son variables que tienen como ámbito el bloque donde se
definen. Pueden leerse y escribirse solo en el bloque donde
se definen.
Pueden declararse en cualquier línea del programa pero se
aconseja declararlas al comenzar un bloque.
Float result=0; //variable global, valida en todo el programa
void loop()
{
divF(5.0,3.0)
}
void divF(float x, float y)
{
int error=0; //variable local, valida en la funcion divF
if (y!=0)
{
char msg[2]={‘O’,’K’} //variable global, valida solo en el
bloque error=0;
result = x / y;
Serial.println(msg);
}
else error=1;
Serial.println (error);
}
LDR
SEÑALES DE CONTROL DE
POTENCIA PWM
PWM (Pulse Width Modulate): Modulación por ancho de
pulso. Se utiliza para regular sistemas de potencia
(mayoritariamente motores).
Es un tren de pulsos de cuya duración (a nivel alto)
respecto la señal GND es regulable (duty cycle).