Estoy tratando de explotar los datos DMX y eso requiere 4 pulsos. No tengo mucha suerte con los resultados que estoy comprobando para ver qué tan bueno es el Arduino para retrasar ... Parece ser bastante terrible en eso.
Aquí hay una pequeña prueba rápida que hice:
unsigned long ptime;
void setup() {
Serial.begin(9600);
}
void loop() {
ptime = micros();
delayMicroseconds(4);
Serial.println(micros() - ptime);
delay(1000); //just to keep the serial monitor from going nuts
}
Y los resultados:
8 4 8 4 4 4 4 4 8 8 8 8 4 8 8 4 4 8 4 4 4 8 8 8 4 8 4
Me sorprendió lo mala que es su precisión. ¡Es el doble del tiempo que quería retrasar, pero ni siquiera es consistente con donde podría dividir por 2!
¿Hay algo que pueda hacer para obtener resultados correctos y consistentes?