Grove LCD RGB I2C

Il primo esperimento con il grove lcd rgb i2c dello starter kit lo troverai davvero interessante.

Grove lcd rgb i2c

Il display Grove LCD rgb i2c è, come dice il nome stesso, un display di tipo lcd con controllo i2c dotato di una retroilluminazione di tipo RGB.

Questa caratteristica lo rende interessante non solo in fase di sperimentazione ma anche nell’uso nei progetti: potresti, ad esempio, utilizzare la retroilluminazione per indicare la severità delle informazioni visualizzate, ad esempio un allarme potrebbe lampeggiare con la retroilluminazione rossa.

La documentazione sull’uso del Grove lcd rgb i2c la puoi trovare nella wiki ufficiale del produttore.

Grove lcd rgb i2c library

Dopo aver installato la libreria di gestione del deisplay, trovi tra gli esempi dell’IDE quelli relativi alla gestione del display.

Il primo esempio che puoi provare è il classico, per un display, “Hello World” che ho leggermente modifiicato per provare apputo la caratteristica RGB del Grove lcd rgb i2c.

Connessione del display grove lcd rgb i2c

Il collegamento del display alla grove shield è molto semplice:

Grove lcd rgb i2c

ti basta scegliere uno dei connettori I2C sul lato destro della shield:

Grove starter kit shield

ed usare uno dei cavetti  4 poli destinati ai collegamenti dei moduli grove alla shield stessa.

Poi ti occorre un arduino, o genuino, uno su cui uplodare il tuo primo sketch di esempio per questo display.

Sketch Hello World modificato per Grove lcd rgb i2c

Parti dall’esempio “Helo World” scritto da SeedStudio e presente nelle librerie per il display che hai aggiunto al tuo IDE e subito dopo lo sketch puoi leggere le modifiche che ho apportato:

/*
  Hello World.ino
  2013 Copyright (c) Seeed Technology Inc.  All right reserved.

  Author:Loovee
  2013-9-18

  Grove - Serial LCD RGB Backlight demo.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

const int colorR = 255;
const int colorG = 0;
const int colorB = 0;

void setup() 
{
    // set up the LCD's number of columns and rows:
    lcd.begin(16, 2);
    
    lcd.setRGB(colorR, colorG, colorB);
    
    // Print a message to the LCD.
    lcd.print("hello, world!");

    delay(1000);
}

void loop() 
{
    // set the cursor to column 0, line 1
    // (note: line 1 is the second row, since counting begins with 0):
    lcd.setCursor(0, 1);
    // print the number of seconds since reset:
    lcd.print(millis()/1000);

    if ((millis()/1000) == 20) { lcd.setRGB(255, 0, 0); }
    if ((millis()/1000) == 30) { lcd.setRGB(0, 255, 0); }
    if ((millis()/1000) == 40) { lcd.setRGB(0, 0, 255); }
    
    delay(100);
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

linee 25-26: includi le librerie Wire e rgb_lcd necessarie alla corretta comunicazione con il grove lcd rgb i2c;

linea 28: inizializza l’istanza “lcd” dell’oggetto “rgb_lcd”;

linee: 30-32: definisci tre costanti di tipo intero con le componenti colore che vuoi impostare sul display all’accensione. Nell’esempio imposti il colore rosso 255,0,0;

linea 37: usi il metodo begin per indicare all’istanza “lcd” che il display è un 16 colonne, 2 righe;

linea 39: usi il metodo “setRGB” per impostare la retroilluminazione rossa, vedi linee 30-32;

linea 42: scrivi sulla prima riga del display la stringa “hello, world!”;

linea 44: imposta un ritardo di 1 secondo;

linea 51: sposta il cursore alla seconda riga del display;

linea 53: scrivi il risultato dell’operazione ( milli()/1000) ossia i secondi trascorsi dall’accensione del display o dall’ultimo reset;

linee 54-57: ecco la modifica che ti permette di sperimentare i tre colori della retroilluminazione. Con ciascuna condizione di if verifichi che i secondi trascorsi siano 20,30 o 40 e per ciascun intervallo imposti un nuovo colore: prima rosso ( equivalente a quello già impostato alla linea 39 ) poi verde ed infine blu;

linea 59: imposta una pausa di 100 millisecondi tra un loop() ed il successivo.

Il risultato dovrebbe essere simile al seguente:

Grove lcd rgb i2c blacklight red

poi al 30 secondo:

Grove lcd rgb i2c blacklight green

ed infine dal 40 secondo i poi:

Grove lcd rgb i2c blacklight blu

fino al prossimo reset.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/grove-lcd-rgb-i2c.html

1 ping

  1. […] Al codice originale ho eseguito alcune modifiche per consentire il controllo del Grove lcd rgb i2c wheel che usa in fase di scrittura i comandi della libreria rgb_lcd.h che hai già visto utilizzare in questo sketch. […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.