Boa tarde, galera!!
Estou desenvolvendo um sistema pra obter a curva de calibração de uma célula de carga. Em uma coluna do Excel serão impressos os valores de tensão obtidos no carregamento de massa sobre a célula de carga, e numa outra coluna serão impressos os valores de tensão obtidos no descarregamento. Consegui implementar essa seleção de colunas usando uma chave de dois estados e um if. Os valores são registrados no Excel conforme eu aperto um botão. Minha dúvida é a seguinte: consegui selecionar a coluna que eu desejo utilizando uma chave de dois estados, agora gostaria de saber se é possível eu escolher uma linha do Excel utilizando dois botões. Por exemplo, estou na linha 10, daí cada vez que eu apertar o “botãoup” eu vou subindo uma linha (linha 9, linha 8, etc.) e cada vez que eu apertar o “botãodown” eu vou descendo uma linha (linha 11, linha 12, etc.), com isso será possível eu registrar os valores nas linhas e colunas que eu quiser. Tá confuso? Não sou muito bom pra explicar. Hehehe. Segue abaixo o que eu tenho de programa até agora.
float potpin = 0; //Variável que define a porta do potenciômetro (sensor).
int ROW = 0; //Variável que se refere as linhas do excel.
int LABEL = 1;
float val = 0; //Variável que guarda o valor lido do potenciômetro.
int botao = 2;
int cont = 8; //Variável que controla a calibração da célula: Carregamento (HIGH) ou Descarregamento (LOW)
void setup(){
Serial.begin(9600); //Inicialização da comunicação serial.
Serial.println("CLEARDATA"); //Reset da comunicação serial.
Serial.println("LABEL,Time, Massa Carregamento (kg), Tensao Carregamento (V), Numero, ,Massa Descarregamento (kg),Tensao Descarregamento (V),Numero"); //Nomeia as colunas.
pinMode(botao, INPUT); //Define o Botão como entrada.
pinMode(cont, INPUT); //Define o botão de controle como entrada.
Serial.println("ROW,SET,2");
}
void loop(){
if(digitalRead(cont) == HIGH){ //Se "cont" (porta digital 8) estiver em nível lógico ALTO, os valores do sinal serão registrados na coluna de carregamento.
int state = digitalRead(botao); //"State" verifica se o botão está pressionado (LOW) ou não (HIGH).
if(state == HIGH){} //Se o botão não estiver pressionado (HIGH), nada ocorrerá.
else{ //Se o botão for pressionado (LOW), irá ser realizado todos os comandos abaixo.
val = analogRead(potpin);//*0.004887586; //Faz a leitura do potenciômetro e guarda o valor em val.
//Converte os bits para Volts, caso a tensão de ref seja 5V (5/1023=0.004887586).
ROW++; //Incrementa a linha do excel para que a leitura pule de linha em linha.
Serial.print("DATA,TIME,"); //Inicia a impressão de dados, sempre iniciando
Serial.print(",");
Serial.print(val);
Serial.print(",");
//Serial.print(",");
Serial.println(ROW);
if (ROW > 500){ //Laço para limitar a quantidade de dados.
ROW = 0;
Serial.println("ROW,SET,2"); //Alimentação das linhas com os dados sempre iniciando.
}
delay(500); //Espera 50 milisegundos.
}
}
if(digitalRead(cont) == LOW){ //Se "cont" (porta digital 8) estiver em nível lógico BAIXO, os valores do sinal serão registrados na coluna de descarregamento.
int state = digitalRead(botao); //"State" verifica se o botão está pressionado (LOW) ou não (HIGH).
if(state == HIGH){} //Se o botão não estiver pressionado (HIGH), nada ocorrerá.
else{ //Se o botão for pressionado (LOW), irá ser realizado todos os comandos abaixo.
val = analogRead(potpin);//*0.004887586; //Faz a leitura do potenciômetro e guarda o valor em val.
//Converte os bits para Volts, caso a tensao de ref seja 5V (5/1023=0.004887586).
ROW++; //Incrementa a linha do excel para que a leitura pule de linha em linha.
Serial.print("DATA,TIME,"); //Inicia a impressão de dados, sempre iniciando.
Serial.print(",");
Serial.print(",");
Serial.print(",");
Serial.print(",");
Serial.print(",");
Serial.print(val);
Serial.print(",");
Serial.println(ROW);
if (ROW > 500){ //Laço para limitar a quantidade de dados.
ROW = 0;
Serial.println("ROW,SET,2"); //Alimentação das linhas com os dados sempre iniciando.
}
delay(500); //Espera 50 milisegundos.
}
}
Tags:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por