Funcionamiento de subprograma en Arduino

Hola! Buenas tardes, lo que pasa es que estaba trabajando en una casa inteligente
que pudiera trabajar con bluetooth y botones para prender y apagar botones.
Como presente problemas con el codigo he simplificado el programa ya que no me
permitia identificar el problema correctamente, ahora solo intento entender como funciona
el subprograma para prender y apagar el led por medio de un boton.

Problemas:
1- No entiendo muy bien como hay que incluir un subprograma en el voidloop
2- Por lo tanto, no entiendo porque es que no se me guarda la variable de valoant, que es el valor
anterior de el led.

yo supongo que no estoy colocando de manera adecuada el subprograma
Ayudaa!!!

</

int pininven=3;
int pinoutven=10;
int estadoven=LOW;
int valantven;
int lecturaven=LOW;

//Declaracion de subprograma
int PBBT (int pinin, int pinout, int estado, int valant, char dato, char letra, int lectura){

//inicia programa de boton
//Se obtiene constantemente el valor de PB

lectura = digitalRead(pinin);

//si se obtiene un valor de lectura diferente a LOW, cumple las condiciones
if ((lectura != LOW)){
//estado cambia a HIGH
estado=HIGH;
//delay en boton
delay (1000);
}

//Prender el led con boton
if (estado == HIGH && valant == LOW) {
digitalWrite(pinout, HIGH);
valant=HIGH;
Serial.println(valant);
estado=LOW;
}

//Apagar el led con boton
if (estado == HIGH && valant == HIGH){
digitalWrite(pinout, LOW);
valant=LOW;
Serial.println(valant);
estado=LOW;
delay (600);
}
return valant;
}

//Programa que solo se repite una vez
void setup() {
//Declarar outputs e inputs
pinMode(pininven, INPUT);
pinMode(pinoutven,OUTPUT);
//El serial trabaja a 9600 hrz
Serial.begin(9600);
}

//Programa que se repite en ciclo

void loop() {
//int PBBT (int pinin, int pinout, int estado, int valant, int lectura){
PBBT (pininven, pinoutven, estadoven, valantven, lecturaven);
Serial.println(valantven);
}

/>

Lee el privado, arriba derecha que te envié con instrucciones para editar tu post