Líneas mínimas a añadir al código del Industruino para usar las librerías m2tklib

Fecha de publicación: 03-jul-2014 16:45:26

Según mi experiencia creando menús y formularios dentro del Industruino usando las librerías m2tklib, el código mínimo a añadir a un fichero de código es el siguiente:

Includes mínimos

#include <U8glib.h> #include <M2tk.h> #include <utility/m2ghu8g.h>

Declaración del tipo de pantalla

Esta declaración se ha de descomentar, si ya está o añadir al código.

U8GLIB_MINI12864 u8g(21, 20, 19, 22);

Gestión de botones

uint8_t uiKeyUpPin = 7; uint8_t uiKeyDownPin = 3; uint8_t uiKeySelectPin = 2; uint8_t uiKeyExitPin = 0; int adc_key_in = 0; int read_LCD_buttons_original() //routine to check button inputs and pass the correct button event to GUI { adc_key_in = analogRead(A5); // read the value from the sensor delay(5); //switch debounce delay. Increase this delay if incorrect switch selections are returned. if (adc_key_in < 100) return M2_KEY_NONE; // We make this the 1st option for speed reasons since it will be the most likely result if (adc_key_in > 300 && adc_key_in < 315) return M2_KEY_PREV; if (adc_key_in > 600 && adc_key_in < 630) return M2_KEY_SELECT; if (adc_key_in > 700 && adc_key_in < 930) return M2_KEY_NEXT; } uint8_t m2_es_arduino_analog_input(m2_p ep, uint8_t msg) { switch (msg) { case M2_ES_MSG_GET_KEY: return read_LCD_buttons_original(); case M2_ES_MSG_INIT: return 0; } return 0; }

A incluir dentro del método setup()

void industruino_Menu_setup(void) { //flip the screen 180° u8g.setRot180(); // Connect u8glib with m2tklib m2_SetU8g(u8g.getU8g(), m2_u8g_box_icon); // Assign u8g font to index 0 m2.setFont(0, u8g_font_6x13r); // Assign icon font to index 3 m2.setFont(3, u8g_font_m2icon_7); }

Método loop()

void industruino_Menu_loop() { // menu management m2.checkKey(); if ( m2.handleKey() != 0 ) { u8g.firstPage(); do { m2.checkKey(); draw(); } while ( u8g.nextPage() ); } }

Métodos adicionales a añadir

Método draw:

void draw(void) { m2.draw();}