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: 252

Responder esta

Respostas a este tópico

Voce pode fazer isso usando um "if" ficaria assim.

if( porta_x > = porta_y)

digitalWrite(porta_z, HIGH);

}

Isso mesmo Argel, deu certo.

Obg pela ajuda!

BLZ.

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

já tentou assim?

lcd.setCursor(0, 1);
lcd.print(analog0);

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);

Ainda não testei, ve se funciona.

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

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

//Rolando o display para a direita 12 vezes
for (int i = 0; i < 12; i++) {
lcd.scrollDisplayRight ();
delay(600);// velocidade do scroll

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço