0% encontró este documento útil (0 votos)
187 vistas8 páginas

Arduino

Este documento presenta una guía rápida sobre conceptos básicos de programación en Arduino, incluyendo estructuras de control como if/else y bucles for/while, operadores lógicos y matemáticos, variables de diferentes tipos, funciones digitales y análogas para lectura y escritura de entradas/salidas, y funciones básicas como setup() y loop().

Cargado por

CrisTian
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
187 vistas8 páginas

Arduino

Este documento presenta una guía rápida sobre conceptos básicos de programación en Arduino, incluyendo estructuras de control como if/else y bucles for/while, operadores lógicos y matemáticos, variables de diferentes tipos, funciones digitales y análogas para lectura y escritura de entradas/salidas, y funciones básicas como setup() y loop().

Cargado por

CrisTian
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Usados generalmente dentro del condicional If y sobre el For y

While
MODULO DE MECANICA
== (igual a)
SENSOR DE VELOCIDAD LINEAL
!= (diferente de) < (menor que) > (mayor que)
ANGULAR
ACELERACIN <= (menor o igual) >= (mayor o igual)
DISTANCIA (DISTANCIA)
FUERZA Operadores matemticos
Se aplican al manejo de variables, condicionales y ciclos

TERMODINAMICA If (a == b)
= (asignar)
TEMPERATURA % (mdulo) + (suma) - (resta) * (multiplicacin)
PRESION
/ (divisin)
CAUDAL
Estructuras de control
ELECTRICIDAD Y MAGNETISMO Son instrucciones que nos permiten tomar decisiones y hacer diversas
repeticiones de acuerdo a unos parmetros, dentro de las ms
VOLTAJE importantes podemos destacar:
CORRIENTE If
CAMPO MAGNETICO Switch/case
CAMPO ELECTRICO For
While
HUMEDAD Condicionales
RADIACION If (Si)
ANEMMETRO if (entrada < 500)
{
// accin A
} else
{
// accin B
}
Switch/case (Casos)
switch (var) {
case 1:
// accin A
break;
case 2:
// accin B
Estructuras break;
Son dos funciones principales que debe tener todo programa en default:
Arduino: // accin C
setup(){ }
}
Cdigo de configuracin inicial, solo se ejecuta una vez. Ciclos
Ideales para repetir lo que se encuentre dentro de ellos
loop(){ For (por)
} for( int a=0; a>10; a++ )
Esta funcin se ejecuta luego del setup(), se mantiene ejecutndose {
hasta que se desenergice o desconecte el Arduino. // accin a repetir
}
Variables
Booleano While (mientras)
true false while ( var < 200) {
Boolean encendido=true; // accin a repetir
Entero var++;
Valor entero }
int conta=5;
Carcter
Almacena un ASCII Funciones
char letra=a; Una funcin es un conjunto de lneas de cdigo que realizan una
Operadores booleanos tarea especfica y puede retornar un valor. Las funciones pueden
Usados generalmente dentro del condicional If tomar par-metros que modifiquen su funcionamiento. Las funciones
&& (y) son utilizadas para descomponer gran-des problemas en tareas
simples y para imple-mentar operaciones que son comnmente
|| (o) utilizadas durante un programa y de esta manera reducir la cantidad
de cdigo.
! (negacin)
Cuando una funcin es invocada se le pasa el control a la misma, una
If (a || b) vez que sta finaliz con su tarea el control es devuelto al punto
desde el cual la funcin fue llamada.
Operadores de comparacin Funciones digitales
Orientas a revisar el estado y la configuracin de las entradas y +Operadores bit a bit
salidas digitales - & (bit a bit AND)
- | (bit a bit OR)
pinMode() - ^ (bit a bit XOR)
- ~ (bit a bit NOT)
Permite configurar un pin
- << (a la izquierda BitShift)
pinMode(pin,modo) - >> (a la derecha BitShift)
+Operadores compuestos
pinMode (13,OUTPUT); - + + (incremento)
pinMode (a,INPUT); - -- (decremento)
- + = (compuesto adicin)
- - = (compuesto substraccin)
digitalWrite() - * = (compuesto multiplicacin)
- / = (compuesto divisin)
Escribir un pin digital con 1 0
-& = (compuesto bit a bit AND)
digitalWrite(pin,estado) - | = (compuesto bit a bit OR)

