Bem pessoal. eu gostaria de gerar uma planilha, somente quando acionasse as portas digitais em nível logico 0 e/ou 1. Por exemplo: Tenho uma shield de reles acoplada ao arduino. quando acionar o primeiro rele, quero que gere no histórico da planilha RELE (1), STATUS (ligado ou desligado), DATA (dia/mes/ano), HORA(hh:mm:ss). E comunicando com o excel. Tenho visto exemplos aqui, so que todos dependem de um valor analogico, que fica numa "varredura constante". No meu caso quero que ele complete uma linha no excel apenas quando acionar e desligar o relé.

Aqui está um código que fiz:

http://pastebin.com/raw.php?i=Xp9qLE5S

Nele quando digito no serial monitor "v1on" o relé 1 liga, 5 segundos depois ele desliga, ou antes disso, digitando "v1off", o mesmo desliga tambem.

Aqui meu serial monitor com o acionamento do rele 1:

http://prntscr.com/7iyzxy

Exibições: 1890

Responder esta

Respostas a este tópico

Olha Carlos. Esse código está acionando normalmente os dois reles por dois botoes. Se voce puder compila-lo, percebera no monitor serial, que esta gerando normalmente como eu preciso. So nao consigo passar os dados para o Excel. segue o código.

unsigned long tempo1 = millis();
unsigned long tempo2 = millis();
int l1 = 1;
int l2 = 1;
int led1 = 9;
int led2 = 8;
int botao1 = 7;
int botao2 = 6;
int estadorele1 = LOW;
int estadorele2 = LOW;
int temporizador1 = 0;
int temporizador2 = 0;
int leitura1 = 0;
int leitura2 = 0;
int x;
int y;

void setup(){
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(botao1, INPUT);
pinMode(botao2, INPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
Serial.println("CLEARDATA");
Serial.println("LABEL, DATA, HORA, SETOR, STATUS");;
x = 1;
y = 2;}

void loop(){
leitura1 = digitalRead(botao1);
if (leitura1 != 0){
while(digitalRead(botao1) != 0){
delay(100);}
estadorele1 = !estadorele1;
digitalWrite(led1, estadorele1);
if (estadorele1 == 1){
Serial.print(" DATA,");
Serial.print(" HORA, ");
Serial.print("Led ");
Serial.print(x);
Serial.print(",");
Serial.println(" Ativo");}
else{
Serial.print(" DATA,");
Serial.print(" HORA, ");
Serial.print("Led ");
Serial.print(x);
Serial.print(",");
Serial.println(" Inativo");}}


leitura2 = digitalRead(botao2);
if (leitura2 != 0){
while(digitalRead(botao2) != 0){
delay(100);}
estadorele2 = !estadorele2;
digitalWrite(led2, estadorele2);
if (estadorele2 == 1){
Serial.print(" DATA,");
Serial.print(" HORA, ");
Serial.print("Led ");
Serial.print(y);
Serial.print(",");
Serial.println(" Ativo");}
else{
Serial.print(" DATA,");
Serial.print(" HORA, ");
Serial.print("Led ");
Serial.print(y);
Serial.print(",");
Serial.println(" Inativo");}}

l1 = digitalRead(led1);
if (leitura1 == HIGH && temporizador1 == 0) {
temporizador1 = 1;
tempo1 = millis();}
if (millis() - tempo1 >= 5000 && temporizador1 == 1){
digitalWrite(led1, LOW);
temporizador1 = 0;
Serial.print(" DATA,");
Serial.print(" HORA, ");
Serial.print("Led ");
Serial.print(x);
Serial.print(",");
Serial.println(" Inativo");}

l2 = digitalRead(led2);
if (leitura2 == HIGH && temporizador2 == 0) {
temporizador2 = 1;
tempo2 = millis();}
if (millis() - tempo2 >= 5000 && temporizador2 == 1){
digitalWrite(led2, LOW);
temporizador2 = 0;
Serial.print(" DATA,");
Serial.print(" HORA, ");
Serial.print("Led ");
Serial.print(y);
Serial.print(",");
Serial.println(" Inativo");}}

Novamente venho falar sobre Excel.

O Excel é um aplicativo para ler planilha em formato xls.No mesmo Excel podemos ler arquivo no formato csv.

A vantagem em se usar um arquivo no formato csv é devido ele ser multiplataforma,permitindo ser aberto tanto no Windows ou Linux (etc).

Te proponho você usar o CSV Comp Framework para registrar seus dados.

Com arquivo csv ,você pode abrir em qualquer grid.Crie uma aplicação em Pascal usando o Lazarus e registre facilmente no seu PC.Fiz muitos exemplo usando ARM com CQL.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço