Cuprins:

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

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

Video: C / C ++ En Arduino: Uso De Librerías Y Objetos: 4 Steps
Video: Crea tus propias librerías para Arduino | C++ 2024, Iulie
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 poate extinde folosind libreriile. Librariile dovedite funcționalitate suplimentară, este instructiv, pentru a putea utiliza o ecran OLED. Acasă se utilizează 3 biblioteci, o pentru conexiune digitală I2C, alta pentru utilizarea ecranului OLED, și terța pentru a crea grafice pe ecran.

O bibliotecă ne permite să creăm un obiect tip de ecran, cu care putem controla ecranul OLED în codul nostru. Un obiect în C ++ (C orientat la obiecte), este o structură mai mare decât o variabilă (așa spunând) care are proprietăți și funcții propii. Usándolo va rămâne mai clar.

Pentru a încorpora o bibliotecă la mediu de Arduino IDE, pot urma aceste instrucțiuni de Arduino. Pentru a folosi într-o porțiune de cod, se va lansa la începutul codului, de următoarea manieră cu directiva # include:

#include <nombreLibreria.h>

Esto lo veremos en detalle en este instructable

Pasul 1: Materiale

Materiale
Materiale
Materiale
Materiale

Los materiales son pocos:

  1. Arduino UNO
  2. Pantalla OLED (en Costa Rica)
  3. Cabluri
  4. Brearboard

Pasul 2: Conexiuni

Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones

Afișajul OLED se conectează cum se indică în fotografii:

  1. OLED vcc - Arduino 3.3V (cu toate că această conexiune nu are nevoie)
  2. OLED gnd - Arduino GND
  3. OLED cs - Arduino GND
  4. OLED res - pinul Arduino 4
  5. OLED c / s - Arduino GND
  6. OLED sda - Arduino SDA (pin A4, sau pin SDA)
  7. OLED scl - Arduino SCL (pinul A5, sau pinul SCL)

Tener cuidado de que el vcc se conecta a 3.3v. Aunque extrañamente, por lo less for the OLED that está en la foto, pareciera no se important esta connection

Pasul 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

În acest proiect se utilizează mai multe biblioteci. Como se indicó anterior y se ve en la fotografía, las librerías se încorporează la începutul codului. În acest caz este de acord 3 biblioteci în liniile 4 la 6:

#include

#include

#include

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, trebuie să fie instalate. Se instalează, descarcă singur Adafruit GFX și Adafruit SDD1306, și urmează instrucțiunile acă.

Librería Wire.h

Esta librería permite comunicarea I2C. El acrónimo I2C, vine de la Inter-Integrated Communication, și permite comunicarea digitală a arduino-ului care este "master" cu mai mulți senzori sau componente digitale de formă simultană. De toate acestea, care utilizăm pinii SDA și SCL în Arduino pentru conectarea cu ecranul OLED. În acest site sparkfun explică bine că este I2C. Pentru că funcționează atunci ecranul are nevoie în primul rând de cargar esa librería.

Librería Adafruit_SDD1306.h

Această bibliotecă permite conectarea și funcționarea ecranului OLED prin Arduino. AL utilizala, creamos un obiect SDD1306 că ne permite să utilizăm ecranul ușor, așa că verificăm în următoarea secțiune.

Librería Adafruit_GFX.h

Această bibliotecă ne permite să desenăm figuri geometrice, scrie texte și utilizăm toate posibilitățile grafice ale ecranului OLED. Al final de este instructable are un listat de unele funcții pe care le pot utiliza cu această bibliotecă și care transformă ecranul OLED într-un ecran de mai multe propuneri.

Instanciación de objeto

După ce a declarat toate bibliotecile, în linia 10 a codului se declară un obiect de tip SDD1306 pe care îl numim "display". Al declararlo, debemos indicar cual is the pin de reset, in this case the pin 4:

Afișaj SSD1306 (4);

A partir de acest punct, deja se creează un obiect tip SSD1306, și putem accesa toate funcțiile obiectului scriind identificatorul obiectului și apoi un punct cu proprietatea sau funcția pe care o dezvăluim. Astfel, de exemplu, liniile 13 și 14, display.begin (SSD1306_SWITCHCAPVCC, 0x3c); display.clearDisplay ();

La prima inițializare a ecranului și a argumentelor "SSD1306_SWITCHCAPVCC" y "0x3c", son the care se ocupă pentru acest model de ecran OLED (se poate schimba pentru alte pantaloni, dar el fabicant indică ceea ce trebuie să folosesc). La linia display.clearDisplay (), ceea ce face să curățăm orice lucru care este afișat pe ecran.

Dibujando algo

În linia 8, se declară o variabilă tip entero numit "circleSize" și se inițializează în 1, int circleSize = 1;

Aceasta la vamos a utiliza pentru a incrementa diametrul cercului pe care îl desenăm.

De la liniile 19 la 22, în secțiunea buclă, ceea ce hacemos este desenat un cerc de culoare alb (WHITE) în poziția x = 62 y y = 32, se spune, în mitarea ecranului, cu radio circleSize:

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

La instrucțiuni display.display () ceea ce face este desenul cercului care indică pe ecran.

Luego incrementamos circleSize in 2 unidades:

cerc Dimensiune + = 2;

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

Que sería exactamente lo mismo.

Y esos es todo.

Pasul 4: Funcionando Y Adicionales

Image
Image

Cargă codul în Arduino și listo. Verán un círculo que se dibuja cu radio creciente.

Librería Adafruit_GFX.h

Această bibliotecă are o serie de comenzi pentru desen pe ecran. În acest site de adafruit, explică unele dintre funcțiile lor. Acă veți menționa unele pentru care se joacă cu codul:

  1. drawLine (), permite desenarea liniilor între două puncte, de exemplu drawLine (0, 0, 10, 10)
  2. drawRect (), es para dibujar rectángulos. p.e. drawRect (10, 15, 10, 10, WHITE), desenează un dreptunghi în poziție x = 10 y y = 15, de dimensiune 10 și color blanco
  3. fillRect (). Es igual al anterior pero el rectángulo es relleno
  4. drawCircle (). dibuja un círculo, como en el código que estamos utilizando. fillCircle (), hace lo mismo pero relleno
  5. drawTrangle (). Dibuja triángulos, pentru ello hay que indicar tres puntos en la pantalla.
  6. Para textos, hay que utiliza varios comandos. Primero localizarlo con setCursor (), apoi se scrie cu println ().

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