Paso 4: Probar el PCB y añadir en su controlador
Después de mirar el PCB y hacer algunas pruebas, he encontrado la siguiente información de pin:
Pin 2 - tierra
PIN 6,7 - controles del motor izquierdo h-puente
PIN 10, 11 - controles del motor derecho h-puente
PIN 13 - Vcc de salida de la batería.
Supongo los otros pines son limpieza y conseguir la entrada de los componentes del receptor. Mientras que tener una entrada sin hilos en el PCB puede ser útil para algo en el futuro, ahora mismo estoy interesado en los puentes de h y cómo controlarlos.
El puente h por cada lado está hecho de 4 transistores de potencia y 2 transistores regulares. En mi PCB, los transistores de potencia en un par de H8050 y H8550, controlado por un par de transistores regulares, C945s. Todos están en el paquete físico de la a-92. Sospecho que otros transistores podrían utilizarse en otros PCB, era cuestión de que lo tenían en stock a un precio barato ese día. Encontré algunas fichas para el H8050 y H8550 y parece que cada puente h es clasificado a 1,5 amperios. Una vez más, puede haber diferentes componentes sobre los otros PCB en otros vasos, pero la básica 1.5A calificación debe permanecer el mismo.
Para cada puente h, hay un par de pines que lo controla. Pasadores de #6 y #7 para el lado izquierdo y #10 y #11 para el lado derecho.
Rueda izquierda:
PIN 6: Apagado, Pin 7: no OFF - nada, ningún movimiento
PIN 6: A, Pin 7:-la rueda gira - hacia adelante
PIN 6: Apagado, Pin 7:-la rueda gira - hacia atrás
PIN 6: A, Pin 7: ON - no comprobado, sospecha que ésta podría freír algo en una nube de humo.
Rueda derecha:
PIN 10: Apagado, Pin 11: no OFF - nada, ningún movimiento
PIN 10: En el, Pin 11:-la rueda gira - hacia atrás
PIN 10: Apagado, Pin 11:-la rueda gira - hacia adelante
PIN 10: En el, Pin 11: ON - no comprobado, sospecha que ésta podría freír algo en una nube de humo.
Para los pines en la posición "OFF", N/C o tierra ambos parecen funcionar. En principio sugiero que se pega al suelo y no N/C.
¿Qué significa todo esto?
Para una parte particular del robot, necesita dos salidas digitales, que capaz de PWM. Para ambos lados tiene cuatro salidas. Por ejemplo, si yo quería ir hacia adelante a velocidad máxima 40% establecer mis pines como este:
PIN 6: señal PWM en el 40%
PIN 7: tierra (PWM 0%)
PIN 10: tierra (PWM 0%)
PIN 11: señal PWM en el 40%
He estado usando la frecuencia de PWM de Arduino estándar de alrededor de 500Hz y que trabaja para la conmutación de los puentes de h y muy bien. No sería sorprendido si los componentes se manejan hasta el rango de 20 KHz.
Cuando montan su microcontrolador y usando una batería diferente para las señales de datos (como los 9V utiliza), no olvides "compartir una tierra" cable entre los dos. Si miras en mis fotos, es por eso que tengo un cable desde el pin #2 del zócalo del IC en el plano de la tierra de mi protoboard.
Así que para mi configuración de prueba, usé las señales PWM Arduino:
Arduino: vaso
PIN 9---pin 6
PIN 10---pin 7
PIN 3---pin 11
PIN 11---pin 10
Aquí es algunos hardwired, código de prueba feo. Sin embargo, funciona y demuestra la idea general. Es un bucle que va como esto:
iniciar bucle
unidad hacia adelante al 50% de potencia durante 2 segundos
esperar 2 segundos
mueva hacia atrás al 50% de potencia durante 2 segundos
esperar 2 segundos
bucle al principio
Me esta mostrando que no es el motor y rueda más precisa alineación que he visto, pero me funciona. Trabajaré en mejor código de control de la rueda en el tiempo - tiene que el telémetro láser primero!
Tumbler1
por Ray regidor
//
Conexiones a Tumber PCB
//
Arduino: vaso
PIN 9---pin 6
PIN 10---pin 7
PIN 3---pin 11
PIN 11---pin 10
suelo---pin 2 (tierra)
//
//
int RightFwd = 3; Salida de PWM para ir adelante en rueda derecha
int RightRev = 11; Salida de PWM para ir marcha atrás en la rueda derecha
int LeftFwd = 9; Salida de PWM para seguir adelante en la rueda izquierda
int LeftRev = 10; Salida de PWM para ir marcha atrás en la rueda izquierda
int delaytime = 2000; demora entre los pasos
int speedval = 127; velocidad de avance y retroceso, en 50% (255 max)
void setup()
{
pinMode (RightFwd, salida);
digitalWrite (RightFwd, bajo); Asegúrese de que la salida es inicialmente en baja
pinMode (RightRev, salida);
digitalWrite (RightRev, bajo); Asegúrese de que la salida es inicialmente en baja
pinMode (LeftFwd, salida);
digitalWrite (LeftFwd, bajo); Asegúrese de que la salida es inicialmente en baja
pinMode (LeftRev, salida);
digitalWrite (LeftRev, bajo); Asegúrese de que la salida es inicialmente en baja
Delay(Delaytime);
}
void loop()
{
analogWrite (LeftRev, 0);
analogWrite (LeftFwd, speedval); vueltas en la rueda izquierda hacia adelante en el valor de velocidad
analogWrite (RightRev, 0);
analogWrite (RightFwd, speedval); vueltas en la rueda derecha hacia adelante en el valor de velocidad
Delay(Delaytime);
analogWrite (LeftFwd, 0); se apaga la rueda izquierda
analogWrite (RightFwd, 0); se apaga la rueda derecha
Delay(Delaytime);
analogWrite (LeftRev, speedval); se gira la rueda izquierda en sentido contrario en el valor de velocidad
analogWrite (RightRev, speedval); se gira la rueda derecha en la dirección contraria en el valor de velocidad
Delay(Delaytime);
}