Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- www.santy.cz
- Dil 4 - LCD modul - cast 1
- */
- //Test využívá knihovnu LiquidCrystal
- #include <LiquidCrystal.h>
- /*******************************************************
- Tento program testuje LCD modul 1602 a jeho tlačítka
- úprava © Aleš Müller, Únor 2014
- ********************************************************/
- // využité piny na desce Arduino
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
- // definice hodnot pro použití s panelem a tlačítky
- int lcd_key = 0;
- int adc_key_in = 0;
- #define btnRIGHT 0
- #define btnUP 1
- #define btnDOWN 2
- #define btnLEFT 3
- #define btnSELECT 4
- #define btnNONE 5
- // tato funkce čte hodnotu tlačítek
- int read_LCD_buttons()
- {
- adc_key_in = analogRead(0); // čteme hodnotu ze senzoru
- // střední hodnota tlačítek je zhruba tato: 0, 144, 329, 504, 741
- // přidáme cca 50 k těmto hodnotám a zkontrolujeme zda jsme blízko
- if (adc_key_in > 1000) return btnNONE; // kontrolujeme nejprve tuto možnost, protože to je nejčastější stav
- if (adc_key_in < 50) return btnRIGHT;
- if (adc_key_in < 195) return btnUP;
- if (adc_key_in < 380) return btnDOWN;
- if (adc_key_in < 555) return btnLEFT;
- if (adc_key_in < 790) return btnSELECT;
- return btnNONE; // pokus nic z toho neodpovídá, vracíme tuto hodnotu
- }
- void setup()
- {
- lcd.begin(16, 2); // start knihovny pro LCD
- lcd.setCursor(0,0); // sloupec 0 , řádek 0
- lcd.print(" www.santy.cz "); // jednoduchý výpis na LCD
- lcd.setCursor(0,1); // sloupec 0 , řádek 1
- lcd.print("1602 LCD Keypad");
- delay(5000); // pauza 5 sec
- lcd.clear(); // vymažeme displej
- lcd.setCursor(0,0);
- lcd.print("Stiskni tlacitko");
- }
- void loop()
- {
- lcd.setCursor(12,1); // přesuneme kurzor na druhý řádek a znak č.13 (vše číslováno od nuly!)
- lcd.print(millis()/1000); // vypíšeme počet sekund od spuštění zařízení
- lcd.setCursor(0,1); // vrátíme zpět na začátek druhého řádku
- lcd_key = read_LCD_buttons(); // přečteme stav tlačítek
- switch (lcd_key) // dle toho, které je stisknuto vypíšeme akci
- {
- case btnRIGHT:
- {
- lcd.print("Doprava");
- break;
- }
- case btnLEFT:
- {
- lcd.print("Doleva ");
- break;
- }
- case btnUP:
- {
- lcd.print("Nahoru ");
- break;
- }
- case btnDOWN:
- {
- lcd.print("Dolu ");
- break;
- }
- case btnSELECT:
- {
- lcd.print("Volba ");
- break;
- }
- case btnNONE:
- {
- lcd.print("- nic -");
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement