Inhoudsopgave:

C/C++ En Arduino: Gebruik De Librerías Y Objetos - Ajarnpa
C/C++ En Arduino: Gebruik De Librerías Y Objetos - Ajarnpa

Video: C/C++ En Arduino: Gebruik De Librerías Y Objetos - Ajarnpa

Video: C/C++ En Arduino: Gebruik De Librerías Y Objetos - Ajarnpa
Video: Programación Orientada a Objetos con Arduino | C++ 2024, Juli-
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 bewezen funcionalidad extra, en este instructable, para poder utilizar un pantalla OLED. Maak gebruik van 3 bibliotheken, maak gebruik van digitale I2C, meer gebruik van de pantalla OLED, en nog veel meer voor het maken van afbeeldingen en de pantalla.

U kunt alle bibliotheken niet gebruiken om uw eigen producten te maken die u kunt gebruiken, met de mogelijkheid om de pantalla te controleren OLED en nuestro código. Un objeto en C++ (C orientado a objetos), es una estructura más grande que una variable (door así decirlo) que tiene propiedades y funciones propias. Usándolo quedará más claro.

Voor het opnemen van een bibliotheek in de omgeving van Arduino IDE, gevolgd door instructies voor Arduino. Para usarla en una porción de código, estas se llaman al inicio del código, de la sigguiente manera con la directiva #include:

#include < nombreLibreria.h >

Esto lo veremos en details en este instructable

Stap 1: Materialen

Materialen
Materialen
Materialen
Materialen

Los materiales zoon pocos:

  1. Arduino UNO
  2. Pantalla OLED (en Costa Rica)
  3. Kabels
  4. Breinboard

Stap 2: Conexiones

Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones

El OLED-display is aangesloten op indica en foto's:

  1. OLED vcc - Arduino 3.3V
  2. OLED gnd - 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, o el pin SDA)
  7. OLED scl - Arduino SCL (pin A5, o el pin SCL)

Tener cuidado de que el vcc se conecta a 3.3v. Meer informatie over de OLED-selectie en foto's, die niet belangrijk zijn voor de samenwerking

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

Código Y Uso De Librerías
Código Y Uso De Librerías

Cargar bibliotheken

En este proyecto se utilizan varias librerías. Kom meer te weten over de vorige en de fotografia, 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:

#erbij betrekken

#erbij betrekken

#erbij betrekken

La librería Wire.h, es una librería nativa, es decir, viene como parte del paquete de Arduino IDE en geen hooi que installatie nada adicional. Door otro lado, las librerías Adafruit_GFX.h y Adafruit_SSD1306.h, deben ser instaladas. Par geïnstalleerde, solamente descargarlas de Adafruit GFX en Adafruit SDD1306, en seguir las instrucciones acá.

Librería Wire.h

Esta librería permite comunicación I2C. De acroniem I2C, de inter-geïntegreerde communicatie, en de digitale communicatie van de "master" met verschillende sensoren en digitale componenten van gelijktijdige communicatie. De allí que utilizamos los pines SDA en SCL en Arduino voor het aansluiten op de pantalla OLED. En este sitio sparkfun explica bien que es I2C. Para que funcione entonces la pantalla se necesita primero cargar esa librería.

Bibliotheek Adafruit_SDD1306.h

Het is mogelijk om toegang te krijgen tot het functioneren van de pantalla OLED en de Arduino. AL usarla, creamos un objeto SDD1306 que nos permite utilizar la pantalla fácilmente, eso lo veremos en la siguiente sección.

Bibliotheek Adafruit_GFX.h

Dit is een bibliothecaris die de mogelijkheid biedt om geometrisch, escribir textos y utilizar todas las posibilidades de la pantalla OLED. Alle definitieve instructies voor het maken van een lijst van functies die kunnen worden gebruikt voor het gebruik van de bibliotheek en het transformeren van de pantalla OLED en van de meervoudige propósitos.

Instanciación de objeto

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

SSD1306-display(4);

Een partir de este pointo, ya creat un objeto tipo SSD1306, y podemos access a todas las escribiendo el identificador de objeto y luego un punto con la propiedad en función que deseamos. Así por ejemplo las líneas 13 en 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 ac que usar ac). La line display.clearDisplay(), zoek naar een limpiar cualquier cosa que esté mostrando la pantalla.

Dibujando algo

En la linea 8, se declara una variable tipo entero llamada "circleSize" y se inicializa en 1, int cirkelSize = 1;

U kunt een gebruiksvoorwerp maken voor de incrementele diámetro del círculo que dibujaremos.

De las lijn 19 a 22, en de tweede loop, zie de cirkel van de kleur blanco (WIT) en de positie x = 62 y y=32, en de andere kant van de pantalla, met radiocirkelGrootte:

display.drawCircle(64, 32, circleSize, WIT);display.display();

La instrucción display.display() kunt u zien hoe u deze kunt zien en hoe u de indicamos van de pantalla kunt zien.

Luego incrementamos circleMaat en 2 unidades:

cirkelSize+=2;

Vean que acá utilizamos la notación "+=", wordt beschouwd als een forma corta de escribir, circleSize=circleSize + 2;

Que sería exactamente lo mismo.

Yes es todo.

Stap 4: Funcionando Y Adicionales

Image
Image

Cargar el código en el Arduino en listo. Veran un círculo que se dibuja con radio creciente.

Bibliotheek Adafruit_GFX.h

Esta librería tiene un 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:

  1. drawLine(), permitte dibujar lineas entre dos puntos, door ejemplo drawLine(0, 0, 10, 10)
  2. drawRect(), en voor dibujar rectángulos. bijv. 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. fillRect(). Es igual al anterior pero el rectángulo es relleno
  4. tekenCirkel(). 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. 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.