Hallo,
ich habe ein Problem. Und zwar möchte ich vom Arduino 16 zustände senden. Und mit Processing verarbeiten. Der arduino code sieht wie folgt aus:
Serial.write('H');
bitWrite(Daten,0,VS1);
bitWrite(Daten,1,VS2);
bitWrite(Daten,2,VS3);
bitWrite(Daten,3,VS4);
bitWrite(Daten,4,GAB1);
bitWrite(Daten,5,GAB2);
bitWrite(Daten,6,AHS);
bitWrite(Daten,7,L1);
//----------------
bitWrite(Daten,8,L2);
bitWrite(Daten,9,L3);
bitWrite(Daten,10,L4);
bitWrite(Daten,11,automatik);
bitWrite(Daten,12,autostoer);
bitWrite(Daten,13,GBE1);
bitWrite(Daten,14,GBE2);
bitWrite(Daten,15,1);
Serial.write((Daten));
Ich glaube das mein problem eher im Processingcode liegt, habe aber keine ideen mehr woran das liegt. Die ersten 4 (VS1,2,3,4) die funktionieren. Und was nicht funktioniert sind L1,2,3,4 und GBE1 und GBE2. die anderen kann ich mom nicht testen.
Hier einmal mein Processingcode:
VS3=false;
}
else
{
VS3=true;
}
//VS4
bit=8;//bit nr 1000
isSet=(val & bit);
if (isSet ==0)
{
VS4=false;
}
else
{
VS4=true;
}
// GAB1
bit=16;//bit nr0001 0000
isSet=(val & bit);
if (isSet ==0)
{
GAB1=false;
}
else
{
GAB1=true;
}
// GAB2
bit=32;//bit nr0010 0000
isSet=(val & bit);
if (isSet ==0)
{
GAB2=false;
}
else
{
GAB2=true;
}
// AHS
bit=64;//bit nr0100 0000
isSet=(val & bit);
if (isSet ==0)
{
AHS=false;
}
else
{
AHS=true;
}
// L1
bit=128;//bit nr1000 0000
isSet=(val & bit);
if (isSet ==0)
{
L1=false;
}
else
{
L1=true;
}
//----------------------------
// L2
bit=256;//256;//bit nr 0001 000 0000
isSet=(val & bit);
if (isSet ==0)
{
L2=false;
}
else
{
L2=true;
}
// L3
bit=512;//;//bit nr0010 0000 0000
isSet=(val & bit);
if (isSet ==0)
{
L3=false;
}
else
{
L3=true;
}
// L4
bit=1024;//;//bit nr 0100 0000 0000
isSet=(val & bit);
if (isSet ==0)
{
L4=false;
}
else
{
L4=true;
}
// auto
bit=2048;//;//bit nr 1000 0000 0000
isSet=(val & bit);
if (isSet ==0)
{
auto=false;
}
else
{
auto=true;
}
// autostoer
bit=4096;//;//bit nr 0001 0000 0000 0000
isSet=(val & bit);
if (isSet ==0)
{
autostoer=false;
}
else
{
autostoer=true;
}
// GBE1
bit=8192;//;//bit nr 0010 0000 0000 0000
isSet=(val & bit);
if (isSet ==0)
{
GBE1=false;
}
else
{
GBE2=true;
}
// GBE2
bit=16384;//;//bit nr 0010 0000 0000 0000
isSet=(val & bit);
if (isSet ==0)
{
GBE2=false;
}
else
{
GBE2=true;
}
}
}
myPort.clear();//bufferlöschen damit neue daten genommen werden
.
.
//die verarbeitung der Daten habe ich aus übersichtlichkeits Gründen entfernt
.
.
}
int readArduinoInt()
{
int val=0;
val = myPort.read();
//val = myPort.read()+val;
return val;
}
vlt. kann mir jemand von euch mir da weiter helfen.
mfg rené