/******************************************************************************* * * Projeto 38 - Controlando Display LCD 16 X 2 * http://squids.com.br/arduino * *******************************************************************************/ //Carrega a biblioteca LiquidCrystal #include //Define os pinos que serão utilizados para ligação ao display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { //Define LCD 16 colunas por 2 linhas lcd.begin(16, 2); //Posiciona o cursor na coluna 0, linha 0; lcd.setCursor(0,0); //Envia o texto entre aspas para o LCD lcd.print("Ola, meu nome e:"); //Posiciona o cursor na coluna 1, linha 1; lcd.setCursor(1,1); //Envia o texto entre aspas para o LCD lcd.print("Squids Arduino"); delay(3000); } void loop() { // Executa sete rotinas de demonstração dos comandos LiquidCrystal basicPrintDemo(); displayOnOffDemo(); setCursorDemo(); scrollLeftDemo(); scrollRightDemo(); cursorDemo(); createGlyphDemo(); } void basicPrintDemo() { lcd.clear(); // Limpa o display lcd.setCursor(1,0); lcd.print("Squids Arduino"); // Imprime algum texto delay(2000); lcd.clear(); // Limpa o display lcd.setCursor(1,1); lcd.print("Squids Arduino"); // Imprime algum texto delay(2000); } void displayOnOffDemo() { lcd.clear(); // Limpa o display lcd.print("Display On/Off"); // Imprime algum texto for(int x=0; x < 3; x++) { // Itera 3 vezes lcd.noDisplay(); // Apaga o display delay(1000); lcd.display(); // Acende-o novamente delay(1000); } } void setCursorDemo() { lcd.clear(); // Limpa o display lcd.print("SetCursor Demo"); // Imprime algum texto delay(1000); lcd.clear(); // Limpa o display lcd.setCursor(5,0); // Cursor na coluna 5, linha 0 lcd.print("5,0"); delay(2000); lcd.setCursor(10,1); // Cursor na coluna 10, linha 1 lcd.print("10,1"); delay(2000); lcd.setCursor(3,1); // Cursor na coluna 3, linha 1 lcd.print("3,1"); delay(2000); } void scrollLeftDemo() { lcd.clear(); // Limpa o display lcd.print("Scroll Left Demo"); delay(1000); lcd.clear(); // Limpa o display lcd.setCursor(7,0); lcd.print("Squids"); lcd.setCursor(9,1); lcd.print("Arduino"); delay(1000); for(int x=0; x<16; x++) { lcd.scrollDisplayLeft(); // Rola o display 16 vezes para a esquerda delay(250); } } void scrollRightDemo() { lcd.clear(); // Limpa o display lcd.print("Scroll Right"); lcd.setCursor(0,1); lcd.print("Demo"); delay(1000); lcd.clear(); // Limpa o display lcd.print("Squids"); lcd.setCursor(0,1); lcd.print("Arduino"); delay(1000); for(int x=0; x<16; x++) { lcd.scrollDisplayRight(); // Rola o display 16 vezes para a direita delay(250); } } void cursorDemo() { lcd.clear(); // Limpa o display lcd.cursor(); // Cursor visível lcd.print("Cursor On"); delay(3000); lcd.clear(); // Limpa o display lcd.noCursor(); // Cursor invisível lcd.print("Cursor Off"); delay(3000); lcd.clear(); // Limpa o display lcd.cursor(); // Cursor visível lcd.blink(); // Cursor piscando lcd.print("Cursor Blink On"); delay(3000); lcd.noCursor(); // Cursor invisível lcd.noBlink(); // Efeito blink desligado } void createGlyphDemo() { lcd.clear(); byte happy[8] = { // Cria um array de bytes com uma cara feliz B00000, B00000, B10001, B00000, B10001, B01110, B00000, B00000}; byte sad[8] = { // Cria um array de bytes com uma cara triste B00000, B00000, B10001, B00000, B01110, B10001, B00000, B00000}; lcd.createChar(0, happy); // Cria o caractere personalizado 0 lcd.createChar(1, sad); // Cria o caractere personalizado 1 for(int x=0; x<5; x++) { // Executa a animação 5 vezes lcd.setCursor(8,0); lcd.write((byte)0); // Escreve o caractere personalizado 0 delay(1000); lcd.setCursor(8,0); lcd.write((byte)1); // Escreve o caractere personalizado 1 delay(1000); } }