Olá pessoal!

Estive vendo alguns tutoriais na internet e encontrei uma aplicação para acender/ apagar led pela porta serial usando VB. Eu achei mais fácil usar VB, pois foi a que funcionou e consegui fazer uma interface gráfica até que legal. Porém estou aprendendo ainda... 

Basicamente funciona da seguinte forma, eu envio um dado no vb, caso seja idêntico a 'a', acende o LED, se for igual a 'b', apaga o LED


Em execução:

Código em VB:

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'inicial
Label2.Text = "Desativada a porta"
Label1.Text = "apagada"

'Configuração da Porta COM12
SerialPort1.BaudRate = 19200
SerialPort1.Parity = System.IO.Ports.Parity.None
SerialPort1.DataBits = 0
SerialPort1.StopBits = System.IO.Ports.StopBits.One

SerialPort1.PortName = "COM12"

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'proteção de erro
If (SerialPort1.IsOpen = False) Then
SerialPort1.Open()
End If

Label2.Text = "Ativada a porta"

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
SerialPort1.Write("a")
System.Threading.Thread.Sleep(250)
Label1.Text = SerialPort1.ReadExisting()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
SerialPort1.Write("b")
System.Threading.Thread.Sleep(250)
Label1.Text = SerialPort1.ReadExisting()
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
SerialPort1.Close()
Label2.Text = "Desativada a porta"
End Sub

Private Sub MaskedTextBox1_MaskInputRejected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs)

End Sub

End Class

Código Arduino

void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
}

void loop() {
// put your main code here, to run repeatedly:
int readx = Serial.read();

if (readx == 'a')
{
digitalWrite(13, HIGH);
Serial.print("acesa");

}

if (readx == 'b')
{
digitalWrite(13, LOW);
Serial.print("apagada");
}

}

Estou agora tentando fazer para acender mais LEDs independentes, mas para isso estou estudando como fazer. Se alguém tiver alguma ideia, por favor não deixem de comentar!! Valeeu

Exibições: 5278

Responder esta

Respostas a este tópico

Para acender mais LEDs individualmente é muito simples, basta adicionar mais botões e a cada botão você coloca o comando para escrever na porta serial um caracter ainda não usado (c, d, e...), depois no Arduíno um simples IF resolve.

Legaal! Criei essa aplicação e consegui acender esses LEDs, porém agora estou querendo ler valores distintos do Arduíno, valores analógicos diferentes usando o VB. Procurei algumas coisas em arrays, porém é complicado, como irei saber que aquele dado é o dado que estou querendo ler? 

Exemplo: Tenho um sinal de temperatura e um sinal de nível, e ele fica enviando os dados pelo comando Serial.print(Temperatura) e logo abaixo Serial.print(nivel), mas no VB como faria pra saber quem é quem e disponibilzá-los para leitura?

Acredito que com isso, poderei evoluir com meu projetinho, hehe! Logo posto o que eu consegui fazer, é que estou fora de casa!

Valeeu!

Eu penso em dois métodos para fazer isso. O primeiro consiste basicamente em enviar para a serial um carácter antes do dado, por exemplo, envia 't' e em seguida a temperatura, ao ler 't' o VB sabe que o próximo dado recebido é a temperatura, e a mesma coisa com todos as outras leituras que você tiver, cada uma com um carácter diferente.
Outro método seria o VB, por meio de um tiver, enviar um dado ao arduino 'dizendo' que ele quer um dado específico, por exemplo, o VB envia 't' para o arduino, o arduino entende que o VB quer o valor referente a temperatura e o envia, o VB recebe o dado, e por ter sido ele que solicitou, já sabe do que se trata.
Deve existir outros métodos, mas agora eu só consegui pensar nesses dois.

oi poderia colocar os arquivos do seu projeto

tentei refaze-lo aqui mas n consegui n

Você usou no programa VB a mesma serial que usa no IDE do Arduino ?

No exemplo é a COM 12.

usei sim

mas da erro =D

sou iniciante...

da uma ajuda ai

Divulgue as telas do VB e da IDE.

Tem alguma mensagem de erro?

Digitou a para ligar e b para desligar ?

Já que vai aprender, aproveita e usa uma outra linguagem melhor que VB. (dica)

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço