Estou usando pino analógico A0 para entrada de sinais de um sensor. O programa fica lendo constantemente essa entrada e envia dados para o PC. Como eu faria para o arduino enviar dados somente quando o sensor for acionado? Exemplo, digamos que o sensor capta nivel sonoro de um ambiente, mas eu quero que o arduino envie esses dados, somente quando um botão for acionado. Ou seja, quando eu apertar 1 botão, o programa faz a leitura do sensor por 30 segundos e envia para o PC via serial esses 30 segundos de dados, depois fica em standby e só volta a enviar dados se o botão for apertado novamente. O programa que fiz, faz a leitura continua, fica enviando dados infinitamente.

Desculpem, sou novato no arduino. Segue o programa abaixo:

***************************************************************************** 


int PinAnalogA0 = 0;
float valAnalog=0; // Coloca o Pino A0 a 0

float temp = 0;
int samples[4]; // variavel para melhor precisão
float maxi=0, mini=1000000;

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

void loop ()
{
valAnalog = analogRead(PinAnalogA0);
temp = (valAnalog * 48.0) /512;

if(temp > maxi)
{
maxi = temp;
} // regista valor maximo

if(temp < mini)
{
mini = temp;
} // regista valor minimo

Serial.print(" DB read= " );
Serial.print(temp);
Serial.print(" || DB min= " );
Serial.print(mini);
Serial.print(" || DB max max= " );
Serial.print(maxi);
Serial.println("");

delay(200);
}

// Quero adicionar uma rotina, para que o arduino só envie dados se eu apertar 1 botão
// Do contrário, não envia nada, fica em standby
// E quando for apertar o botão, os dados serão enviados até 30 segundos.

Exibições: 237

Responder esta

Respostas a este tópico

Cara, é uma simples condição lógica de programação utilizando IF.

Recomendo que estude lógica de programação, e veja os exemplos passados pelo amigo José Gustavo.

Abraços!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço