Von einem C# Projekt aus das Arduino Board ansteuern (pin 01 an usw.)
Dazu verwende ich die Dll FirmataVB und auf dem Board habe ich dir StandartFirmata2.1.
mit folgendem Aufruf sende ich eine nachricht ans Board
void item_DigitalSend(int pinNumber, int value)
{
arduino.DigitalWrite(pinNumber, value);
}
Hier ist der Code aus der StandartFirmata Lib
void digitalWriteCallback(byte port, int value)
{
switch(port) {
case 0: // pins 2-7 (don't change Rx/Tx, pins 0 and 1)
// 0xFF03 == B1111111100000011 0x03 == B00000011
PORTD = (value &~ 0xFF03) | (PORTD & 0x03);
break;
case 1: // pins 8-13 (14,15 are disabled for the crystal)
PORTB = (byte)value;
break;
case 2: // analog pins used as digital
byte pin;
byte pinModeMask;
for(pin=0; pin<8; pin++)
if(pinStatus[pin] == OUTPUT)
pinModeMask += 1 << pin;
PORTC = (byte)value & pinModeMask;
break;
}
}
Leider funktioniert es nicht, d.h. die events der C# GUI funktionieren, er sendet via Serial aber am Board tut sich nichts.
Auf dem Board müsste lt. beschreibung der StandartFirmata eigentlich die CallBackFunction aufgerufen werden oder verstehe ich das falsch.