Spisu treści:

C/C++ En Arduino: Uso De Librerías Y Objetos: 4 kroki
C/C++ En Arduino: Uso De Librerías Y Objetos: 4 kroki

Wideo: C/C++ En Arduino: Uso De Librerías Y Objetos: 4 kroki

Wideo: C/C++ En Arduino: Uso De Librerías Y Objetos: 4 kroki
Wideo: Introducción a programación en C/C++ para arduino || Salidas digitales. 2024, Lipiec
Anonim
C/C++ En Arduino: Uso De Librerías Y Objetos
C/C++ En Arduino: Uso De Librerías Y Objetos

Las posibilidades de Arduino se puede extender usando librerías. Las librerías okazały się dodatkowe funcionalidad, 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 graficos en la pantalla.

Una de las librerías nos allowe 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 zmienna (por así decirlo) que tiene propiedades y funciones propias. Usándolo quedará más claro.

Do włączenia biblioteki al ambiente de Arduino IDE, aby uzyskać dostęp do instrukcji obsługi 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 instructable

Krok 1: Materiały

Materiały
Materiały
Materiały
Materiały

Los materiales son pocos:

  1. Arduino UNO
  2. Pantalla OLED (w Kostaryce)
  3. Kable
  4. Tablica na klucze

Krok 2: Conexiones

Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones

El OLED display se conecta como se indica en las fotos:

  1. OLED vcc - Arduino 3,3 V (niepowtarzalne połączenie bez hace falta)
  2. GND OLED - Arduino GND
  3. OLED cs - Arduino GND
  4. OLED res - Arduino pin 4
  5. OLED c/s - Arduino GND
  6. OLED sda - Arduino SDA (pin A4, lub pin SDA)
  7. OLED scl - Arduino SCL (pin A5, oel pin SCL)

Tener cuidado de que el vcc se conecta a 3.3v. Aunque extrañamente, por lo menos para la OLED que está en la foto, pareciera no se Importante esta conexión

Krok 3: Código Y Uso De Librerías

Código Y Uso De Librerías
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:

#włączać

#włączać

#włączać

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. Por 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á.

Libreria Wire.h

Esta librería allowe comunicación I2C. El acrónimo I2C, viene de Inter-Integrated Communication, y pozwala na komunikację cyfrową del arduino que es „master” con varios sensores o componentes digitales de forma simultánea. De allí que que utilizamos los pines SDA i SCL en el Arduino do podłączenia z panelem OLED. En este sitio sparkfun explica bien que es I2C. Para que funcione entonces la pantalla se necesita primero cargar esa librería.

Libreria Adafruit_SDD1306.h

Esta librería allowe conectar y hacer funcionar la pantalla OLED a través del Arduino. AL usarla, creamos un objeto SDD1306 que nos allowe utilizar la pantalla fácilmente, eso lo veremos en la siguiente sección.

Libreria Adafruit_GFX.h

Esta librería nos allowe dibujar figuras geométricas, escribir textos y utilizar todas las posibilidades gráficas de la pantalla OLED. Al final de este instructable hago una listado de algunas de las funciones que se pueden utilizar con esta libreria y que transforman la pantalla OLED en una pantalla de multipropositos.

Instanciación de objeto

Después de declarar todas las librerías, en la linea 10 del código se declara un objeto de tipo SDD1306 que lo llamamos „display”. Al declararlo, debemos indicar cual es el pin de reset, en este caso el pin 4:

wyświetlacz SSD1306(4);

A 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 lineas 13 y 14, display.begin(SSD1306_SWITCHCAPVCC, 0x3c); display.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 linea display.clearDisplay(), lo que hace es limpiar cualquier cosa que esté mostrando la pantalla.

Algoryt Dibujando

En la linea 8, se declara una zmienna tipo entero llamada "circleSize" y se inicializa en 1, int rozmiar koła = 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 (BIAŁY) en la posición x = 62 y y=32, es decir, en la mitad de la pantalla, con radio circleRozmiar:

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:

kołoRozmiar+=2;

Vean que acá utilizamos la notación "+=", este es una forma corta de escribir, CircleSize=circleSize + 2;

Que sería perfectamente lo mismo.

Tak jest do zrobienia.

Krok 4: Funcionando Y Adicionales

Image
Image

Cargar el código en el Arduino y listo. Verán un círculo que se dibuja con radio creciente.

Libreria Adafruit_GFX.h

Esta librería tiene una serie de comandos para dibujar pl la pantalla. En este sitio de adafruit, explica algunas de sus funciones. Acá voy a mencionar algunas para que jueguen con el código:

  1. drawLine(), pozwala na wyświetlanie linii w punktach, za pomocą ejemplo drawLine(0, 0, 10, 10)
  2. drawRect(), es para dibujar rectángulos. t.j. 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
  3. wypełnićRect(). Es igual al anterior pero el rectángulo es relleno
  4. narysujOkrąg(). dibuja un círculo, como en el código que estamos utilizando. fillCircle(), hace lo mismo pero relleno
  5. DrawTrangle(). Dibuja triángulos, para ello hay que indicar tres puntos en la pantalla.
  6. Para textos, hay que utilizar varios comandos. Najpierw lokalizuj za pomocą setCursor(), zapisz go za pomocą println().

Para ver las funciones en uso, pueden cargar el código de ejemplo que viene con la librería.