digitalWrite (13,HIGH); VARIABLES


digitalWrite (13,LOW);
+Constantes
digitalRead() - HIGH | LOW
Leer un pin digital (0 1) - INPUT | OUTPUT
digitalRead(pin) - true | false
- Constantes enteras
int a = digitalRead (13);
- Constantes flotante
+Tipos de datos
- void
Funciones anlogas - boolean
- char
- byte
Ideales para la lectura y escritura de valores anlogos - int
- word
analogRead() - long
Leer un valor anlogo 0 a 1023 - unsigned long
analogRead(pin) - float
- double
int a = analogRead (A0); - string - arreglo char
- String - objeto
analogWrite() > PWM - array
Escribir un valor anlogo 0 a 255
analogWrite(pin,valor de PWM) +Utilidades
analogWrite (9, 134); - sizeof()
+Conversin
gua rpida programacin - char()
- byte()
- setup()
- int()
- loop() - word()
+Estructuras de control - long()
- if - float()
- if...else
- for
- switch case
- while +Digital I/O
- do... while - pinMode()
- break - digitalWrite()
- continue - digitalRead()
- return +Analogo I/O
- goto - analogReference()
+Sintaxis - analogRead()
- ; (punto y coma) - analogWrite() - PWM
- { } (llaves) +Avanzadas I/O
- / / (comentario de una sola lnea) - tone()
- / * * / (comentario de varias lneas) - noTone()
- # define - shiftOut()
- # include - shiftIn()
+Operadores matemticos -pulseIn()
- = (operador de asignacin) +Tiempo
- + (suma) - millis()
- - (resta) - micros()
- * (multiplicacin) - delay()
- / (divisin) - delayMicroseconds()
- % (mdulo) +Matemticas
- min()
+Operadores de comparacin - max()
- == (igual que) - abs()
- ! = (diferente de) - constrain()
- < (menor que) - map()
- > (mayor que) - pow()
- <= (menor o igual a) - sqrt()
- >= (mayor o igual a) +Trigonomtricas
+Operadores booleanos - sin()
- && (y) - cos()
- || (o) - tan()
- ! (no)
+Acceso con apuntadores
- * eliminar la referencia del opera-dor +Nmeros aleatorios
- & operador de referencia
- randomSeed() // Fin del programa
- random()
+Bits y Bytes #################################################
- lowByte()
- highByte()
- bitRead()
- bitWrite()
- bitSet()
- bitClear()
- bit()
+Interrupciones externas
- attachInterrupt()
- detachInterrupt()
+Interrupciones
- interrupts()
- noInterrupts()
+Comunicacin
- Serial
- begin()
- end()
- available()
- read()
- peek()
- flush()
- print()
- println()
- write()

- EEPROM - leer y escribir


- Ethernet - conectarse a Internet
- Cristal lquido - control de LCD
- SD - lectura y escritura de tarjetas SD
- Servo - control de servomotores
- SPI - comunicacin por el bus SPI
- Paso a paso - control de motores
- Wire - enviar y recibir datos TWI/I2C
y muchas ms visita

Enciende un LED por un segundo y lo apaga por el


mismo tiempo
*/
//------------------------------------
//Funcin principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino
se inicia
{
pinMode(13,OUTPUT); // Inicializa el pin 13 como una //------------------------------------
salida //Declara puertos de entradas y salidas
} //------------------------------------
//------------------------------------ int pulsador=2; //Pin donde se encuentra el pulsador,
//Funcin cclica entrada
//------------------------------------ int led=13; //Pin donde se encuentra el LED, salida
void loop() // Esta funcin se mantiene ejecutando //------------------------------------
{ // cuando este energizado el Arduino //Funcion principal
digitalWrite(13,HIGH); // Enciende el LED //------------------------------------
delay(1000); // Temporiza un segundo (1s = 1000ms) void setup() // Se ejecuta cada vez que el Arduino
digitalWrite(13,LOW); // Apaga el LED se inicia
delay(1000); // Temporiza un segundo (1s = 1000ms) {
} pinMode(pulsador, INPUT); //Configurar el pulsador como
una entrada
pinMode(led,OUTPUT); //Configurar el LED como una salida
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Condicional para saber estado del pulsador
if (digitalRead(pulsador)==HIGH)
{
//Pulsador oprimido
digitalWrite(led,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led,LOW); //Apaga el LED
}
}
//Fin programa

EJERCICIO 01 La multinacional francesa Flante experta en ma-quinaria


industrial te ha contratado para que auto-matices una mquina cortadora de
papel. La condi-cin principal es que el operario de la mquina cuando vaya a
realizar el corte siempre mantenga las dos manos ocupadas, esta es una regla
de segu-ridad industrial para evitar accidentes. El operario debe oprimir los
dos pulsa-dores uno con cada mano y la cuchilla cortadora debe bajar y hacer
el corte. El siguiente montaje simula el control de la mquina, los dos
pulsadores (S1 y S2) y el LED rojo simula la cuchilla cortadora.

EJERCICIO 02
Tu padre quiere que realices un sistema de iluminacin LED para las escaleras
de la casa. La condicin es que si ests arriba y pulsas a S1 o si ests abajo y
pulsas S2 el LED Rojo se enciende y al dejar de pulsar se apaga. Como gua
de montaje toma la ima-gen anterior.

Lectura serial de una entrada digital


Qu aprendo?
Manejar una entrada digital
Ver datos por la pantalla del computador
Consola serial Lectura serial de una entrada digital
Leer una entrada digital y escribir por consola serial --------------------------------------
Conocimientos previos Leer una entrada digital y mostrar por la pantalla del
computador (consola serial) el estado del pulsador
Seal digital cuando es oprimido
Cosas de Mecatrnica y Tienda de Robtica
Funcin digitalRead() y Se-rial.println() */
Opcin de Consola serial, ver 6F (paso 3) //------------------------------------
//Declara puertos de entradas y salidas
//------------------------------------
int boton=2; //Pin donde se encuentra el pulsador, entrada
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se
inicia
{
//Configuracin
pinMode(boton,INPUT); //Configurar el boton como una
entrada
Serial.begin(9600); //Inicia comunicacin serial
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable entera el valor del boton 0 1
int estado = digitalRead(boton);
//Condicional para saber estado del pulsador
if (estado==1)
{
// Pulsado
Serial.println("Pulsado"); //Imprime en la consola serial
} // "Pulsado"
else
{
// No esta pulsado
Serial.println("NO Pulsado"); //Imprime en la consola
serial
} // "NO Pulsado"
delay(100); //Retardo para la visualizacin de datos en la
consola
}
//Fin programa

TIPS

1 La codificacin binaria es muy importante para transmitir datos


entre dispositivos, son las largas cadenas de 0 y 1, por ejemplo
00011101010101 esto podra ser un mensaje que contiene
informacin referente a una clave personal para acceder a un
edificio. Los nmeros en base 10 se pueden representar como valores
binarios:
2 Para recordar EJERCICIO 4
- Para leer una seal digital usa: digitalRead(numeroPin);
- Para escribir una seal digital usa: digitalWrite(numeroPin, valor); luces navideas moder-nas son las siguientes: mien-tras se mantenga pulsado
- Una salida o entrada digital siempre es HIGH o LOW
S1 una variable entera inicializa-da en 0 se comienza a incre-mentar de 20 en
20, al soltar S1 la variable para de incre-mentarse, cuando se pulse S2 el valor
de la variable se debe cargar a un Hola Mundo del LED, esto quiere decir
Ejercicio 03 Una empresa de gaseosas tiene un sistema con dos que el LED va estar intermitente en intervalos de tiempo iguales al valor de la
sensores, uno de ellos indica si la botella se ha llena-do con el lquido variable. Por consola serial debes ir mostrando el valor de la variable. Para
y el otro sensor indica si la botella ya tiene la tapa. Para este caso que puedas volver la variable a 0 y puedas hacer otra rutina de intermitencia,
simularemos los dos sensores por medio de dos pulsadores (S1 y S2). coloca la condicin de que S1 y S2 se opriman al tiempo, con ello la variable
La rutina se describe de esta manera: si la botella se llena de manera adecuada entera debe volver a 0.
(se debe activar S1 y mostrar por consola Gaseosa llena) luego de ello si
tiene la tapa colocada (se debe activar S2 y mostrar por consola Gaseosa
tapada), al finalizar el proceso se debe encender un LED que indica que el Lectura serial de una entrada
proceso termin bien y adems se debe mostrar un mensaje por la consola
Gaseosa bien empacada. Recuerda que primero se debe activar S1 y luego anloga
S2 para que le proceso sea vlido. Qu aprendo?
Manejar una entrada anloga
Ver datos por la pantalla del computador
Mltiples estados de un poten-cimetro
Leer una entrada anloga
Conocimientos previos
Seal anloga
Funcin analogRead() y Serial.println()
Opcin de Consola serial, ver 6F (paso 3)
//Imprime en la consola serial el valor de la variable
Serial.println(valor);
//Retardo para la visualizacin de datos en la consola
delay(100);
}
//Fin programa

TIPS

Te invitamos a que conozcas algunos tipos de potencimetros

2 Para recordar
- Para leer una seal anloga usa: analogRead(numeroPin);
- Para escribir una seal anloga de PWM usa: analogWrite(numeroPin, valor);
- Una entrada anloga va de 0 o 1023
- Una salida anloga de PWM va de 0 o 255

.EJERCICIO 5

Este reto es sencillo, pero te va a dar una idea de cmo hacer


grandes cosas escribiendo unas pocas lneas de cdigo. Como bien lo
sabes, la lectura de una seal anloga te da un valor de 0 a 1023 (si
tienes alguna duda solo revisa el cdigo de la pgina anterior).
El desafo de este ejercicio consiste en mostrar por la consola serial un
nmero entre 0 y 10, este nmero debe cambiar cuando muevas el
potencimetro. El montaje de este ejercicio usa el mismo Esquema de
conexiones que el expuesto en la pgina 75. Suge-rencia Revisa la funcin
map()

.EJERCICIO 5
en un nmero secreto de 0 a 1023 y gurdalo en una variable entera,
haz un programa para que tu amigo deba mo-ver el potencimetro, si
el nmero que el va generando (mostrar por consola serial el valor de
la lectura del potenci-metro) al girar el potencimetro est 10
nmeros por arriba o 10 nmeros por abajo al nmero que tu
pensaste y confirma con el pulsador S1 que ese es el nmero, el
progra-ma debe mostrar por consola Adivinaste el nmero de lo
contrario Intenta de nuevo.
Este caso podra ser un ejemplo para que lo apliques a una Caja de seguridad,
para que guardes mucho dinero ;)

Lectura serial de entrada anloga


--------------------------------------
Leer una entrada anloga y mostrar por la pantalla del
computador (consola serial) el valor luego de girar
el potencimetro
Cosas de Mecatrnica y Tienda de Robtica
*/
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se
inicia
{
Serial.begin(9600); //Inicia comunicacin serial
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable entera el valor del potencimetro
0 a 1024
int valor= analogRead(A0);
{
Escritura serial digitalWrite(led,HIGH); // Enciende el LED
prendido=true; // Actualiza el estado del LED
Qu aprendo? }
Entrada por consola (teclado) // Si es la letra 'a' y adems el LED est encendido
else if ( (leer=='a') && (prendido==true) )
Variables booleanas
{
Estado de un LED digitalWrite(led,LOW); // Apaga el LED
Escritura serial digital prendido=false; // Actualiza el estado del LED
}
Conocimientos previos }
Seal digital //Fin programa
Funcin digitalWrite() y Serial.read()
Configuracin de una comu-nicacin serial EJERCICIOS
Polaridad de un LED Avisos luminosos S.A. te ha contratado para que realices un programa que tiene
la caracterstica de recibir datos, porque la idea es que el aviso de luces se
ubique en el piso 130 del Edificio Bulli y tu lo puedas controlar desde el piso 1,
as que por cada letra que le escribas por teclado a la Consola serial el
programa debe hacer determinada rutina con tres LEDs, si le escribes:
-Letra A: Prende los tres LED
-Letra B: Prende el LED1 por un segundo y lo apaga, luego prende el LED2 por
un segun-do y lo apaga y finalmente prende el LED3 por un segundo y lo apaga,
y vuelve a comenzar. Esta rutina genera una sensacin de movimiento
-Letra C: Apaga los tres LED

