Vuelve a la línea
Arduino C++El código de partida lee la línea pero mueve las dos ruedas a 150 vea lo que vea. Haz que gire: error = position - 3500, y luego left = 150 + error / 20 y right = 150 - error / 20. Con la línea bajo el sensor 2, la rueda izquierda tiene que frenar y la derecha acelerar; bajo el sensor 7, al revés; centrada, las dos a 150.
Comprobaciones
- Aún sin ejecutarFunciona durante 4,5 s
- Aún sin ejecutarLee la línea con readLineBlack()
- Aún sin ejecutarSTBY (D9) está en HIGH: el driver está despierto
- Aún sin ejecutarCentrada: la rueda izquierda (D5) a unos 150/255
- Aún sin ejecutarCentrada: la rueda derecha (D6) a unos 150/255
- Aún sin ejecutarLínea bajo el sensor 2: la rueda izquierda frena
- Aún sin ejecutarLínea bajo el sensor 2: la rueda derecha acelera
- Aún sin ejecutarLínea bajo el sensor 7: la rueda izquierda acelera
- Aún sin ejecutarLínea bajo el sensor 7: la rueda derecha frena
- Aún sin ejecutarCentrada otra vez: de vuelta a 150
Pistas
- readLineBlack() devuelve un número sin signo; conviértelo antes de restar: int error = (int)pos - 3500;
- error / 20 es lo mismo que error x 0.05 sin coma flotante: eso es Kp.
- motors() ya limita cada rueda a 0-255 con constrain().