Creacion de una Libreria

Hola llevo usando arduino hace tiempo, pero ahora me plantee crear una forma de introducir letras a los programas mediante una pantalla tft, pero que sea una libreria de forma que lo pueda usar en cualquier sketch, el problema que no encuentro como meter la declaracion de la libreria del manejo de la tft en la libreria de introduccion de letras, el codigo de la libreria me funciona como sketch de arduino pero no puedo hacerlo funcionar llamandola desde la libreria

No he podido encontrar algun ejemplo que entienda sobre como usar una libreria dentro de otra, agradeceria si me podeis indicar que estoy haciendo mal
Gracias

codigo
adjunto el codigo

El error que me da al compilar esta en el fichero extension cpp

SelecIntro.cpp:26:21: error: expected initializer before 'Adafruit_ST7735'
Adafruit_ST7735 tft Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
                    ^~~~~~~~~~~~~~~
sketch/SelecIntro.cpp: In constructor 'SelecIntro::SelecIntro(int, int)':
SelecIntro.cpp:31:3: error: 'tft' was not declared in this scope
  tft.initR(INITR_BLACKTAB);
  ^~~
sketch/SelecIntro.cpp: In member function 'void SelecIntro::MostrarMenu(int)':
SelecIntro.cpp:71:3: error: 'tft' was not declared in this scope
  tft.setRotation(1);
  ^~~
exit status 1
expected initializer before 'Adafruit_ST7735'

el programa ino

#include "SelecIntro.h"


 SelecIntro  Menu(-1,0);
char z;

void setup(){
      Serial.begin(9600);
  
  }

void loop(){
  Menu.MostrarMenu(0);

delay(10000);
 
  }

la libreria .cpp

/*
  Menu introducir cadenas de texto o numeros
  Copyright (c) Alberto Cardona 2021


*/

#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif


#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#include <SPI.h>

#include "SelecIntro.h"

#define TFT_CS        10
#define TFT_RST        9 // Or set to -1 and connect to Arduino RESET pin
#define TFT_DC         8

Adafruit_ST7735 tft Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);


SelecIntro::SelecIntro(int x, int y)
{
  tft.initR(INITR_BLACKTAB);


  _x = x;
  _y = y;
}



void SelecIntro::Sube(int z)
{
  _x = _x + z;
}

void SelecIntro::Baja(int z)
{
  _x = _x - z;

}

void SelecIntro::Derecha(int z)
{
  _y = _y + z;

}


void SelecIntro::Izquierda(int z)
{
  _y = _y - z;

}


void SelecIntro::MostrarMenu(int _z)
{
    Serial.begin(9600);
  Serial.print("Iniciando");
 // tft.fillScreen(ST77XX_BLACK);

  tft.setRotation(1);
  tft.setTextSize(1);

 // drawtext("Encendiendo Espere...", ST77XX_WHITE, 10, 10, 1);

  tft.setCursor(10, 10);
  tft.setTextSize(1);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextWrap(true);
  tft.println("Encendiendo Espere...");



  int _Bloque = -1;
  int _Linea = 0;

  for (int _x = 0; _x < 41; _x++) {
    _Bloque++;

    if (_Bloque == 5) {
      _Linea++;
      _Bloque = 0;
      Serial.println(" ");
    }
    if (_z == _x) {
      // aqui poner que invierte los colores en la tft
    }



  }
  Serial.print(_alfa[_x]);
  Serial.print(" ");
}



String  SelecIntro::Selecciona() {
  String Letra =  _alfa[_x];
  return Letra;
}

la libreria .h

/*
  _SelecIntro.h -  crea un menu para la pantalla 
*/


#ifndef _SelecIntro_h

#define _SelecIntro_h

#include "Arduino.h"



class SelecIntro
{
  public:
    SelecIntro(int x, int y);
    void Sube(int z);
    void Baja(int z);
    void Derecha(int z);
    void Izquierda(int z);
    String Selecciona();
    void MostrarMenu(int _z);
  
  private:
    int _x;
    int _y;
     const char *_alfa[41]={"E","D","B","Z","0","A","L","G","J","1","O","C","V","Ñ","2","S","T","Y","X","3","R","U","Q","K","4","N","M","H","W","5","I","P","F"," ","6","8","9","0","-","_"};
     const char *_numer[12]={"0","1","2","3","4","5","6","7","8","9","-"," "};
    char Letra;
  protected:
      void drawtext(char *text, uint16_t color, int x, int y, int z);
     
};

#endif /* _SelecIntro_h */

PruebaMenu.ino (165 Bytes)

SelecIntro.cpp (1.65 KB)

SelecIntro.h (782 Bytes)

Moderador
Hola, bienvenido al foro Arduino en Español

Por favor edita tu post usando etiquetas de código.
Tienes 3 archivos que juntos no suman 9k. Por lo tanto edita este primero post que has hecho y hazlos visibles usando etiquetas de código.
El error que mencionas también va con la misma etiqueta.

Normas del foro

Hola, Surbyte,

Disculpa que no lo hiciera correctamente, y sobre todo que haya tardado tanto en corregirlo, pero he estado apartado de los ordenadores estos ultimos 10 dias

Espero que ahora este correctamente

un saludo a todos

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.