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