Go Down

Topic: Ler um determinado pino em C# (Read 2092 times) previous topic - next topic

renatop

Fala pessoal,

Existe uma forma de ler um pino específico através do C#?

Por exemplo, eu quero saber se o pino 22 está em HIGH ou em LOW....
ai no C# eu usaria algo do tipo:

bool/int/string pin22 = serialPort1.Read(pino22...);

OU

Manter uma comunicação constante do arduino com a aplicação mas eu só registrar as mudanças de estado do pino 22?

bubulindo

Tens de definir um protocolo para isso.

O mais simples que podes implementar é manter a comunicacão aberta no C# e o Arduino enviar-te o estado do pino em todos os ciclos.

Code: [Select]


setup() {...}

void loop(){

Serial.println(digitalRead(22));

}


O ideal é implementar algo para o computador fazer um polling do Arduino (deixando-te assim saber quando ´€ que o Arduino deu o berro ou foi desligado, por exemplo).

Code: [Select]

C# seria algo assim

serialPort1.Write(S22);

E no Arduino:

Code: [Select]


...
if (Serial.available() > 3) {
   if (Serial.read() == 'S') {
       int number = (10 * (Serial.read()-48)) + (Serial.read() - 48);
       Serial.print(digitalWrite(number));
   }
}

Este código tem uma série de problemas que podem acontecer, mas mostra a funcionalidade que pretendes.
This... is a hobby.

renatop

Entendo..
Achei que fosse possivel receber o dado cru do arduino e ser capaz de interpretar no C#...
E saber de qual pino veio o dado e em qual estado...

bubulindo

Como assim, dado cru?

Tu podes adicionar o que quiseres ao protocolo...

Podes fazer algo assim no Arduino:

Code: [Select]
if (Serial.available() > 3) {
   if (Serial.read() == 'S') {
       int number = (10 * (Serial.read()-48)) + (Serial.read() - 48);
       Serial.print("S");
       unsigned char status = digitalRead(number)
       Serial.print(number);
       Serial.print(":");
       Serial.print( status == HIGH ? "HIGH" : "LOW");
       
   }
}

This... is a hobby.

mmoscz

O arduino é como um "outro computador", rodando um programa que você mandou ele, em C# você pode se comunicar com o arduino, pois seu programa em C# está rodando no seu computador, não no Arduino...
4x Duemilanove (clone)
Uno torrado (clone)
Amiga 1200 40MB
Windows XP

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy