Paso 4: Señal lectura TX
Subir a Arduino el código proporcionado por benripley en este post (imagen superior), conectar el Arduino al ordenador y abra al monitor serie.
volatile int pwm_value = 0;volatile int prev_time = 0; void setup() { Serial.begin(115200); // when pin D2 goes high, call the rising function attachInterrupt(0, rising, RISING); } void loop() { } void rising() { attachInterrupt(0, falling, FALLING); prev_time = micros(); } void falling() { attachInterrupt(0, rising, RISING); pwm_value = micros()-prev_time; Serial.println(pwm_value); }
Presionando cada botón y empujar palos arriba y abajo, verá una secuencia de números que representan la longitud de los pulsos de microsegundos (tiempo que la señal de alto).
Cuando presioné el palo izquierdo, el controlador envía (varias veces):
84 564 564 564 560 1356 860 560 564 560 560 564 560 564 860 560 560 560 560 564 1356 860 564 560 564 564 560 564 560 864 564 564 564 564 564 (...)
Así, podemos ver: un largo pulso de 1356 micros (es "sincronizar" un buen nombre?) dos pulsos de 860 micros (comando) y 12 pulsos de 564 micros
Cuando suelta:
564 564 564 564 564 564 564 564 564 564 560 564 564 564 1356 1360 564 564 564 564 564 564 564 564 564 564 560 560 564 564
Otra vez un pulso largo de 1356 micros y 14 pulsos de 564 micros (sin código)
Al final conseguí la tabla anterior.