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:
- Visual Basic 2008
- Programa de programação do Arduíno Mega
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:
- Pino 22 até 37 – definir como inputs (entradas).
- Pino 38 até 53 – definir como outputs (saídas).
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.
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:
- input no pino 22;
- output no pino 40;
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
- Conhece a plataforma de desenvolvimento Arduino?
- Programe no Arduíno – Alerta para gelo na estrada
- Comunicação entre PC e Arduino