Primeiramente, um Feliz 2018 a todos!

Sr's estou me aperfeiçoando no Arduino, estou realizando um projeto mas estou com uma duvida no meio do caminho, o codigo a seguir, lê as portas Analogicas e me da os valores no Excel, assim realizo o Deployment, o mais dificil acho que ja consegui com ajuda de alguns tutorias.

Então agora quero que conforme o valor lido na porta analogica X, por exemplo se maior que Y, acione a porta Z.

Se alguem poder realizar um exemplo para eu estar seguindo para as outras portas ficarei grato.

Desde já, obrigado!

#include <rExcel.h>

long idx = 0; // index
int outputTiming = 1000; // packet sending timing in ms important: this dermines the output timing
float ent_analog0;
float ent_analog1;
float ent_analog2;
float ent_analog3;
float ent_analog4;
float ent_analog5;

char value[16]; // written or read value

rExcel myExcel; // class for Excel data exchanging

void setup(){

//Serial.begin(9600);
Serial.begin(115200);
delay(1000);

// rx buffer clearing
myExcel.clearInput();

// if analog input pin 5 is unconnected, random analog noise will cause the call to randomSeed() to generate different seed numbers each time the sketch runs
randomSeed(analogRead(5));
}

void loop() {

static unsigned long loopTime = 0;
static unsigned long time1 = 0;
int ret;

loopTime = millis();

// Output Task
// Arduino acts as client making requests to Excel
// instructions performed each outputTiming ms
if ((loopTime - time1) >= outputTiming) {

time1 = loopTime;

// set your custom values
ent_analog0 = (float)analogRead(0) / 1023.0 * 5.0;
ent_analog1 = (float)analogRead(1) / 1023.0 * 5.0;
ent_analog2 = (float)analogRead(2) / 1023.0 * 5.0;
ent_analog3 = (float)analogRead(3) / 1023.0 * 5.0;
ent_analog4 = (float)analogRead(4) / 1023.0 * 5.0;
ent_analog5 = (float)analogRead(5) / 1023.0 * 5.0;

// look the following examples and modify the code as you need

myExcel.write("Embarcados", "B2", ent_analog0, 2);
myExcel.write("Embarcados", "B3", ent_analog1, 2);
myExcel.write("Embarcados", "B4", ent_analog2, 2);
myExcel.write("Embarcados", "B5", ent_analog3, 2);
myExcel.write("Embarcados", "B6", ent_analog4, 2);
myExcel.write("Embarcados", "B7", ent_analog5, 2);

//HISTÓRICO
myExcel.writeIndexed("Embarcados", idx+52, 4, idx);
myExcel.writeIndexed("Embarcados", idx+52, 5,"%date%");
myExcel.writeIndexed("Embarcados", idx+52, 6,"%time%");
myExcel.writeIndexed("Embarcados", idx+52, 7, ent_analog0, 2);
myExcel.writeIndexed("Embarcados", idx+52, 8, ent_analog1, 2);
myExcel.writeIndexed("Embarcados", idx+52, 9, ent_analog2, 2);
myExcel.writeIndexed("Embarcados", idx+52, 10, ent_analog3, 2);
myExcel.writeIndexed("Embarcados", idx+52, 11, ent_analog4, 2);
myExcel.writeIndexed("Embarcados", idx+52, 12, ent_analog5, 2);

idx++;

if (idx > 100)
{
myExcel.clear("Embarcados","D52:L152");
idx = 0;
}
}
}

Exibições: 549

Responder esta

Respostas a este tópico

Isso mesmo Argel, deu certo.

Obg pela ajuda!

Estou tentando implementar um Display LCD 16x2, para que mostre os valores das entradas "ent_analog0, 1, 2, 3, 4, e 5", aparecendo assim então no DISPLAY.

Você consegue fazer o que deseja mas pela serial?

usando LCD muda apenas o processo de inicialização dele mas a saída é parecido, se conseguir serial é meio caminho.

http://www.hobbytronics.co.uk/arduino-float-vars

Não consigo amigo, as leituras das portas analógicas estão sendo transmitidas via cabo serial diretamente pro excel (anexo), mas também gostaria de mostrar esses mesmos valores no LCD.

Resumindo, consegui entender e editar código para o excel, mas o lcd que deve ser mais fácil, estou apanhando haha

Anexos

Mas fazer um hello world usando LCD vc faz?

Sim sim, consegui inserir texto somente, mas não os resultados

Certo, obrigado novamente!

Agora minha prox. missão é colocar as 05 entradas para aparecer os resultados em linha

exemplo:

AO=xx A1=xx ....

Imagino que para isso é só repetir os códigos, mas acredito que a string devera rolar para servir todos os dados, ai então esta a dificuldade.

No momento o código esta assim:

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("A0=");
lcd.setCursor(3, 0);
lcd.print(ent_analog0);

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("A0=");

lcd.print("A1=");
lcd.setCursor(3, 0);
lcd.print(ent_analog0);

Obrigado, deu certo.

Ficou meio confuso com o correr do texto e os valores alterando.

Vou substituir por um Display 20x4, assim consigo inserir todos em formato de tabela.

Grato pela ajuda!

Também funciona, mas talvez um display de 4 linhas consigo inserir mais, e assim então aumentar o tempo para "mudar a tela"

No fim coloca o seu trabalho 

Pode deixar, assim que terminar irei postar, trata-se de um TCC, a intensão e de uma estufa com visualização online no Excel.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço