Merkurino 01 – displej LCD a klávesnice

Jak použít LCD displej 16×2 na Merkurinu – Arduinu Nano.

Jediná změna oproti standardnímu použití u Arduina jsou použité piny.

Kód je zde:

/**********************************************************************
Tento program otestuje Merkurino 01 s displejem a klávesnicí
MerkurRobot.cz 2014
**********************************************************************/
//Jednoduché použití LiquidCrystal knihovny
#include <LiquidCrystal.h> 
// použité piny pro Merkurino 01 LCD panel
LiquidCrystal lcd(13, 12, 8, 7, 4, 2);
// definice proměnných 
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnENTER 4
#define btnESC 5
#define btnNONE 6

int read_LCD_buttons() // procedura čtení tlačítek  --------------------------
{
  adc_key_in = analogRead(0); // čtení "napětí" na vstupu A0
  //lcd.setCursor(12,1);lcd.print(adc_key_in); lcd.print("   ");
  if (adc_key_in > 1000) return btnNONE; // žádné tlačítko není stisknuto
  // pro Merkurino 01 plati tyto hodnoty:
  if (adc_key_in < 40) return btnESC; 
  if (adc_key_in < 110) return btnLEFT;
  if (adc_key_in < 300) return btnDOWN;
  if (adc_key_in < 450) return btnUP;
  if (adc_key_in < 700) return btnRIGHT;
  if (adc_key_in < 850) return btnENTER;
  
  return btnNONE; // žádné tlačítko není stisknuto// konec procedura čtení tlačítek  --------------------------
void setup()  //--- procedura setup --------------------------
{
  lcd.begin(16, 2); // start the library
  lcd.setCursor(0,0);
  lcd.print("Stiskni tlacitko"); // print a simple message
}  //--- konec procedura setup --------------------------
void loop() //--- začátek nekonečné smyčky --------------------------
{
  lcd.setCursor(8,1); // přemístí kursor na 2. řádek (1) a 9. pozici
  lcd.print(millis()/1000); // zobrazí vteřiny od zapnutí 
  lcd.setCursor(0,1); // přemístí kursor na začátek 2. řádku
  lcd_key = read_LCD_buttons(); // zavolej čtení tlačítka
  switch (lcd_key) // vyvolej akci podle stisknutého tlačítka
  {
    case btnRIGHT:
    {
      lcd.print("vpravo  ");
      break;
    }
    case btnLEFT:
    {
      lcd.print("vlevo   ");
      break;
    }
    case btnUP:
    {
      lcd.print("nahoru     ");
      break;
    }
    case btnDOWN:
    {
      lcd.print("dolu   ");
      break;
    }
    case btnENTER:
    {
      lcd.print("potvrd ");
      break;
    }
    case btnESC:
    {
      lcd.print("zpet    ");
      break;
    }
    case btnNONE:
    {
      lcd.print("nic   ");
      break;
    }
  }
} //--- konec nekonečné smyčky --------------------------

Napsat komentář