Bom dia senhores,Estou com a dificuldade de como faço pra chamar a minha função temperatura1 somente uma vez, sem a necessidade de estar dentro da função loop. E também como faço pra ler da serial um número inteiro do jeito que está estou recebendo o ASCII. Abaixo o código feito até o momento.

#define resistenciaMostura 13


int temperatura1 (int temp1) {

  for (int i = 0; i < temp1; i++) {
    delay (1000);
    if ((temp1 != 0) || (temp1 == i)) {
      digitalWrite (resistenciaMostura, HIGH);
      Serial.println(temp1);
      Serial.println("Entrou");
      Serial.println(i);
    } else {
      digitalWrite (resistenciaMostura, LOW);
      Serial.println(temp1);
      Serial.println("Saiu");
      Serial.println(i);
    }
  }
}

void setup() {
  Serial.begin (9600);
  pinMode (resistenciaMostura, OUTPUT);


}

void loop() {
 
}

Exibições: 723

Responder esta

Respostas a este tópico

Se você quer chamar somente uma vez a função, chame ela no setup(), pois ela é executada somente uma vez. Agora sobre a leitura de inteiro pela serial você poder fazer assim:

String serial = '';

while(Serial.available() > 0)

{

  serial += (char) Serial.read();

  delay(5);

}

int numero = serial.toint();

Valeu Gabriel,

Mas eu esqueci de um detalhe, dessa leitura a função irá receber esse valor via serial e ser chamada mas que somente uma vez. Pode me ajudar?

Olá,

Coloque o código do Gabriel dentro do loop() que ele irá repetir.

depois (ainda dentro do loop()) chame a sua função assim:

temperatura1(numero);

  'Eiju

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço