buenas
estoy haciendo un linker para conectar arduino con autoit, he creado las funciones basicas analogwrite, digitalwrite...etc para usarlas con autoit, pero la analogwrite no funciona!! [smiley=angry.gif] le envio un valor, i si el valor es mallor de 200 se enciende simplemente, i si es menor se apaga..
para enviarle los datos tiene que tener un formato
[valor]
ejemplo: d91
que lo que hace es digitalwrite al pin 9 i le da valor 1
aqui esta el code, la parte que falla es lo de //analogwrite.
int val = 0;
char valx = 0;
char pin = 0;
char serInString[30];
void setup()
{
Serial.begin(9600);
}
void loop()
{
readSerialString(serInString);
valx = serInString[0];
pin = serInString[1];
val = atoi(serInString+2);
switch(pin)
{
case 'a':
pin = 10;
break;
case 'b':
pin = 11;
break;
case 'c':
pin = 12;
break;
case 'd':
pin = 13;
break;
default:
pin = pin -'0';
break;
}
if (valx == 'a')//analogread
{
pinMode(pin,INPUT);
val = analogRead(pin);
delay(50);
Serial.print(val);
kilall();
}
if (valx == 'b')//analogwrite
{
pinMode(pin,OUTPUT);
analogWrite(pin, val);
Serial.println(val);
kilall();
}
if (valx == 'c')//digitalread
{
pinMode(pin, INPUT);
val = digitalRead(pin);
Serial.print(val);
kilall();
}
if (valx == 'd')//digitalwrite
{
pinMode(pin,OUTPUT);
digitalWrite(pin,val);
Serial.println(pin);
kilall();
}
delay(50);
}
void kilall()
{
valx = 0;
pin = 0;
val = 0;
serInString[0] = 'r';
Serial.flush();
}
void readSerialString (char *strArray) {
int i = 0;
if(!Serial.available()) {
return;
}
while (Serial.available()) {
strArray[i] = Serial.read();
i++;
}
strArray[i] = 0; // indicate end of read string
}