Taula de continguts:

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

Vídeo: C / C ++ En Arduino: Uso De Librerías Y Objetos: 4 Steps

Vídeo: C / C ++ En Arduino: Uso De Librerías Y Objetos: 4 Steps
Vídeo: Crea tus propias librerías para Arduino | C++ 2024, Juliol
Anonim
C / C ++ En Arduino: Uso De Librerías Y Objetos
C / C ++ En Arduino: Uso De Librerías Y Objetos

Les possibilitats d'Arduino es poden estendre utilitzant biblioteques. Les biblioteques demostren una funcionalitat addicional, és instructiu, per poder utilitzar una pantalla OLED. Podeu utilitzar 3 biblioteques, una per a connexió digital I2C, una altra per utilitzar la pantalla OLED, i la tercera per crear gràfics a la pantalla.

Una de les biblioteques ens permet crear un objecte tipus de pantalla, amb el que podem controlar la pantalla OLED en el nostre codi. Un objecte en C ++ (C orientat a objectes), és una estructura més gran que una variable (per així dir-ho) que té propietats i funcions propies. Usandolo quedarà més clar.

Per incorporar una biblioteca a l'ambient d'Arduino IDE, poden seguir aquestes instruccions d'Arduino. Per utilitzar-la en una porció de codi, es llaman al començament del codi, de la següent manera amb la directiva #include:

#include <nombreLibreria.h>

Esto lo veremos en detalle en este instructable

Pas 1: materials

Materials
Materials
Materials
Materials

Los materials son son pocos:

  1. Arduino UNO
  2. Pantalla OLED (a Costa Rica)
  3. Cables
  4. Tauler de suport

Pas 2: Connexions

Connexions
Connexions
Connexions
Connexions
Connexions
Connexions

La pantalla OLED es connecta com s'indica a les fotos:

  1. OLED vcc - Arduino 3.3V (encara que aquesta connexió no fa falta)
  2. OLED gnd - Arduino GND
  3. OLED cs - Arduino GND
  4. Res OLED: pin 4 d'Arduino
  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. Aunque extrañamente, por lo menos para el OLED que está en la foto, no es considera important aquesta connexió

Pas 3: Codi I Ús de Llibres

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

Carregar les biblioteques

En aquest projecte s’utilitzen diverses biblioteques. Com s’indica anteriorment i ve a la fotografia, les biblioteques s’incorporen a l’inici del codi. En aquest cas s’acorden 3 llibres a les línies 4 a 6:

#incloure

#incloure

#incloure

La biblioteca Wire.h, és una biblioteca natural, és dir, ve com a part del paquet d'Arduino IDE i no hi ha que instal·lar res addicional. Per un altre costat, les biblioteques Adafruit_GFX.h i Adafruit_SSD1306.h, han de ser instal·lades. Per instal·lar-les, solament descarregar-les d'Adafruit GFX i Adafruit SDD1306, i seguirà les instruccions acà.

Llibreria Wire.h

Aquesta biblioteca permet la comunicació I2C. L'acrònim I2C, ve de Inter-Integrated Communication, i permet la comunicació digital de l'arduino que és "master" amb diversos sensors o components digitals de forma simultània. De tots els que utilitzem els pins SDA i SCL en l'Arduino per connectar amb la pantalla OLED. En aquest lloc sparkfun explica bé que és I2C. Per a què funcioni llavors la pantalla es necessita primer cargar aquesta bibliografia.

Llibreria Adafruit_SDD1306.h

Aquesta biblioteca permet connectar-se i fer funcionar la pantalla OLED a través de l’Arduino. AL usarla, creamos un objecte SDD1306 que ens permet utilitzar la pantalla fàcilment, això ho veurem en la següent secció.

Llibreria Adafruit_GFX.h

Aquesta biblioteca no ens permet dibuixar figures geomètriques, escriure textos i utilitzar totes les possibilitats gràfiques de la pantalla OLED. Al final d’aquest instructable ha tingut un llistat d’algunes de les funcions que es poden utilitzar amb aquesta biblioteca i que transformen la pantalla OLED en una pantalla de múltiples propòsits.

Instànciació d’objecte

Després de declarar totes les biblioteques, en la línia 10 del codi es declara un objecte de tipus SDD1306 que els anomenem "display". Al declararlo, debemos indicar cual es el pin de reset, en aquest cas el pin 4:

Pantalla SSD1306 (4);

A partir d’aquest punt, ja es crea un objecte tipus SSD1306, i podem accedir a totes les funcions de l’objecte escrivint l’identificador de l’objecte i després un punt amb la propietat o funció que desitgem. Així per exemple les línies 13 i 14, display.begin (SSD1306_SWITCHCAPVCC, 0x3c); display.clearDisplay ();

La primera inicialització de la pantalla i els arguments "SSD1306_SWITCHCAPVCC" i "0x3c", son els que s'ocupen per aquest model de pantalla OLED (pot canviar per a altres pantalles, però el fabulós indica el que hi ha que utilitzar acà). La línia display.clearDisplay (), el que fa netejar qualsevol cosa que estigui mostrant la pantalla.

Dibujando algo

En la línia 8, es declara un tipus variable anomenat "circleSize" i inicialment en 1, int CircleSize = 1;

Aquesta la vamos a utilitzar per incrementar el diàmetre del cercle que dibuixem.

De les línies 19 a 22, a la secció loop, el que fem és dibuixar un cercle de color blanc (WHITE) a la posició x = 62 y y = 32, és dir, a la mitja de la pantalla, amb radio circleSize:

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

La instrucció display.display () el que fa dibuixa el cercle que indiquem a la pantalla.

Luego incrementa el cercle en dues unitats:

circleSize + = 2;

Veu que us farem servir la notació "+ =", aquesta és una forma corta d'escriure, circleSize = mida de cercle + 2;

Que seria exactament el mateix.

Y esos es todo.

Pas 4: Funcionament i addicionals

Image
Image

Carregar el codi en el Arduino i llest. Verán un círculo que se dibuja con radio creciente.

Llibreria Adafruit_GFX.h

Aquesta llibreria té una sèrie de comandaments per dibuixar a la pantalla. En aquest lloc d’adafruit, explica algunes de les seves funcions. Acudeu a mencionar algunes per a que el jutge amb el codi:

  1. drawLine (), permet dibuixar línies entre dos punts, per exemple drawLine (0, 0, 10, 10)
  2. drawRect (), és per dibuixar rectànguls. p.e. drawRect (10, 15, 10, 10, WHITE), dibuixa un rectangle en posició x = 10 y y = 15, de mida 10 i color blanc
  3. fillRect (). Es igual al anterior però el rectángulo es relleno
  4. drawCircle (). dibuixa un cercle, com en el codi que estem utilitzant. fillCircle (), fa el mateix però relleno
  5. drawTrangle (). Dibuixa triànguls, per a ell que indica tres punts a la pantalla.
  6. Per a textos, hi ha que utilitzar diversos comandaments. Primer localitzar-se amb setCursor (), després s’escriu amb println ().

Per veure les funcions en ús, poden cargar el codi d’exemple que ve amb la bibliografia.