collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Sistema Rega Automático com interface VB  (Lida 23924 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Sistema Rega Automático com interface VB
« Responder #30 em: 08 de Setembro de 2012, 19:43 »
Mas o tempo não aumenta enquanto o arduino está a fazer reset, fica logo com o tempo errado.
O mais facil é mesmo usar um rtc, até pode pedir uma amostra, compra a pilha e o cristal e gasta 1€.
Avr fanboy

Offline danuca

  • Mini Robot
  • *
  • Mensagens: 31
Re: Sistema Rega Automático com interface VB
« Responder #31 em: 08 de Setembro de 2012, 19:48 »
Eu vou falar com o meu prof mas em principio nao vai dar.

Eu agora estou a ler no VB a hora do arduino, apesar de ainda nao estar a conseguir ler os valores correctos, mas acho que nao vou conseguir acertar isto :S

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.768
Re: Sistema Rega Automático com interface VB
« Responder #32 em: 08 de Setembro de 2012, 21:12 »
Mas o tempo não aumenta enquanto o arduino está a fazer reset, fica logo com o tempo errado.
O mais facil é mesmo usar um rtc, até pode pedir uma amostra, compra a pilha e o cristal e gasta 1€.

Esqueci-me desse pormenor...

Um pouco fora de comum, sabendo o tempo de reset do arduino nao dava para "acertar" as horas sempre que ele fizesse reset??

Cumprimentos,
André Carvalho.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Sistema Rega Automático com interface VB
« Responder #33 em: 08 de Setembro de 2012, 21:41 »
Mas o tempo não aumenta enquanto o arduino está a fazer reset, fica logo com o tempo errado.
O mais facil é mesmo usar um rtc, até pode pedir uma amostra, compra a pilha e o cristal e gasta 1€.

Esqueci-me desse pormenor...

Um pouco fora de comum, sabendo o tempo de reset do arduino nao dava para "acertar" as horas sempre que ele fizesse reset??



E como sabes se foi um simples reset ou se esteve desligado durante 12h?
Avr fanboy

Offline danuca

  • Mini Robot
  • *
  • Mensagens: 31
Re: Sistema Rega Automático com interface VB
« Responder #34 em: 08 de Setembro de 2012, 21:48 »
Não sei zordlyon mas talvez funcionasse.
Mas eu neste momento queria era ter isto a funcionar. Vou deixar aqui em anexo o meu programa arduino e VB 2010.

Tenho uma label no VB que deveria ler as horas, mas nem sempre lê bem, por exemplo depois de ligado fica a ler, mas passado cerca de 2 min desaparece, ou entao aparecem caracteres estranhos.
O botao que tenho no VB é para acertar a hora que é digitada na única textbox que lá tenho, mas nao estou a conseguir pôr a dar.

Se alguém tiver um tempinho e possa dar uma vista de olhos no meu programa agradecia.

É que depois de eu conseguir acertar a hora, penso que depois será mais fácil receber outros valores para accionar a rega e assim, se alguém me puder ajudar era fantástico.


Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Sistema Rega Automático com interface VB
« Responder #35 em: 08 de Setembro de 2012, 22:19 »
Acho que estão a complicar isto um bocado...
Se não pode usar RTC, usa a biblioteca Time, que é acertada pelo PC.
Depois o PC envia a que horas é que é para ligar e o Arduino guarda essa informação.
O Arduino vai verificando se já chegou a essa hora, e caso sim, liga a rega.

EDIT:
Estive a ver o teu código...
SerialPort1.Write("TextBox1.Text")  ::) Tira as aspas.
e
System.Threading.Thread.Sleep(250) num timer...

EDIT2:
E tem vários problemas.
Abres o serial no início e fechas no fim, mas durante o programa estás sempre a abri-las e fechá-las. Isso está mal. E não precisas disto: System.Threading.Thread.Sleep(250) se tirares os SerialPort1.Open() e SerialPort1.Close(), mas tens que fazer umas alterações...

EDIT3:
O programa do Arduino também não está bem. O que é isto?:
Serial.read();//flush the delim
« Última modificação: 08 de Setembro de 2012, 22:35 por Pedrock »

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.768
Re: Sistema Rega Automático com interface VB
« Responder #36 em: 09 de Setembro de 2012, 00:44 »
Mas o tempo não aumenta enquanto o arduino está a fazer reset, fica logo com o tempo errado.
O mais facil é mesmo usar um rtc, até pode pedir uma amostra, compra a pilha e o cristal e gasta 1€.

Esqueci-me desse pormenor...

Um pouco fora de comum, sabendo o tempo de reset do arduino nao dava para "acertar" as horas sempre que ele fizesse reset??



E como sabes se foi um simples reset ou se esteve desligado durante 12h?

True...esquece lá a ideia...há coisas que mais valia a pena estarmos calados...  ;D
Cumprimentos,
André Carvalho.

Offline danuca

  • Mini Robot
  • *
  • Mensagens: 31
Re: Sistema Rega Automático com interface VB
« Responder #37 em: 09 de Setembro de 2012, 01:28 »
PEDROCK: desde já obrigado pela disponibilidade. Esta linha no arduino 'Serial.read();//flush the delim' eu nao sei o que faz, só sei que se correres o programo arduino que eu enviei, e se meteres por exemplo:22:22:12-01/02/1992' no serial monitor, ele acerta as horas, no entanto se tirar isso como disseste já nao dá.

Em relação ao VB, eu preciso mesmo de abrir e fechar as portas porque eu nao quero estar sempre a enviar os mesmos caracteres pelo SerialPort, porque se vires nas imagens que eu deixei, a form4 vai ter várias funções, ou seja acho que vou ter de estar sempre a abrir e fechar o SerialPort, mas não tenho a certeza.

Tirei as aspas no SerialPort1.Write("TextBox1.Text") mas continuo sem conseguir valores nenhuns, e o mais estranho é a label nao receber correctamente os valores da hora default.

Mas diz-me o que achas que tenho de mudar para pôr isto a dar.


Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Sistema Rega Automático com interface VB
« Responder #38 em: 09 de Setembro de 2012, 01:42 »
Esse serial.read() serve para "comer" os caracteres que usas como delimitador de cada valor, ou seja os : / e - que não são numeros, é uma maneira um bocado feia de fazer isso..
Isso resolve-se numa linha usando o sscanf, recebes a string toda e parsas com o scanf e ficas logo com os valores todos separados em variaveis.
Avr fanboy

Offline danuca

  • Mini Robot
  • *
  • Mensagens: 31
Re: Sistema Rega Automático com interface VB
« Responder #39 em: 09 de Setembro de 2012, 02:56 »
Boas novamente pessoal

Sei que já é um bocado tarde, mas consegui agora o que queria para já. Ou seja, tenho o relógio no arduino sempre a funcionar, consigo envia-lo para o VB, e consigo alterar a hora no VB.

Com as dicas do PEDROCK e mudando a linha do VB ' ReadExisting' para 'Readline' consegui pôr a dar.

Deixo aqui os dois programas para quem quiser ver ou experimentar.

Em principio terei mais problemas antes de acabar o projecto, por isso devo vir aqui chatear a cabeça ao pessoal.

Obrigado pela ajuda .

Offline danuca

  • Mini Robot
  • *
  • Mensagens: 31
Re: Sistema Rega Automático com interface VB
« Responder #40 em: 10 de Setembro de 2012, 17:34 »
Boas pessoal

Como eu calculei, vou precisar novamente da vossa ajuda se puderem.

Se ainda se lembram, eu neste momento consigo ler o relógio do arduino no VB, e acerta-lo no VB.
Adicionei uma nova textbox e um novo botao, para enviar um horário e ligar um led quando esse horário coincidisse com a hora actual. O problema é que como estou a usar muito o serial read, isto está uma confusão. O que me está a acontecer quando envio o novo horário para ligar o LED, é que ele assume o serial read, e corrige a hora.

