Daftar Isi:
- Langkah 1: Materi
- Langkah 2: Conexiones
- Langkah 3: Código Y Uso De Librerías
- Langkah 4: Funcionando Y Adicionales
Video: C/C++ En Arduino: Uso De Librerías Y Objek: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Las posibilidades de Arduino se puede extender usando librerias. Las librerías provenen funcionalidad extra, en este instructable, para poder utilizar una pantalla OLED. Tersedia 3 perpustakaan, 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í desirlo) que tiene propiedades y funciones propias. Usándolo quedará más claro.
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 #include:
#include < nombreLibreria.h >
Esto lo veremos en detalle en este dapat diinstruksikan
Langkah 1: Materi
Los materiales son pocos:
- Arduino UNO
- Pantalla OLED (di Kosta Rika)
- Kabel
- papan tempat memotong roti
Langkah 2: Conexiones
Tampilan El OLED 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
- Res OLED - Pin Arduino 4
- OLED c/s - Arduino GND
- OLED sda - Arduino SDA (pin A4, atau pin SDA)
- OLED scl - Arduino SCL (pin A5, pin lain SCL)
Tener cuidado de que el vcc terhubung ke 3.3v. Aunque extrañamente, por lo menos para la OLED que está en la foto, pareciera no se importante esta conexión
Langkah 3: Código Y Uso De Librerías
Pembebasan mobil
En este proyecto se utilizan varias librerias. Como se indicó anteriormente y se ve en la fotografía, las librerias se incorporan al inicio del código. En esta caso se agregan 3 perpustakaan en las líneas 4 a 6:
#termasuk
#termasuk
#termasuk
La libreria Wire.h, es una libreria nativa, es decir, viene como parte del paquete de Arduino IDE y no hay que instalar nada adicional. Oleh 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 Wire.h
Esta libreria 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. Untuk semua kegunaan los pines SDA dan SCL en el Arduino untuk conectar con la pantalla OLED. En este sitio sparkfun explica bien que es I2C. Para que funcione entonces la pantalla se necesita primero cargar esa libreria.
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 tidak diizinkan untuk digunakan di semua fasilitas, 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. Al final de este dapat diinstruksikan 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 dari "tampilan". Al declararlo, debemos indicar cual es el pin de reset, en este caso el pin 4:
Layar SSD1306(4);
Sebuah partir de 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); tampilan.clearDisplay();
La primera inicializa la pantalla y los argumentos "SSD1306_SWITCHCAPVCC" y "0x3c", son 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.
Dibujando algo
En la línea 8, se declara una variable tipo entero llamada "circleSize" y se inicializa en 1, int ukuran lingkaran = 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 color blanco (WHITE) en la posición x = 62 y y=32, es decir, en la mitad de la pantalla, con radio circleUkuran:
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:
ukuran lingkaran+=2;
Vean que acá utilizamos la notación "+=", este es una forma corta de escribir, ukuran lingkaran=ukuran lingkaran + 2;
Que seria exactamente lo mismo.
Anda harus melakukannya.
Langkah 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 libreria tiene una serie de comandos para dibujar en la pantalla. En este sitio de adafruit, explica algunas de sus funciones. Acá voy a mencionar algunas para que jueguen con el código:
- drawLine(), izinkan dibujar líneas entre dos puntos, atau contoh drawLine(0, 0, 10, 10)
- drawRect(), untuk dibujar rectángulos. pe. drawRect(10, 15, 10, 10, WHITE), dibuja un rectángulo en posición x=10 y y=15, de tamaño 10 y color blanco
- isiRect(). Es igual al anterior pero el rectángulo es relleno
- menggambarLingkaran(). dibuja un círculo, como en el código que estamos utilizando. fillCircle(), hace lo mismo pero relleno
- menggambarTrangle(). Dibuja triángulos, para ello hay que indicar tres puntos en la pantalla.
- Para textos, hay que utilizar varios comandos. Primero localizarlo con setCursor(), luego dan escriben con println().
Para ver las funciones en uso, pueden cargar el código de ejemplo que viene con la libreria.