Cesbol Ingeniería
PROGRAMACION C/C++
Instrucciones de control para el flujo del programa, todo lenguaje de programación tiene
sus propias instrucciones, pero son similares.
Lenguaje C/C++ es un compilador amplio con varias instrucciones que se usa desde hace
varios años en el caso del Arduino tenemos limitadas algunas de las instrucciones.
Lenguaje C: permite crear estructuras, uniones y punteros para el manejo de librerías
(*.c)
Lenguaje C/C++: permite la creación de clases, métodos de herencia, plantillas,
estructuras, uniones, punteros (*.cpp)
Características:
• Al finalizar una línea de código es necesario colocar un ;(punto y coma), que
significa fin de la instrucción, pero hay instrucciones donde no es necesario
colocar(void,if,while,for,switch,do)
• La programación es lineal ósea se ejecuta línea por línea.
• Las instrucciones de control encierran su código entre llaves
If(…….)
{
-----
------
}
• Comentarios (líneas que no se compilan se usa para indicar que se esta realizando
en esa línea de código)
// comenta una línea de código
/* comenta varias líneas de código donde para finalizar se debe colocar */
PROGRAMACION ARDUINO
El compilador de Arduino tiene sus propias librerías que obliga a usar sus funciones y
procedimientos y a usar el lenguaje C/C++ al mismo tiempo.
Esquema Arduino
Void setup()
{
//es lo primero en ejecutarse al encender el Arduino
//solo se ejecuta una vez
//normalmente se coloca la inicialización de pines y librerías
}
OSCAR AIZA – 76206976
[Link]
1
Cesbol Ingeniería
Void loop()
{
//este es el bucle infinito donde el Arduino realiza las tareas que nosotros le
indicamos
//se repite infinitamente al terminar la última línea vuelve al inicio
}
Digital IO
Los números de los pines en Arduino se corresponden directamente con los números de los pines
GPIO del ESP8266. Las funciones pinMode, digitalRead y digitalWrite funciona como de
costumbre, así para leer el GPIO2, llama digitalRead(2).
Los pines digitales 0—15 pueden ser INPUT, OUTPUT o INPUT_PULLUP. El pin 16 puede ser INPUT,
OUTPUT o INPUT_PULLDOWN_16. Al arranque los pines están configurados como INPUT.
Los pines pueden también realizar otras funciones como: Serial, I2C, SPI. Estas funciones se
activan normalmente mediante su correspondiente librería. El siguiente diagrama muestra el
mapeo de pines para el popular módulo ESP-12.
Funciones de los pines
Funciones de los pines
Los pines digitales 6—11 no se muestran en el diagrama porque se utilizan para conectar la
memoria flash en la mayoría de módulos. Al intentar usar estos pines como E/S hará que el
programa falle.
DECLARAR PINES
Es cuando tenemos que indicar el funcionamiento de los pines si van a funcionar como entrada o
salida
La instrucción es:
pinMode(pin,funcion)
FUNCION=OUTPUT =>1
INPUT =>0
EJ) pin 5 salida
pinMode(5,OUTPUT); => pinMode(5,1);
EJ) pin 5 entrada
pinMode(5,INPUT); => pinMode(5,0)
ACTIVAR PINES
Solo funciona si el pin se declaró como salida
La instrucción de Arduino es:
digitalWrite(pin_arduino,estado);
ESTADO= HIGH =>1 (ON->3V,20mA)
LOW =>0 (OFF->0V)
EJ) Encender pin 5
pinMode(5,1);
digitalWrite(5,1);
OSCAR AIZA – 76206976
[Link]
2
Cesbol Ingeniería
EJ) Apagar pin 5
pinMode(5,1);
digitalWrite(5,0);
LEER ESTADO DE LOS PINES
Se puede leer el estado de cualquier pìn no importa como se declaro
La instrucción es:
digitalRead(pin);
devuelve 2 estados HIGH=1
LOW=0
Depende en que estado se quedo el pin(depende del circuito externo)
PULSADORES
Conexión de botones existe 2 formas de conectar los botones
PULLUP
PIN ARDUINO
R1
1k
En este caso el pin tiene un estado alto(3v) por lo que al pin de Arduino le llega
continuamente 3v (1 en digital), entonces al presionar el botón el estado del pin cambia a un
estado bajo (0v, 0 en digital)
La consulta en un lenguaje C/C++ seria
if(digitalRead(pin)==LOW) //LOW=0
{
-------
------
}
PULLDOWN
PIN ARDUINO
R2
1k
En este caso el pin tiene un estado bajo(0v) por lo que al pin de Arduino le llega continuamente 0v
(0 en digital), entonces al presionar el botón el estado del pin cambia a un estado alto (3v, 1 en
digital)
La consulta en un lenguaje C/C++ seria
if(digitalRead(pin)==HIGH) //HIGH=1
{
-------
------
}
OSCAR AIZA – 76206976
[Link]
3