Alguém tem uma ideia para o novo horário apenas servir de comparação com o horário actual ?


código VB


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        SerialPort1.Open()
        SerialPort1.Write("c")
        SerialPort1.Write(TextBox2.Text)
        SerialPort1.Close()


    End Sub
End Class



-----------------//--------------------

ARDUINO

#include <Time.h> 

String readString;
int ledPin=13;

void setup()  {
  Serial.begin(9600);
  //Serial.println("Waiting for sync message");
  pinMode(ledPin,OUTPUT);
  digitalWrite(ledPin,LOW);
}

void loop(){   
  char on_sensor =  'n';
  if(Serial.available()>0)
  {
   
    on_sensor=Serial.read();
   
  }
    if(on_sensor == 'c')
    {
      time_t t= now();
      char on_rega[20] = { Serial.read(), Serial.read() , ':',Serial.read(), Serial.read() , ':', Serial.read(), Serial.read() , '-', Serial.read(), Serial.read() , '/', Serial.read(), Serial.read() , '/',Serial.read(), Serial.read() , Serial.read(), Serial.read() };
     
      if (on_rega[20] == t)
      {
        digitalWrite(ledPin,HIGH);
      }
  }
  (...)


Obrigado

Offline Sextafeira

  • Mini Robot
  • *
  • Mensagens: 75
Re: Sistema Rega Automático com interface VB
« Responder #41 em: 10 de Setembro de 2012, 21:04 »
eu fiz assim

criei duas variáveis,

envio o "R" para a porta e o arduino fica em modo de read só lê a serial.

envio o "W" para a porta e o arduino fica em modo write, ou seja faz os serial prints e writes mas não le

isto eu fiz para a configuração de um delay para poder variar o tempo pelo vb e chamar diferentes sub rotinas.

os read é só para ler as entradas e etc.


poderá existir outras formas, mas de arduino não percebo nada...um exemplo era enviar para serial "W800"
em que W serial de write e os "800" para a variável, para isso serial necessário um split ou mid qualquer assim. xD

Offline danuca

  • Mini Robot
  • *
  • Mensagens: 31
Re: Sistema Rega Automático com interface VB
« Responder #42 em: 10 de Setembro de 2012, 23:32 »
Mas o problema é que eu estou sempre a enviar as horas actuais, e dá conflito com a hora que eu quero enviar para regar. A minha prof sugeriu comprar um RTC:

http://pt.farnell.com/microchip/mcp7940m-i-ms/rtc-i2c-64bytes-sram-8msop/dp/2098889?in_merch=Produtos%20novos&MER=i-9b10-00002068

Sabem onde posso comprar um deste género ?
Alguém já trabalhou com algum destes RTC e com arduino ?

Cumps

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Sistema Rega Automático com interface VB
« Responder #43 em: 11 de Setembro de 2012, 00:37 »
Mas o problema é que eu estou sempre a enviar as horas actuais, e dá conflito com a hora que eu quero enviar para regar. A minha prof sugeriu comprar um RTC:

http://pt.farnell.com/microchip/mcp7940m-i-ms/rtc-i2c-64bytes-sram-8msop/dp/2098889?in_merch=Produtos%20novos&MER=i-9b10-00002068

Sabem onde posso comprar um deste género ?
Alguém já trabalhou com algum destes RTC e com arduino ?

Cumps


fala com a G7, eles têem lá outro parecido mas que tem muito código espalhado na internet já feito.


Offline danuca

  • Mini Robot
  • *
  • Mensagens: 31
Re: Sistema Rega Automático com interface VB
« Responder #44 em: 11 de Setembro de 2012, 02:47 »
ASENA: estás a falar deste correcto ?

http://www.g7electronica.net/pt/ics/329-ds1307.html