Pelletsövervakning ala tecno

Användarvisningsbild
kankki
Inlägg: 3369
Blev medlem: 2 januari 2010, 15:05:12
Ort: Nykarleby, Finland

Re: Pelletsövervakning ala tecno

Inlägg av kankki »

Ser felet :)

Enable till skiftregistret och lcd är inte samma sak :) Kapa enablebanan till lcd:n och ta den från bit 7 (qh) av skiftregistret
Användarvisningsbild
tecno
Inlägg: 25253
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Pelletsövervakning ala tecno

Inlägg av tecno »

OK, så du menar pinne 8 på Arduinon ska till pinne 12 på 595:an? och sen kapa koppla pinne 7 till LCD:n?

De flytande utgångarna då, ska dessa göras nåt åt?
Användarvisningsbild
kankki
Inlägg: 3369
Blev medlem: 2 januari 2010, 15:05:12
Ort: Nykarleby, Finland

Re: Pelletsövervakning ala tecno

Inlägg av kankki »

Japp, så har jag förstått det.

Utgångar får väl lämnas flytande, det är ju ingångar det är petigt med
Användarvisningsbild
tecno
Inlägg: 25253
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Pelletsövervakning ala tecno

Inlägg av tecno »

sorry det hjälpte inte
Användarvisningsbild
tecno
Inlägg: 25253
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Pelletsövervakning ala tecno

Inlägg av tecno »

Väcker upp detta efter lång dvala pga olika omständigheter i mitt liv.

Har dragit igång lite mätningar samt fått in min väderstation så allt samlas i InfluxDB och presenteras med Grafana.
Vill givetvis få ordning på pellets förbrukningen men rör om i grytan lite.

Efter en tidigare ombyggnad av 3D skrivare fick jag en 128x64 grafisk display över med encoder m push knapp som nu är inkopplad på en UNO och all överföring av MQTT data görs via en ESP8266 WiFi. Tyvärr får jag inte LCDn att fungera med ESPn så UNOn får vara mellanhand.

Börjat peta i detta igen..... ;)
Användarvisningsbild
tecno
Inlägg: 25253
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Pelletsövervakning ala tecno

Inlägg av tecno »

Skippat UNO då minnet inte räcker till, MEGA får jag välja istället.
Användarvisningsbild
tecno
Inlägg: 25253
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Pelletsövervakning ala tecno

Inlägg av tecno »

Behöver lite hjälp, nedanstående fungerar som demo dvs vrider på encodern från 0 till 12 och man är klar.
Vad jag vill göra är att räkna upp ett antal (säckar jag fyllt på) kvittera och få antalet sparat.

För att det ska lira så ska void mFunc_xxx skapas med lämplig kod enligt ovan. Encoder hantering och tryck knapp i encodern fungerar för menyval/kvittering (enter)
g_button_value finns bara i denna.

Kod: Markera allt

// *********************************************************************
uint8_t g_button_value = 0; // button value counter (global variable)
void mFunc_p2(uint8_t param)
// *********************************************************************
{
  if(LCDML.FUNC_setup())          // ****** SETUP *********
  {
    // remmove compiler warnings when the param variable is not used:
    LCDML_UNUSED(param);

    // setup function
    // print LCD content
    char buf[17];
    sprintf (buf, "count: %d of 12",0); 
    u8g2.setFont(_LCDML_DISP_font);
    u8g2.firstPage();
    do {
      u8g2.drawStr( 0, (_LCDML_DISP_font_h * 1), "press a or w button");
      u8g2.drawStr( 0, (_LCDML_DISP_font_h * 2), buf);
    } while( u8g2.nextPage() );

    // Reset Button Value
    g_button_value = 0;

    // Disable the screensaver for this function until it is closed
    LCDML.FUNC_disableScreensaver();
  }

  if(LCDML.FUNC_loop())           // ****** LOOP *********
  {
    // loop function, can be run in a loop when LCDML_DISP_triggerMenu(xx) is set
    // the quit button works in every DISP function without any checks; it starts the loop_end function

    // the quit button works in every DISP function without any checks; it starts the loop_end function
    if (LCDML.BT_checkAny()) // check if any button is pressed (enter, up, down, left, right)
    {
      if (LCDML.BT_checkLeft() || LCDML.BT_checkUp()) // check if button left is pressed
      {
        LCDML.BT_resetLeft(); // reset the left button
        LCDML.BT_resetUp(); // reset the left button
        g_button_value++;

        // update LCD content
        char buf[20];
        sprintf (buf, "count: %d of 12", g_button_value);

        u8g2.setFont(_LCDML_DISP_font);
        u8g2.firstPage();
        do {
          u8g2.drawStr( 0, (_LCDML_DISP_font_h * 1), "press a or w button");
          u8g2.drawStr( 0, (_LCDML_DISP_font_h * 2), buf);
        } while( u8g2.nextPage() );
      }
    }

   // check if button count is twelve 
    if (g_button_value >= 12) { 
      LCDML.FUNC_goBackToMenu();      // leave this function
    }
  }

  if(LCDML.FUNC_close())     // ****** STABLE END *********
  {
    // you can here reset some global vars or do nothing
  }
}
Användarvisningsbild
tecno
Inlägg: 25253
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Pelletsövervakning ala tecno

Inlägg av tecno »

Tog sin lilla tid att klura ut men nu har jag en lösning son fungerar i denna komplexa grafiska meny köret .
LCDML_u8g2lib kör på en ST7290 128x64 med encoder.

Kod: Markera allt

   g_button_value++;
      Serial.println("on");
      Serial.print("number of button pushes: ");
      Serial.println(g_button_value);

     EEPROM.write(0,g_button_value);
  
  delay(1000);
  
      number = EEPROM.read(0);

  Serial.print(0);
  Serial.print("\t");
  Serial.print(number-1, DEC);
  Serial.println();
Ovan en enkel verifiering att inmatat stämmer via återläsning av värden i EEprom. number-1 beror på att allt menysystemet använder alla pinnar från encodern till att räkna upp så är den grafiska räknaren från start 0 men seriellt utläst är det 1, försökt lösa men det fick bli denna enklare lösningen.

Nu ska jag fila på överföring av dessa värden via MQTT till databasen.
Skriv svar