Cov txheej txheem:
- Kauj Ruam 1: Cov ntaub ntawv
- Kauj ruam 2: Conexiones
- Kauj Ruam 3: Código Y Uso De Librerías
- Kauj Ruam 4: Funcionando Y Adicionales
Video: C/C ++ En Arduino: Uso De Librerías Y Objetos: 4 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
Las posibilidades de Arduino se puede extender usando librerías. Las librerías ua pov thawj funcionalidad ntxiv, en este instructable, para poder utilizar una pantalla OLED. Acá se utilizan 3 librerías, una para conexión digital I2C, otra para utilizar la pantalla OLED, y la tercera para crear gráficos en la pantalla.
Una de las librerías nos permite crear un objeto tipo pantalla, con la cual podemos controlar la pantalla OLED en nuestro código. Un objeto en C ++ (C orientado a objetos), es una estructura más grande que una variable (por así decirlo) que tiene propiedades y funciones propias. Lub ntsiab lus tseem ceeb tshaj plaws.
Para incorporar una librería al ambiente de Arduino IDE, pueden seguir estas instrucciones de Arduino. Para usarla en una porción de código, estas se llaman al inicio del código, de la siguiente manera con la directiva #suav nrog:
#suav nrog <nombreLibreria.h>
Esto lo veremos en detalle en este qhia tau
Kauj Ruam 1: Cov ntaub ntawv
Los materiales son pocos:
- Arduino UAS
- Pantalla OLED (hauv Costa Rica)
- Cov kab
- Brearboard
Kauj ruam 2: Conexiones
El OLED display se conecta como se indica en las fotos:
- OLED vcc - Arduino 3.3V (aunque esta conexión no hace falta)
- OLED gnd - Arduino GND
- OLED cs - Arduino GND
- OLED res - Arduino tus pin 4
- OLED c/s - Arduino GND
- OLED sda - Arduino SDA (tus pin A4, lossis tus pin SDA)
- OLED SCL - Arduino SCL (tus pin A5, lossis tus pin SCL)
Tener cuidado de que el vcc se conecta a 3.3v. Aunque extrañamente, por lo menos para la OLED que que está en la foto, pareciera no se importante esta conexión
Kauj Ruam 3: Código Y Uso De Librerías
Cargar librerías
En este proyecto se utilizan varias librerías. Como se indicó anteriormente y se ve en la fotografía, las librerías se incorporan al inicio del código. En esta caso se agregan 3 librerías en las líneas 4 a 6:
#suav nrog
#suav nrog
#suav nrog
La librería Wire.h, es una librería nativa, es decir, viene como parte del paquete de Arduino IDE y no hay que instalar nada adicional. Los ntawm otro lado, las librerías Adafruit_GFX.h y Adafruit_SSD1306.h, deben ser instaladas. Par instalarlas, solamente descargarlas de Adafruit GFX y Adafruit SDD1306, y seguir las instrucciones acá.
Librería Hlau.h
Esta librería permite comunicación I2C. El acrónimo I2C, viene de Inter-Integrated Communication, y permite la communicación digital del arduino que es "master" con varios sensores o componentes digitales de forma simultánea. Tsis yog txhua tus siv cov khoom lag luam los ntawm SDA y SCL en el Arduino para conectar con la pantalla OLED. Nyob rau hauv qhov chaw sparkfun explica bien que es I2C. Para que funcione entonces la pantalla se necesita primero cargar esa librería.
Librería Adafruit_SDD1306.h
Esta librería permite conectar y hacer funcionar la pantalla OLED a través del Arduino. AL usarla, creamos un objeto SDD1306 que nos permite utilizar la pantalla fácilmente, eso lo veremos en la siguiente sección.
Librería Adafruit_GFX.h
Esta librería nos permite dibujar figuras geométricas, escribir textos y utilizar todas las posibilidades gráficas de la pantalla OLED. Qhov kawg ntawm kev qhia ua hago un listado de algunas de las funciones que se pueden utilizar con esta librería y que transforman la pantalla OLED en una pantalla de múltiples propósitos.
Instanciación de objeto
Después de declarar todas las librerías, en la línea 10 del código se declara un objeto de tipo SDD1306 que lo llamamos "zaub". Al declararlo, debemos indicar cual es el pin de reset, en este caso el pin 4:
SSD1306 zaub (4);
Ib feem ntawm este punto, ya se crea un objeto tipo SSD1306, y podemos accesar a todas las funciones del objeto escribiendo el identificador del objeto y luego un punto con la propiedad o función que deseamos. Así por ejemplo las líneas 13 y 14, display.begin (SSD1306_SWITCHCAPVCC, 0x3c); display.clearDisplay ();
La primera inicializa la pantalla y los argumentos "SSD1306_SWITCHCAPVCC" y "0x3c", tus tub los que se ocupan para este modelo de pantalla OLED (puede cambiar para otras pantallas, pero el fabicante indica lo que hay que usar acá). La línea display.clearDisplay (), lo que hace es limpiar cualquier cosa que esté mostrando la pantalla.
Lub ntsiab lus
Hauv kab lus 8, nws tau tshaj tawm ib qho kev hloov pauv tsis sib xws nkag mus rau hauv "circleSize" y se inicializa en 1, int circleSize = 1;
Esta la vamos a utilizar para incrementar el diámetro del círculo que dibujaremos.
De las líneas 19 a 22, en la sección loop, lo que hacemos es dibujar un círculo de colour blanco (WHITE) en la posición x = 62 y y = 32, es decir, en la mitad de la pantalla, con radio circleSize:
display.drawCircle (64, 32, circleSize, WHITE); display.display ();
La instrucción display.display () lo que hace es dibujar el círculo que indicamos en la pantalla.
Luego incrementamos circleSize en 2 unidades:
qhov loj+= 2;
Vean que acá utilizamos la notación "+=", este es una forma corta de escribir, CircleSize = circleSize + 2;
Ua raws li cov lus pom zoo.
Yos os es todo.
Kauj Ruam 4: Funcionando Y Adicionales
Cargar el código en el Arduino y listo. Verán un círculo que se dibuja con radio creciente.
Librería Adafruit_GFX.h
Esta librería tiene una serie de comandos para dibujar en la pantalla. En este sitio de adafruit, piav qhia algunas de sus funciones. Cov tshuaj tiv thaiv kab mob rau cov menyuam yaus rau cov menyuam yaus:
- drawLine (), tso cai dibujar líneas entre dos puntos, los ntawm ejemplo drawLine (0, 0, 10, 10)
- drawRect (), es para dibujar rectángulos. p.e ua. drawRect (10, 15, 10, 10, WHITE), dibuja un rectángulo en posición x = 10 y y = 15, de tamaño 10 y xim blanco
- fillRect () cov. Es igual al anterior pero el rectángulo es relleno
- drawCircle (). nyob rau hauv qhov kev txiav txim, como thiab el código que estamos utilizando. fillCircle (), ua li no kom zoo dua qub
- drawTrangle (). Dibuja triángulos, para ello hay que indicar tres puntos en la pantalla.
- Rau cov ntawv nyeem, zoo li cas siv cov kev sib txawv comandos. Primero localizarlo con setCursor (), luego se escriben con println ().
Para ver las funciones en uso, pueden cargar el código de ejemplo que viene con la librería.