Paso 9: Resolución de problemas y explorar el código
En primer lugar, vamos a clase a lo que sospecho será su único problema; el sensor de ultrasonidos no parece funcionar.
Necesitamos saber si estamos consiguiendo algo del sensor de primera. Para iniciar la solución de problemas, primero asegúrese de que todos los 4 cables están conectados correctamente tanto el propio sensor y arduino.
¿Todavía no hay alegría?
Intente buscar el código que envió a través de. A pesar de que el sensor de ultrasonidos Lee un valor variable, que provoca 2 Estados diferentes para el motor: tanto adelante o un delantero y un revés. Aquí está el código para el estado avance:
forward() vacío
{
adelante a toda velocidad
digitalWrite (12, bajo); Ajuste de dirección del canal A
digitalWrite (9, bajo); Soltar el freno para el canal A
analogWrite (3, 255); Gira el motor en canal A toda velocidad
digitalWrite (13, HIGH); Dirección de ajuste de canal B
digitalWrite (8, bajo); Soltar el freno para el canal B
analogWrite (11, 255); Gira el motor en canal B a toda velocidad
}
Desde arriba, se puede ver que 3 variables se establecen para cada motor. La dirección se puede establecer en bajo o alto para cada canal con el fin de establecer la dirección de avance. Se trata de una alternativa de codificación para clasificar el estado avance por defecto de los motores más bien que intercambiar los cables de los canales afectados físicamente.
Ahora tenemos que mirar el código para el segundo estado. Yo he llamado esta turn_right pero realmente este arbitrario, dependiendo de cómo está conectado el motor y el uso de alta y baja para establecer las indicaciones de motor.
¿Cómo es esto importante para la medición del sensor de ultrasonidos? Si el código de ambos Estados motor es exactamente el mismo y el sensor de ultrasonidos podría hacer todo bien y llamar a los comandos de derecha a la derecha veces. Mirando el código, esto será evidente (ahora que ya sabes lo que estás buscando!). Te llevará nada más que cambiar su dirección para pin 12 o 13 de alta/baja al contrario.
Si no soluciona su problema, necesitamos echar un vistazo a lo que está viendo el sensor de ultrasonidos. El pedazo del código en cuestión es la siguiente:
void oneSensorCycle()
{
para (uint8_t i = 0; i < SONAR_NUM; i ++) {}
Serial.Print(i);
Serial.Print("=");
Serial.Print(cm[i]);
Serial.Print ("cm");
}
Serial.println();
}
Anteriormente en el código hay otra pieza relacionada:
void setup() {}
Serial.Begin(9600);
Te comento esto para que puedes incluir en cualquier adaptaciones que hagan al código.
Esta sección serie del código se incluye para que pueda obtener una lectura de valores desde el sensor. Esto es cierto para cualquier sensor y el código se encuentra (es bastante fácil de encontrar el código para prácticamente cualquier sensor compatible con arduino).
Para ver los valores necesita enchufe su arduino por USB y abrir el IDE de Arduino. Una vez abierto, asegúrese de que su arduino es ser visto por ordenador (Herramientas > Serial Port > elegir puerto). También asegúrese de que otra vez que la placa Arduino Uno es seleccionada en las herramientas > menú tablero.
Queremos controlar lo que está viendo el sensor y hay 2 formas de poner en marcha al Serial Monitor que nos permitirá hacerlo. Usted puede escoger "Serial Monitor" en el menú herramientas o usted puede elegir a través del botón que parece una lupa en la parte superior derecha del IDE de Arduino. Eligiendo cualquiera de estas, debería ver el robot hacer una pausa por un segundo y luego dar una lectura en la ventana de Monitor serie. Si los valores leídos no fluctuar desde 0cm deberá vuelva a verificar las conexiones en el arduino y el sensor de nuevo. Usted puede han mezclado GND/5V o pins de gatillo/Echo.
¿Si estas sugerencias no resuelven el problema estaría muy sorprendida y sólo puede sugerir que es posible que en algún lugar del camino de alguna manera quitar algunas código de crítica o tal vez no pega en el código completo para el IDE de Arduino? Tratar de asegurar que ha copiado y pegado el código completo en el IDE antes de subir a la Arduino UNO.
Si usted tiene cualesquiera otras preguntas, por favor comenten y voy a intentar responder a los problemas en una actualización.