Arduino + XBox 360 RF módulo [cerrado]

1

Recientemente intenté hacer un adaptador de controlador de XBOX para mi PC según estas instrucciones . Como tengo muy poco conocimiento eléctrico, inmediatamente tuve problemas.

Conectó todo como se muestra y usando el código provisto, nada funciona, no se enciende.

Al usar mi propio código, funciona (algo):

int sync_pin = 2;
int data_pin = 3;
int clock_pin = 4;

int led_cmd[10] = {0,0,1,0,0,0,0,1,0,0};
int anim_cmd[10] = {0,0,1,0,0,0,0,1,0,1};
int sync_cmd[10] = {0,0,0,0,0,0,0,1,0,0};

void setup()
{                
    Serial.begin(9600);
    Serial.write("Initializing..");
    Init();
    SendData(anim_cmd, 7000);
}

void loop()
{

}

void SendData(int data[], int delay_ms)
{
    pinMode(data_pin, OUTPUT);
    digitalWrite(data_pin, LOW);

    int prev = 1;

    for (int i = 0; i < 10; i++)
{
        while (prev == digitalRead(clock_pin)) { }

        prev = digitalRead(clock_pin);
        digitalWrite(data_pin, byte(data[i]));

        while (prev == digitalRead(clock_pin)) { }

        prev = digitalRead(clock_pin);
    }

    digitalWrite(data_pin, HIGH);
    pinMode(data_pin, INPUT);
    delay(delay_ms);
}

void Init()
{
    pinMode(data_pin, INPUT);
    pinMode(clock_pin, INPUT);
    digitalWrite(clock_pin, HIGH); // SOMEHOW IT NEVER WORKS WITHOUT THIS LINE!!!

    SendData(led_cmd, 0);
    delay(50);
}

No se enciende todas las veces. Se sincroniza, a veces.

El mayor problema es que cada vez que toco el módulo de RF o Arduino, o incluso cuando muevo mi mano cerca de él, todo se vuelve loco. Comienza a parpadear, se enciende o se apaga, y Arduino se reinicia.

Como he mencionado, soy nuevo en electrónica, así que probablemente haya conectado algo mal. Todo lo que hice fue conectar directamente el módulo RF a los pines del Arduino. Sin resistencias ni diodos. Nada. Una cosa que se me ocurrió fue proteger los cables con papel de aluminio. :)

Entonces, si aún no destruyo mi equipo, tal vez alguien sepa lo que se podría hacer.

    
pregunta VytenisJ

1 respuesta

1

Bien, así que descubrí cuál era el problema desde el principio. Como he dicho, conecté todo directamente. Debido a eso, los pines Arduino a veces comienzan a captar ruidos eléctricos y cambian de estado como se describe en el tutorial sobre pines digitales

  

Esto también significa, sin embargo, que los pines configurados como pinMode (pin, INPUT) sin nada conectado a ellos, o con cables conectados a ellos que no están conectados a otros circuitos, informarán cambios aparentemente aleatorios en el estado del pin, recogiendo electricidad el ruido del entorno, o el acoplamiento capacitivo del estado de un pin cercano.

Por lo tanto, la adición de una resistencia de extracción a cada pin de datos resolvió el problema.

    
respondido por el VytenisJ

Lea otras preguntas en las etiquetas