Sommario:

C/C++ En Arduino: Uso delle librerie e degli oggetti: 4 passaggi
C/C++ En Arduino: Uso delle librerie e degli oggetti: 4 passaggi

Video: C/C++ En Arduino: Uso delle librerie e degli oggetti: 4 passaggi

Video: C/C++ En Arduino: Uso delle librerie e degli oggetti: 4 passaggi
Video: Usare classi e oggetti con Arduino - #60 2024, Luglio
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 dimostrata funzionalità extra, in este istruibile, per poter utilizzare un pantalone OLED. Acá se utilizan 3 librerías, una para conexión digital I2C, otra para utilizar la pantalla OLED, y la tercera per creare grafici e la pantalla.

Una de las librerías nos permite crear un oggetto tipo pantalla, con la cual podemos controlar la pantalla OLED en nuestro código. Un oggetto in C++ (C orientado a oggetti), es una struttura más grande que una variabile (por así decirlo) que tiene propiedades y funciones propias. Usandolo 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 instructable

Passaggio 1: materiale

materiali
materiali
materiali
materiali

I materiali sono pochi:

  1. Arduino UNO
  2. Pantalla OLED (in Costa Rica)
  3. Cavi
  4. Tagliere

Fase 2: Connessioni

Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones

Il display OLED se collegato come indica se indica le foto:

  1. OLED vcc - Arduino 3.3V (aunque esta conexión no hace falta)
  2. OLED terra - Arduino GND
  3. OLED cs - Arduino GND
  4. Risoluzione OLED - 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. Aunque extrañamente, por lo menos para la OLED que está en la foto, pareciera no se importante esta conexión

Fase 3: Codice e Uso De Librerías

Codice e uso delle librerie
Codice e uso delle librerie

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:

#includere

#includere

#includere

La librería Wire.h, es una librería nativa, es decir, viene come parte del paquete de Arduino IDE y no hay que instalar nada adicional. Per altro, las librerías Adafruit_GFX.h e Adafruit_SSD1306.h, deben ser instaladas. Per installare, scaricare solo da Adafruit GFX e Adafruit SDD1306, seguire le istruzioni di seguito.

Librería Wire.h

Questa libreria consente la comunicazione I2C. L'acronimo I2C, viene dalla comunicazione inter-integrata, e consente la comunicazione digitale dell'arduino che è "master" con vari sensori o componenti digitali in forma simultanea. De allí que utilizamos los pines SDA e SCL en el Arduino per collegare con la pantalla OLED. In questo sito sparkfun explica bien que es I2C. Para que funcione entonces la pantalla se necesita primero cargar esa librería.

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 que nos permite utilizar la pantalla fácilmente, 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 gáficas de la pantalla OLED. Al termine di questo articolo è possibile visualizzare un elenco di funzioni che possono essere utilizzate con questa libreria e che si trasforma il pantalone OLED in un pantalone di molteplici proposte.

Instanciación de objeto

Después declarar todas las librerías, en la linea 10 del codice se dichiara un oggetto di tipo SDD1306 che lo llamamos "display". Al declararlo, debemos indicar cual es el pin de reset, en este caso el pin 4:

display SSD1306(4);

A partir de este punto, ya se crea un objeto tipo SSD1306, y podemos accesor a todas las funciones del objeto escribiendo el identificatodor del objeto y luego un punto con la propiedad o función que deseamos. Así por ejemplo las líneas 13 e 14, display.begin(SSD1306_SWITCHCAPVCC, 0x3c); display.clearDisplay();

La primera inicializa la pantalla y los argumentos "SSD1306_SWITCHCAPVCC" e "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.

Dibujando algo

En la línea 8, se dichiara una variabile tipo entero llamada "circleSize" y se inicializa en 1, int circleSize = 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 circleSize:

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:

dimensionecerchio+=2;

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

Que sería esattamente lo mismo.

Sì, cose da fare.

Passaggio 4: funzionamento e aggiunta

Image
Image

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

Questa libreria tiene una serie di comandi per 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(), permetti di dibujar linee tra i punti, per esempio drawLine(0, 0, 10, 10)
  2. drawRect(), es para dibujar rectangulos. p.e. 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 rectangulo es relleno
  4. disegnaCerchio(). 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 vari comandi. Primero localizzarlo 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.