This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| et:arduino:sensorss:project3 [2016/01/25 16:51] – tekitatud raivo.sell | et:arduino:sensorss:project3 [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Projekt 3 Näited | + | ====== Projekt |
| + | \\ | ||
| + | ===== Näide #5.1 Teksti kuvamine ekraanil ===== | ||
| + | |||
| + | |||
| + | <code c> | ||
| + | |||
| + | //Lisame vajalikud teegid | ||
| + | #include " | ||
| + | |||
| + | //lcd objekti tekitamine | ||
| + | U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 | ||
| + | |||
| + | void setup(void) { | ||
| + | u8g.setContrast(0); | ||
| + | u8g.setRot180();// | ||
| + | u8g.setFont(u8g_font_gdr14); | ||
| + | } | ||
| + | |||
| + | void loop(void) { | ||
| + | |||
| + | u8g.firstPage(); | ||
| + | while ( u8g.nextPage() == 1 )u8g.drawStr( 8, 35, "Hello World" | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Näide #5.2 Logo kuvamine ekraanil ===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Näide demonstreerib logo kuvamist graafilisel ekraanil. Selleks on vaja kõigepealt tekitada //bitmap// massiiv, mis määrab ära millised pikslid kuvatakse ekraanil. | ||
| + | [[http:// | ||
| + | |||
| + | <code c> | ||
| + | |||
| + | //Lisame vajalikud teegid | ||
| + | #include " | ||
| + | |||
| + | //lcd objekti tekitamine | ||
| + | U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 | ||
| + | |||
| + | const uint8_t logo [] PROGMEM = { | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x63, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x63, 0xFC, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x63, 0xFC, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x63, 0xFC, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x5F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x7F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x7F, 0x8F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x7F, 0x8F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x43, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x43, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x43, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x43, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x62, 0x0C, 0x43, 0x88, 0x7B, 0xFF, 0xFF, 0xE0, 0x0F, 0xE3, 0xFC, 0x07, 0xE0, 0xF1, 0xE7, 0xF8, | ||
| + | 0x62, 0x0C, 0x43, 0x88, 0x7B, 0xFF, 0xFF, 0xE0, 0x3F, 0xF3, 0xFE, 0x1F, 0xF8, 0xF1, 0xE7, 0xFC, | ||
| + | 0x62, 0x0C, 0x43, 0x88, 0x7B, 0xFF, 0xFF, 0xE0, 0x3F, 0xE3, 0xFF, 0x3F, 0xF8, 0xF1, 0xE7, 0xFE, | ||
| + | 0x7E, 0x0C, 0x43, 0x88, 0x7D, 0xFF, 0xFF, 0xE0, 0x7E, 0x63, 0xDF, 0x3E, 0x7C, 0xF1, 0xE7, 0xFE, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0x78, 0x03, 0xCF, 0x3C, 0x3C, 0xF1, 0xE7, 0x9E, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0xFB, 0xF3, 0xFF, 0x7C, 0x3C, 0xF1, 0xE7, 0xBE, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0xFB, 0xF3, 0xFE, 0x7C, 0x3C, 0xF1, 0xE7, 0xFE, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0xFB, 0xF3, 0xFC, 0x7C, 0x3C, 0xF1, 0xE7, 0xFC, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0x7B, 0xF3, 0xFE, 0x3C, 0x3C, 0xF1, 0xE7, 0xF8, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0x7C, 0xF3, 0xDE, 0x3E, 0x7C, 0xF9, 0xE7, 0x80, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0x7F, 0xF3, 0xDF, 0x3F, 0xFC, 0xFF, 0xE7, 0x80, | ||
| + | 0x00, 0x0C, 0x43, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0x3F, 0xF3, 0xCF, 0x9F, 0xF8, 0x7F, 0xC7, 0x80, | ||
| + | 0x00, 0x0F, 0xC3, 0x88, 0x7C, 0x3C, 0x0F, 0x00, 0x1F, 0xF3, 0xC7, 0x8F, 0xF0, 0x3F, 0x87, 0x80, | ||
| + | 0x00, 0x03, 0xC3, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x7B, 0xAF, 0x3F, 0xFB, 0xBA, 0xC3, 0xFA, 0xEA, 0xE1, 0xFE, 0xAE, 0xA8, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x7B, 0xAB, 0xFB, 0xCE, 0xAB, 0xC0, 0xA6, 0xAB, 0x80, 0xD2, 0xBE, 0xD8, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x7B, 0xFB, 0xFB, 0x4E, 0xEF, 0xC1, 0xB6, 0xBA, 0x80, 0xDB, 0xBE, 0xD8, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x7F, 0xFA, 0xDF, 0x6E, 0xEF, 0xDD, 0xB7, 0xBB, 0x6C, 0xDB, 0xBE, 0xDC, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x77, 0xFA, 0xF7, 0x3E, 0xAA, 0xD9, 0xA5, 0xBB, 0x2C, 0xD2, 0xAE, 0xD4, | ||
| + | 0x00, 0x00, 0x03, 0x88, 0x77, 0xAE, 0xF7, 0xFB, 0xBA, 0xC1, 0xBD, 0xEE, 0xE0, 0xDE, 0xAE, 0xB4, | ||
| + | 0x00, 0x00, 0x03, 0xF8, 0x00, 0x04, 0x00, 0x41, 0x10, 0x00, 0x18, 0x44, 0xC0, 0x18, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| + | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| + | }; | ||
| + | |||
| + | void setup(void) { | ||
| + | u8g.setContrast(0); | ||
| + | u8g.setRot180();// | ||
| + | u8g.setFont(u8g_font_gdr14); | ||
| + | } | ||
| + | |||
| + | void loop(void) { | ||
| + | u8g.firstPage(); | ||
| + | while ( u8g.nextPage() == 1 ){ | ||
| + | u8g.drawBitmapP( 0, 0, 16, 64, logo); //joonista ekraanile pilt | ||
| + | // | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Näide #5.3 Kujunduse tekitamine ja andurite kuvamine ekraanil ===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | <code c> | ||
| + | |||
| + | /* | ||
| + | # This sample codes is for testing the LCD12864 shield. | ||
| + | # Editor : Mickey | ||
| + | # Date : 2013.11.27 | ||
| + | # Ver : 0.1 | ||
| + | # Product: LCD12864 shield | ||
| + | # SKU : DFR0287 | ||
| + | */ | ||
| + | |||
| + | |||
| + | #include " | ||
| + | |||
| + | // setup u8g object, please remove comment from one of the following constructor calls | ||
| + | // IMPORTANT NOTE: The complete list of supported devices is here: http:// | ||
| + | |||
| + | U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 | ||
| + | |||
| + | #define KEY_NONE 0 | ||
| + | #define KEY_PREV 1 | ||
| + | #define KEY_NEXT 2 | ||
| + | #define KEY_SELECT 3 | ||
| + | #define KEY_BACK | ||
| + | |||
| + | |||
| + | uint8_t uiKeyCodeFirst = KEY_NONE; | ||
| + | uint8_t uiKeyCodeSecond = KEY_NONE; | ||
| + | uint8_t uiKeyCode = KEY_NONE; | ||
| + | |||
| + | int adc_key_in; | ||
| + | int key=-1; | ||
| + | int oldkey=-1; | ||
| + | |||
| + | |||
| + | // Convert ADC value to key number | ||
| + | // 4 | ||
| + | // | | ||
| + | // 0 -- 1 -- 3 | ||
| + | // | | ||
| + | // 2 | ||
| + | int get_key(unsigned int input) | ||
| + | { | ||
| + | if (input < 100) return 0; | ||
| + | else if (input < 300) return 1; | ||
| + | else if (input < 500) return 2; | ||
| + | else if (input < 700) return 3; | ||
| + | else if (input < 900) return 4; | ||
| + | else return -1; | ||
| + | } | ||
| + | |||
| + | void uiStep(void) { | ||
| + | |||
| + | adc_key_in = analogRead(0); | ||
| + | key = get_key(adc_key_in); | ||
| + | if (key != oldkey) | ||
| + | { | ||
| + | delay(50); | ||
| + | adc_key_in = analogRead(0); | ||
| + | key = get_key(adc_key_in); | ||
| + | if (key != oldkey) | ||
| + | { | ||
| + | oldkey = key; | ||
| + | if (key >=0){ | ||
| + | // | ||
| + | if ( key == 0 ) | ||
| + | | ||
| + | else if ( key == 1 ) | ||
| + | | ||
| + | else if ( key == 2 ) | ||
| + | | ||
| + | else if ( key == 4 ) | ||
| + | | ||
| + | else | ||
| + | | ||
| + | |||
| + | | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | | ||
| + | } | ||
| + | |||
| + | |||
| + | #define MENU_ITEMS 6 | ||
| + | char *menu_strings[MENU_ITEMS] = { "ITT Group OU", " | ||
| + | |||
| + | uint8_t menu_current = 0; | ||
| + | uint8_t menu_redraw_required = 0; | ||
| + | uint8_t last_key_code = KEY_NONE; | ||
| + | |||
| + | |||
| + | void drawMenu(void) { | ||
| + | uint8_t i, h; | ||
| + | u8g_uint_t w, d; | ||
| + | |||
| + | u8g.setFont(u8g_font_6x12);// | ||
| + | u8g.setFontRefHeightText(); | ||
| + | u8g.setFontPosTop(); | ||
| + | |||
| + | h = u8g.getFontAscent()-u8g.getFontDescent(); | ||
| + | w = u8g.getWidth(); | ||
| + | for( i = 0; i < MENU_ITEMS; i++ ) { | ||
| + | d = (w-u8g.getStrWidth(menu_strings[i]))/ | ||
| + | u8g.setDefaultForegroundColor(); | ||
| + | if ( i == menu_current ) { | ||
| + | u8g.drawBox(0, | ||
| + | u8g.setDefaultBackgroundColor(); | ||
| + | } | ||
| + | u8g.drawStr(d, | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void updateMenu(void) | ||
| + | { | ||
| + | switch ( uiKeyCode ) { | ||
| + | case KEY_NEXT: | ||
| + | menu_current++; | ||
| + | if ( menu_current >= MENU_ITEMS )menu_current = 0; | ||
| + | menu_redraw_required = 1; | ||
| + | break; | ||
| + | case KEY_PREV: | ||
| + | if ( menu_current == 0 )menu_current = MENU_ITEMS; | ||
| + | menu_current--; | ||
| + | menu_redraw_required = 1; | ||
| + | break; | ||
| + | } | ||
| + | uiKeyCode = KEY_NONE; | ||
| + | } | ||
| + | |||
| + | |||
| + | void setup() { | ||
| + | |||
| + | u8g.setRot180();// | ||
| + | u8g.setContrast(0); | ||
| + | menu_redraw_required = 1; // force initial redraw | ||
| + | // | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | |||
| + | uiStep(); | ||
| + | updateMenu(); | ||
| + | |||
| + | if ( menu_redraw_required != 0 ) { | ||
| + | u8g.firstPage(); | ||
| + | do { | ||
| + | drawMenu(); | ||
| + | } while( u8g.nextPage() ); | ||
| + | menu_redraw_required = 0; | ||
| + | } | ||
| + | |||
| + | } | ||
| + | |||
| + | </ | ||
| + | \\ | ||
| + | |||
| + | === Harjutus #5.1 === | ||
| + | Muuta näiteprogrammi nii, et ekraanil kuvatakse kolmes erinevas stiilis (font) ühte teksti. | ||
| + | |||
| + | === Harjutus #5.1 === | ||
| + | Konverteerida vabal valitud pilt ekraanile sobilikuks massiiviks ja kuvada see ekraanile. Kasutada konverterit: | ||
| + | |||
| + | === Harjutus #5.1 === | ||
| + | Muuta näiteprogrammi nii, et nupu vajutamisel muutub aktiivse menüüelemendi kuvamise viis. | ||