ESC - control electrónico de velocidad


Esquemático en Design Spark:

Es cierto que no se ven todos los datos, para eso deberas descargar el projecto en Design Spark en el siguiente link:
Proyecto PCB ESC:

De todas formas observamos los 3 controladores (drivers) duales conectados cada uno a 2 transistores MOSFET. Las entradas de los controladores estan conectadas al microcontrolador Arduino Nano. Las salidas del puente trifásico cada una con un divisor de tensión con resisténcias de 1k y 2 k conectadas a los pines de entrada analógica del Arduino. Para hacer la conexíon de los controladores tenemos en cuenta el siguiente esquema:

Ya tenemos el esquemático y pasamos ahora al PCB, Creamos una PCB de dos capas y distribuimos todos los componentes. Vamos a observar primero la capa "top". Tened cuidado al rutear.
Ahora vamos a ver la parte inferior "bottom" de la placa. Finalmente vamos a ver las dos capas juntas para acabar nuestro circuito.
Observamos los pines necesarios para El arduino, la entrada de 12-15 voltios, los controladores (drivers) y los 6 transistores MOSFET. También observamos que las pistas principales son muy gruesas, 4mm, eso es debido a que a través de ellas pasaran mas de 20A de corriente. El egulador de tensión proporcionará 5 voltios limpios al arduino. Una vez tenemos la PCB generamos los gerbers para enviarlos a la fresadora CNC. Dicha maquina creará nuestra PCB en una doble lamina de cobre fresando con un taladro los gerbers creados. Despues del fresado (milling) , nuestra placa ha quedado de la siguiente manera:

Empezamos a soldar los componentes uno por uno. Llenaremos las pistas principales con mucho estaño para darles más aguante.

Ya hemos acabado nuestra PCB. Conectaremos nuestro Arduino en su lugar y pasamos a la parte de código. Primero ejecutarémos un código sin detección de la BEMF donde simplemente variando el potenciómetro que hemos añadido a nuestra PCB, variará la velocidad del motor. Si no detectamos la EMF y sin el algoritmo que usaremos para sincronisar el giro del motor, en cuqlquier momento el motor puede parar y nunca volver a arrancar, además girara con poca potencia.
Puedes descargar el

Observamos en el codigo que no se usan "delays" ya que cualquier retardo afectara la secuencia entera del giro. Se crean 6 variables para los estados de cada transistor del puente trifásico. Se crearán 6 casos para completar una secuencia. El tiempo de cambio entre cada secuencia viene dado por el valor leido con la entrada analógica del potenciómetro.
Complicamos la cosa: añadimos lectura de EMF:
Puedes descargar el

Cargamos el código de arduino con detección de EMF. Si miramos el código observamos que tenemos que seleccionar los pines analógicos que harán la medida del voltaje en cada terminal, en mi caso son los pines A2, A3 y A. Los pines que activarán los transistores serán los mismos. Para el cambio de fase se crean dos deltas. Una delta actual y una anterior ya que tendremos un cambio de fase en función de la detección del "cero virtual" que puede ser bajando desde tensiones positivas a negativas o al revés, subiendo desde tensiones negativas a positivas, por eso la necesidad de dos deltas. En el Setup se define la funcionalidad de los pines.
En el loop primero medimos la tensión en cada entrada analógica y hacemos la suma de las 3. Dicha suma será nuestro cero virtual que representa el punto comun de la intersección de las tres tensiones. El retardc se hara de la misma manera que en el caso sin emf contando los microsegundos que transcuren y cambiando el valor con un potenciómetro pero el cambio de fase vendra afectado por los valores de delta. Se calculara la delta en cada fase y al final del código se hara una comparación para detectar el momento en que pasamos por el "cero virtual". Será ese el momento en que ahremos el cambio de fase.

Video Extra puente H:

