Saida digital declarada como variavel global

Vagner, boa noite!!

Como posso utilizar o estado de uma saída para controlar funções em todo meu programa

por exemplo se ela esta sendo executada em um determinado void e eu preciso

do seu estado em outro?/

Segue codigo

No caso eu quero usar o estado da saida flipflop_B que esta no void contador dentro do void tempoOn ou vice versa

int pinoBotao_A = 2; // Flip flop que é acionado pelo botão de partida
int flipflop_A = 8; // Flip flop que envia feedback de tempo esgotado desabilitando alimentação do botão de partida

int leitura_A; // Armazena o valor do temporizador
int valor_A = 1; // Variável tempo On que deverá vir através do bluetooth
int contador_A = 0; // inicia contador em 0

int pinoBotao_B = 3; // Flip flop que é acionado pelo botão de partida
int flipflop_B = 7; // Flip flop que envia feedback de acionamentos esgotado

int leitura_B; // Armazena o valor do contador
int valor_B = 5; // Variável de comparação
int contador_B = 0; // inicia contador em 0

// Declaração do LCD e LM35 para tmperatura
#include <LiquidCrystal.h>
// Biblioteca para cristal liquido
LiquidCrystal lcd(12, 11, 17, 16, 15, 14);
float temp; // Variável futuante
int tempPin = 4; // Memória de leitura analógica

int ledPin = 4; // Pino de saída para led que indica by pass ativo
String readString;
int ledPinState = LOW;

void setup()
{
// Declaração para Temporizador On
pinMode(pinoBotao_A, INPUT); // Entrada de pino 2 que recebe acionamento do flipflop botão de partida
pinMode(flipflop_A, OUTPUT); // Saída de pino 8 que desabilita alimentação do flipflop

// Declaração para contador de impulsos
pinMode(pinoBotao_B, INPUT); // Entrada de pino 2 que recebe acionamento do flipflop botão de partida
pinMode(flipflop_B, OUTPUT); // Saída de pino 8 que desabilita alimentação do flipflop

// Declaração para LM35
lcd.begin(16, 2);
lcd.print(“TEMPERATURA”); // Mensagem principal

pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}

void loop()
{

TempoOn();
Contador();
LM35 ();
Led_Bluetooth();

}

void Contador()

{
if (ledPinState == HIGH )

{

contador_B = 0;

}

leitura_B = digitalRead(pinoBotao_B);

if (leitura_B == HIGH)

{
contador_B = contador_B++; //Incrementa o valor do contador
Serial.print("Contador_B : ");
Serial.println(contador_B);

if (contador_B == valor_B)
{

digitalWrite (flipflop_B, HIGH);
delay (500);
digitalWrite (flipflop_B, LOW);

;

contador_B = 0;

}

}

}

void LM35 ()

{

lcd.setCursor(1, 1);
temp = analogRead (tempPin);
temp = temp * 0.48828125;

lcd.print (temp);
lcd.print (" C ");
delay (1000);

}

void Led_Bluetooth()
{
while ( Serial.available() )
{ // Indica que ha dados no buffer de transferencia
delay( 3 );
char c = Serial.read();
readString += c; // Constroi uma string - “on” or “off”

}
if ( readString.length() >0 )
{
Serial.println( readString );
if ( readString == “on” )
{
ledPinState = HIGH;
}
if ( readString == “off” )
{
ledPinState = LOW;
}
readString="";
digitalWrite(ledPin, ledPinState);
}
}

void TempoOn()

{

if (ledPinState == HIGH)

{

contador_A = 0;

}

leitura_A = digitalRead(pinoBotao_A);
if (leitura_A == 1 )
{
contador_A = contador_A++; //Incrementa o valor do contador
Serial.print("Contador_A : ");
Serial.println(contador_A);

if (contador_A == valor_A*60)

{
digitalWrite (flipflop_A, HIGH);
delay (500);
digitalWrite (flipflop_A, LOW);
contador_A = 0;

}
}

}

Bem-vindo ao fórum.

Se as variáveis são globais, pode-as utilizar em qualquer lugar do seu programa.

Já agora, para postar código correctamente aqui no fórum, utilize o botão para esse efeito:

int pinoBotao_A = 2; // Flip flop que é acionado pelo botão de partida
  int flipflop_A = 8; // Flip flop que envia feedback de tempo esgotado desabilitando alimentação do botão de partida
  
  int leitura_A; // Armazena o valor do temporizador
  int valor_A = 1; // Variável tempo On que deverá vir através do bluetooth
  int contador_A = 0; // inicia contador em 0


  int pinoBotao_B = 3; // Flip flop que é acionado pelo botão de partida
  int flipflop_B = 7; // Flip flop que envia feedback de acionamentos esgotado
 

      
      
  int leitura_B; // Armazena o valor do contador
  int valor_B = 5; // Variável de comparação
  int contador_B = 0; // inicia contador em 0
  
    
  // Declaração do LCD e LM35 para tmperatura
  #include <LiquidCrystal.h>
  // Biblioteca para cristal liquido
  LiquidCrystal lcd(12, 11, 17, 16, 15, 14);    
  float temp;  // Variável futuante  
  int tempPin = 4; // Memória de leitura analógica
  
  int ledPin = 4; // Pino de saída para led que indica by pass ativo
  String readString;
  int ledPinState = LOW;
  
  
  
  




void setup() 
{  
    // Declaração para Temporizador On
  pinMode(pinoBotao_A, INPUT); // Entrada de pino 2 que recebe acionamento do flipflop botão de partida
  pinMode(flipflop_A, OUTPUT); // Saída de pino 8 que desabilita alimentação do flipflop
  
  
  // Declaração para contador de impulsos
  pinMode(pinoBotao_B, INPUT); // Entrada de pino 2 que recebe acionamento do flipflop botão de partida
  pinMode(flipflop_B, OUTPUT); // Saída de pino 8 que desabilita alimentação do flipflop
  
  // Declaração para LM35
  lcd.begin(16, 2);
  lcd.print("TEMPERATURA"); // Mensagem principal
  
   
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600); 
}  
   
void loop() 
{  

  
  TempoOn();
  Contador();
  LM35 ();
  Led_Bluetooth();
  
}
   
 
 

    void Contador()
    
    {
         if (ledPinState == HIGH )
     
     {
       
       contador_B = 0;    
       
     }
            
      
    leitura_B = digitalRead(pinoBotao_B);
      
    if (leitura_B == HIGH)
           
  {  
    contador_B = contador_B++; //Incrementa o valor do contador  
    Serial.print("Contador_B : ");
    Serial.println(contador_B);   
    
    if (contador_B == valor_B)
    {
      
      digitalWrite (flipflop_B, HIGH);      
      delay (500);
      digitalWrite (flipflop_B, LOW);
      
     ;
           
      contador_B = 0;     
      
    }
      
      
    
          
  } 
   
      
}

       void LM35 ()
    
    {
      
      lcd.setCursor(1, 1);     
      temp = analogRead (tempPin);
      temp = temp * 0.48828125;
      
      lcd.print (temp);       
      lcd.print (" C          ");    
      delay (1000);       
      
    }
    
    
   void Led_Bluetooth()
{
  while ( Serial.available() )
{    // Indica que ha dados no buffer de transferencia
    delay( 3 ); 
    char c = Serial.read();
    readString += c;         // Constroi uma string - "on" or "off"
     
}
  if ( readString.length() >0 )
   {
    Serial.println( readString );
    if ( readString == "on" )
     {
      ledPinState = HIGH;
      }
    if ( readString == "off" )
     {
      ledPinState = LOW;
      }
    readString="";
    digitalWrite(ledPin, ledPinState);
   }
}


        void TempoOn()
    
    {
      
       if (ledPinState == HIGH)
     
     {
       
       contador_A = 0;    
       
     }  
      
    leitura_A = digitalRead(pinoBotao_A);   
    if (leitura_A == 1 )    
  {  
    contador_A = contador_A++; //Incrementa o valor do contador  
    Serial.print("Contador_A : ");
    Serial.println(contador_A);
    
    if (contador_A == valor_A*60)
    
   
    {
      digitalWrite (flipflop_A, HIGH);
      delay (500);
      digitalWrite (flipflop_A, LOW);
      contador_A = 0;
      
      
     }
  } 
   
      
}

Ok desculpe a forma de envio do primeiro post

porém como mencionei nao consegui acionar minha saida quando declarei na função if a variável global atrelada ao pino

Como posso utilizar o estado de uma saída para controlar funções em todo meu programa

por exemplo se ela esta sendo executada em um determinado void e eu preciso

do seu estado em outro?/

No caso eu quero usar o estado da saida flipflop_B que esta no void contador dentro do void tempoOn ou vice versa

Crie uma variável global e atribua a essa variável o valor que você quer usar em outra parte do programa.
Exemplo: supondo que você criou a variável “VarGlobal”, então atribua a ela o valor que vc quer dentro da função específica:

void FuncaoExemplo(){
a = a + b;
b = a+c;

VarGlobal = b;
}

Deste modo você joga o valor que está em b dentro da FuncaoExemplo na VarGlobal e pode trabalhar com ela em qualquer parte do programa.
OBS: Isso é feito caso a variável “b” esteja sendo manuseada em mais partes do programa mas você quer pegar o valor dela apenas dentro de uma função específica. Caso b só fosse usado dentro de uma única função e não sofresse alteração em mais nenhuma parte do programa então não necessitaria criar uma cópia dela bastando utilizar b mesmo, desde que b seja global.

Não sei se foi confusa minha explicação, espero q tenha entendido.

Olá Ricardo,

Cara, não sei se ajuda a informação, mas se você fizer a declaração de variáveis no começo do sketch, antes do void setup() do void loop() ou seja, antes de qualquer estrutura, essa variáveis irão servir em qualquer parte do seu sketch.