Usando números enteros enviados en serie como una variable

-1

Tengo dos Arduino Uno enlazados en serie a través de XBee Series 1's. Puedo enviar el valor analógico de uno a otro, pero tengo problemas para usarlo como variable en el extremo receptor.

Me gustaría usar el valor analógico para dibujar una línea (piense en un reloj glcd que configuró de forma inalámbrica desde un microcontrolador diferente)

Este es el código del Arduino "receptor" que intenta trazar una línea con respecto al valor analógico entrante a través de una conexión inalámbrica serie.

incomingByte = Serial.read();



int angle = map(incomingByte,80,180,0,180);

itoa(incomingByte,ang,10);

x = (11*cos(radians(angle))+64);
y = (-11*sin(radians(angle))+50); 

glcd.drawstring(0,0,ang);
glcd.drawcircle(64,60,20,BLACK);
glcd.drawline(64,60,x,y,BLACK);

Nada en el glcd cambia a pesar de que está recibiendo el valor analógico a través de una serie inalámbrica

    
pregunta user2744703

1 respuesta

1

No lo tiene en su fragmento de código, así que intente verificar primero los bytes disponibles:

if (Serial.available() > 0) {

    incomingByte = Serial.read();

    int angle = map(incomingByte,80,180,0,180);
    itoa(incomingByte,ang,10);    

    x = (11*cos(radians(angle))+64);
    y = (-11*sin(radians(angle))+50); 

    glcd.drawstring(0,0,ang);
    glcd.drawcircle(64,60,20,BLACK);
    glcd.drawline(64,60,x,y,BLACK);
}
    
respondido por el geometrikal

Lea otras preguntas en las etiquetas