Pplware

Interface entre Microcontrolador PC – Parte 2

No seguimento do último post, e como já sabemos comunicar entre PC e Micro-controlador, surge outro desafio: Controlar os outputs e visualizar o estado dos inputs do nosso Arduino, através do computador.

Para exemplificar como fazer, vamos usar neste exemplo o Arduino Mega.

Ferramentas necessárias:

Passo 1 – Programação o Arduino – pinos Digitais

O Arduíno Mega possui 53 pinos. Para este exemplo iremos usar desde o pino 22 até ao 53.

Como exemplo, configuraremos os pinos da seguinte maneira:

Exemplo para um input (pino 22) e um output (pino 40):

Declaração de variáveis:

O Arduino permite que um determinado pino digital possa ser input ou output, para tal, existe uma função que permite essa configuração.

pinMode () – http://arduino.cc/en/Reference/pinMode

Definidos os nossos pinos, de seguida pretendemos comanda-los. Os inputs (entradas) ler o estado deles, e os outputs (saídas) ligar ou desligar.

Protocolo de comunicação que iremos estabelecer entre o Computador e o Micro-controlador

Funções necessárias na programação do arduino

digitalRead() – permite ler o estado de um pino;

digitalWrite() – permite alterar o estado do pino;

Esquema exemplo:

Passo 2 – Programação o Arduino – pinos Analógicos

O Arduíno Mega possui 16 pinos analógicos (A0 – A15). Para este exemplo iremos usar dois pinos A0 e A8.

Protocolo de comunicação que iremos estabelecer entre o Computador e o Micro-controlador.

Funções necessárias na programação do arduino

analogRead() – permite ler o valor de um pino analógico;

Passo 3 – Programação VB

Layout exemplo

Código VB

Botão d22 para receber o estado do pino digital como sendo input:

Private Sub d22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles d22.Click

Dim receber As String

Try

SerialPort1.Write(“a”)

System.Threading.Thread.Sleep(500)

receber = SerialPort1.ReadExisting()

TextBox_22.Text = receber

Catch

End Try

End Sub

Botão para colocar o pino 40 a on

Private Sub on_40_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles on_40.Click

SerialPort1.Write(“s”)

End Sub

Botão para colocar o pino 40 a off:

Private Sub on_40_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles on_40.Click SerialPort1.Write(“s”) End Sub

Botão para visualizar o input analógico 0:

Private Sub ana_0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ana_0.Click

Dim receber As Integer

Dim progressbar As Integer

Try

SerialPort1.Write(“A”)

System.Threading.Thread.Sleep(500)

receber = SerialPort1.ReadExisting()

tb_1.Text = receber

progressbar = receber

progressbar = (receber * 100) / 1023

MyVerticalProgressBar1.Value = progressbar

Catch

End Try

End Sub

Botão para visualizar o input analógico 0:

Private Sub ana_8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ana_8.Click Dim receber As Integer Dim progressbar As Integer Try SerialPort1.Write(“I”) System.Threading.Thread.Sleep(500) receber = SerialPort1.ReadExisting() tb_9.Text = receber progressbar = receber progressbar = (receber * 100) / 1023 MyVerticalProgressBar9.Value = progressbar Catch End Try End Sub

Conclusão

A plataforma Arduíno caracteriza-se pela versatilidade e facilidade de implementar qualquer tipo de projecto que necessite de uma componente electrónica. Com uma “simples” placa, podemos dar “asas a imaginação” e desenvolver projectos fantásticos. Esperamos que este artigo ajude os mais novatos a entrarem no mundo do Arduíno e contamos com experts para explorar esta área. Aguardem pelos próximos artigos!

Artigos relacionados


Download: Código Fonte

Exit mobile version