Funções parametrizadas

Ora boas.

São as minhas primeiras "aventuras" com o Arduino, assim como a minha primeira participação no fórum.

Estou a desenvolver um projecto com recurso ao Motor Shield da Adafruit, para trabalhar com 2 motores de passo, a partir do VB.NET.

Para a minha duvida, o codigo que interessa é o seguinte: void loop() { if (Serial.available()>0) { incomingMessage = Serial.read();

switch (incomingMessage) { case 'R': motor.step(100,FORWARD,DOUBLE); motor.release(); break; }//switch } //IF }//void

Até aqui tudo bem, nao ha que enganar. A minha pergunta é: Como faço para chamar uma função com parametros a partir do VB ? Por exemplo, imaginem que quero, no VB, informar o Arduino quantos passos quero que o motor dê, em vez de estar a indicar 100 no loop?

Muito obrigado

Acho que estás no fórum errado.

Basicamente estás à procura de como enviar dados via porta série, e embora possa haver aqui quem te consiga ajudar, não será o sítio indicado para pedir informações relativamente a VB.net. :\

Se estás à procura dum protocolo de comunicação entre o Arduino e o VB.net, podes fazer algo assim:

#include <stdlib.h>

unsigned char temp[4]; 
temp[3] = '\0';//terminator for atoi()
int numero_passos = 0; 

void loop()
{
  if (Serial.available()>4) //imaginemos que pretendemos receber a direcção do passo e número de passos. 
  {
    incomingMessage = Serial.read();
   
   switch (incomingMessage)
   {
     case 'R':
         for (unsigned char i=0; i<3; i++) 
             temp[i] = Serial.read();    
         numero_passos = atoi(temp);

         motor.step(numero_passos,REVERSE,DOUBLE);
         motor.release();
         break;
     case 'F': 
          for (unsigned char i=0; i<3; i++) 
             temp[i] = Serial.read();    
         numero_passos = atoi(temp);

         motor.step(numero_passos,FORWARD,DOUBLE);
         motor.release();
         break;


     default: 
         
         break; 
   }//switch  
  } //IF  
}//void

O que precisas depois é de enviar uma string no formato YXXX em que Y é o sentido e XXX é o número de passos.

Se estou no fórum errado, as minhas desculpas :~ A intenção não era tanto a de tirar dúvidas quanto ao VB, mas mais em relação ao código no Arduino.

De qualquer forma, muito obrigado, já consegui :). Adicionei inclusive a possibilidade de escolher a velocidade do motor no mesmo comando.

Obrigado