--------------------------------------
Escritura serial
-------------------------------------- EJERCICIO
Consiste en escribir por la pantalla del computador
Tu abuelito tiene un cultivo de grandes y verdes lechugas, este cultivo tiene 3
(consola serial)
aspersores de agua y tu abuelito quiere prender estos aspersores desde su
una letra predeterminada, la primera vez que se escriba
computador solo escribien-do unos valores por teclado, los aspersores tienen
est
un LED se enciende, si se vuelve a escribir por segunda vez un estado digital (Valor 0 es apagado y valor 1 es prendido). Debes reali-zar un
el LED se apaga. programa que lea una cadena de tres valores, para este ejercicio los aspersores
Cosas de Mecatrnica y Tienda de Robtica los vamos a simular con tres LED 1, 2 y 3 por ejemplo:
*/ Si tu abuelito escribe 000 : Todos los aspersores de agua deben estar apagados
//-------------------------------------------------- Si tu abuelito escribe 101 : El aspersor 1 y 3 se prenden pero el dos debe estar
//Declara puertos de entradas y salidas y variables apagado
//-------------------------------------------------- Si tu abuelito escribe 001 : El aspersor 1 y 2 se apagan pero el tres debe estar prendido
int led = 13; //Pin donde se encuentra el LED, salida
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, Encender un LED por PWM
apagado Qu aprendo?
//------------------------------------
//Funcion principal Encender un LED de manera proporcional
//------------------------------------ Apropiar el concepto de PWM
void setup() // Se ejecuta cada vez que el Arduino se
inicia Escribir una salida anloga
{ If/else con operadores lgicos
Serial.begin(9600); //Inicia comunicacin serial Conocimientos previos
pinMode(led, OUTPUT); //Configurar el LED como una salida
} PWM
//------------------------------------ Funcin analogWrite()
//Funcion ciclicla
//------------------------------------ Polaridad de un LED
void loop() // Esta funcion se mantiene ejecutando Incrementar y manipular variables
{ // cuando este energizado el Arduino
//Guardar en una variable el valor de la consola serial
leer=Serial.read();
// Si es la letra 'a' y adems el LED est apagado
if ( (leer=='a') && (prendido==false) )
1 Estos elementos reciben seales de PWM y sirven para:

//Declara puertos de entradas y salidas y variables


//--------------------------------------------------
int brillo = 0; //Variable de brillo inicia en 0
int variacion = 5; //Variable de incremento configurada de
5 en 5
int led = 9; //Pin donde se encuentra el LED, salida
//------------------------------------
//Funcion principal
//------------------------------------
void setup () // Se ejecuta cada vez que el Arduino se
inicia
{
pinMode(led, OUTPUT); //Configurar el LED como una salida
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop () // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
// Escritura analoga (PWM) en el LED escribo el valor de
brillo
analogWrite(led, brillo);
// Incremento la variable brillo de 5 en 5
brillo = brillo + variacion;
// Nota: PWM ----> 0 - 255
// Si el brillo es 0 o 255
if (brillo == 0 || brillo == 255)
variacion = -variacion; //La variacin se vuelve negativa
delay (30); //Tiempo de incremento en el brillo
}
//Fin programa

También podría gustarte