PitLCDNokia5110 - Controllo e utilizzo display LCD Nokia 5110.

L'utilizzo del display LCD.

 

 

Prova del sensore commerciale con lettura del pin analogico

Fonte principale Michele Pisani.

 

Cosa serve:

  • Display LCD Nokia 5110
  • cavetti

Codice sorgente:

/*
/*
 * vedere il sito http://www.michelepisani.it/articoli/arduino-display-lcd-nokia-5110-bitmap-u8glib-dht11-temperatura-umidita/
 * 
 * libreria https://github.com/olikraus/u8glib
 */

#include "U8glib.h"
// #include "dht.h"

// #define dht_apin A1
// dht DHT;

U8GLIB_PCD8544 u8g(4, 5, 7, 6, 8);  // CLK=4, DIN=5, CE=7, DC=6, RST=8

const uint8_t michelepisani_bitmap[] U8G_PROGMEM = {
  0x00, 0x3c, 0x00, 0x0f, 0x80, 0x00, 0x07, 0x00, 0x00, 
  0x01, 0xff, 0x80, 0x7f, 0xe0, 0x00, 0xff, 0xf0, 0x00, 
  0x07, 0xff, 0xe0, 0xff, 0xf0, 0x03, 0xff, 0xfe, 0x00, 
  0x0f, 0xff, 0xf3, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0x00, 
  0x1f, 0xff, 0xf3, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0x80, 
  0x3f, 0x83, 0xff, 0xf0, 0x7e, 0x3f, 0xc0, 0x1f, 0xe0, 
  0x3f, 0x00, 0xff, 0xc0, 0x3e, 0x7f, 0x01, 0xc7, 0xe0, 
  0x7e, 0x00, 0x7f, 0x80, 0x1f, 0x7c, 0x01, 0xf3, 0xf0, 
  0x7c, 0x00, 0x3f, 0x80, 0x1f, 0x78, 0x01, 0xfd, 0xf8, 
  0xf8, 0x00, 0x3f, 0x00, 0x0f, 0xf0, 0x01, 0xfe, 0xfc, 
  0xf8, 0x00, 0x1f, 0x00, 0x0f, 0xe0, 0x01, 0xff, 0x7c, 
  0xf8, 0x00, 0x1f, 0x00, 0x0f, 0xe0, 0x01, 0xff, 0x3e, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xc0, 0x01, 0xff, 0xbe, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x80, 0x01, 0xff, 0x9f, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x80, 0x01, 0xff, 0xdf, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x80, 0x01, 0xff, 0xdf, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x80, 0x01, 0xff, 0xdf, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x80, 0x01, 0xff, 0xdf, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x1f, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x9f, 0xfd, 0xff, 0xdf, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x9f, 0xfd, 0xff, 0xdf, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x8f, 0xfd, 0xff, 0xdf, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x8f, 0xfd, 0xff, 0x9e, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xe7, 0xfd, 0xff, 0xbe, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xe7, 0xfd, 0xff, 0x3c, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xf3, 0xfd, 0xfe, 0x7c, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xf1, 0xfd, 0xfc, 0xf8, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xf8, 0x7d, 0xf9, 0xf8, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xfe, 0x3d, 0xe3, 0xf0, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xbf, 0x00, 0x0f, 0xe0, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0xbf, 0xe0, 0x7f, 0xc0, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x8f, 0xff, 0xff, 0x80, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x87, 0xff, 0xfe, 0x00, 
  0xf8, 0x00, 0x1e, 0x00, 0x0f, 0x81, 0xff, 0xf8, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x3f, 0xc0, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 
  0x00, 0x80, 0x80, 0x20, 0x0f, 0x80, 0x10, 0x00, 0x08, 
  0x6c, 0x18, 0xe3, 0x26, 0x0f, 0x81, 0x83, 0x18, 0xc0, 
  0xfe, 0xbc, 0xf4, 0xa9, 0x0f, 0x83, 0xd7, 0x79, 0xe8, 
  0x92, 0xa0, 0x97, 0xaf, 0x0f, 0x82, 0x54, 0x29, 0x28, 
  0x92, 0xa0, 0x94, 0x28, 0x0f, 0x82, 0x53, 0x29, 0x28, 
  0x92, 0xbc, 0x97, 0xaf, 0x0f, 0x83, 0xd7, 0x3d, 0x28, 
  0x00, 0x00, 0x00, 0x00, 0x0f, 0x82, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0f, 0x82, 0x00, 0x00, 0x00, 
};

const uint8_t degree_bitmap[] U8G_PROGMEM = {
  0b01110,
  0b01010,
  0b01110,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};

bool show_logo = true;
int loop_delay = 5000;

void setup(void) {

}

void loop(void) {
  // DHT.read11(dht_apin);  // Acquisisce i dati dal sensore DHT11

  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );

  show_logo = false;
  delay(loop_delay);  // Mostro il logo per 5 secondi dopodich� aggiorno ogni 2 secondi i dati acquisiti dal sensore DHT11
  loop_delay = 2000;
}

void draw(void) {
  if (show_logo) {
    u8g.drawBitmapP( 6, 0, 9, 47, michelepisani_bitmap);  // Inserisco l'immagine bitmap del logo di www.michelepisani.it | MAX SCREEN NOKIA 5110 = 84x48
  }
  
  if(!show_logo) {
    u8g.setFont(u8g_font_profont22);  // seleziono il font e la relativa dimensione
    u8g.drawStr(0, 20, "T: ");  // Inserisco la stringa in posizione X, Y
    u8g.drawStr(0, 40, "H: ");
    u8g.setPrintPos(32, 20);  // Mi posiziono in X, Y
    //u8g.print(DHT.temperature, 0);  // Mostro la temperatura rilevata dal sensore DHT11
    u8g.drawBitmapP( 55, 6, 1, 8, degree_bitmap);
    u8g.drawStr(63, 20, "C ");
    u8g.setPrintPos(32, 40);
    //u8g.print(DHT.humidity, 0);  // Mostro l'umidit� rilevata dal sensore DHT11
    u8g.drawStr(60, 40, "% ");
  }
}

 

 

 

Scarica tutto quello che serve:

 

 

 

ZappocoS, 14 gennaio 2018