El operador <<
es un left shift . desplaza cada bit un número de posiciones a la izquierda, y llena las piezas faltantes con cero:
1<<0 equals 0b00000001
1<<1 equals 0b00000010
1<<2 equals 0b00000100
... etc ...
Si i
aumenta de 0 a 7 en un bucle, obtendrá un patrón con un bit que parece moverse a través de cada posición. El orden real de los LED dependerá de su circuito físico. Si desea que se mueva en una dirección diferente, haga que i
pase de 7 a 0 en su lugar.
El retraso es simplemente necesario para que puedas ver cualquier cosa. Sin el retraso, se desplazaría a través de todas las posiciones demasiado rápido para ver algo en absoluto. Un retraso intermedio hace que se encienda el LED, espere un poco para que tenga tiempo de reaccionar, y luego apáguelo nuevamente y déjelo apagado por un tiempo.
El último retraso es opcional. Si lo eliminas, el efecto será ligeramente diferente.