Paso 2: LinkIt una parte y el código
El código dado en Instructable de Timinator01 debe trabajar para un UNO (realmente no tengo idea por qué no funcionó para mí). Pero porque estamos usando un LinkIt, tenemos que modificarlo. El único problema es la función del sueño utilizando la librería AVR. Porque LInkIt uno no tiene la biblioteca AVR, solo podemos eliminar esta función en el código y funciona perfectamente. A continuación es el código modificado. Copie en un boceto en blanco y suba a su LinkIt uno.
/* Arduino code to communicate with xbox 360 RF module.Original work by (yaywoop) / additional ideas from Alexander Martinez - modified by dilandou (www.dilandou.com, www.diru.org/wordpress) */#define sync_pin 2 //power button repurposed for sync button (pin 5 on the module) #define data_pin 3 //data line (pin 6 on the module) #define clock_pin 4 //clock line (pin 7 on module) int led_cmd[10] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 0}; //Activates/initialises the LEDs, leaving the center LED lit. int anim_cmd[10] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1}; //Makes the startup animation on the ring of light. int sync_cmd[10] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0}; //Initiates the sync process. volatile boolean sync_enable = 0;void sendData(int cmd_do[]) { pinMode(data_pin, OUTPUT); digitalWrite(data_pin, LOW); //start sending data. int prev = 1; for (int i = 0; i < 10; i++) { while (prev == digitalRead(clock_pin)) {} //detects change in clock prev = digitalRead(clock_pin); // should be after downward edge of clock, so send bit of data now digitalWrite(data_pin, cmd_do[i]); while (prev == digitalRead(clock_pin)) {} //detects upward edge of clock prev = digitalRead(clock_pin); } digitalWrite(data_pin, HIGH); pinMode(data_pin, INPUT); }void initLEDs() { sendData(led_cmd); delay(50); sendData(anim_cmd); delay(50); }void setup() { Serial.begin(9600); pinMode(sync_pin, INPUT); digitalWrite(sync_pin, HIGH); pinMode(data_pin, INPUT); pinMode(clock_pin, INPUT); delay(2000); initLEDs(); }void loop() { Serial.println("Syncing."); sendData(sync_cmd); delay(10000); }
Alambre para arriba como abajo:
- Pin 5 en el ROL (pin de sincronización): Pin 2 en la uno de LinkIt
- PIN 6 en el ROL (pin de datos): Pin 3 en LinkIt uno
- PIN 7 en el ROL (pin de reloj): Pin 4 en LinkIt uno
Una vez hecho esto, pasemos al siguiente paso.