Entonces, ¿qué es un ESC ? Bueno, los controladores electrónicos de velocidad se utilizan para controlar motores sin escobillas, en este caso, el motor tiene una entrada de fase triple. Para controlar esta entrada, el ESC debe aplicar una secuencia especial de señales BAJA y ALTA en un orden predefinido. Tiene que conmutarse muy rápido y girando el rotor del motor. En este tutorial veremos cómo controlar la rotación, la velocidad, detectar el BEMF y saber cuándo hacer el cambio al siguiente paso de la secuencia. Por lo tanto, este es un controlador de velocidad del motor sin escobillas sin sensor, ya que no utiliza ningún sensor para detectar la posición del rotor. Aprenderemos:
- El esquema y por qué necesitamos cada parte
- Control de puente MOSFET de triple fase
- Detección BEMF y cruce 0
- Interrumprions y comparador interno de ATMEGA328
- Control PWM
Ahora el esquema puede parecer complicado pero no lo es. Lo primero es lo primero, tenemos un bloque de energía. Este es un circuito convertidor de dólar que dará 5V para todas las partes digitales. La entrada principal podría ser de 11 a 18V, pero este bloque siempre dará 5V. El siguiente bloque es el puente de triple fase. Estos son 6 MOSFET en configuraciones de puente que se utilizan para energizar las bobinas del motor. Cada uno de estos MOSFET tiene un control de controlador con el IR2101, que es un controlador dual para que pueda controlar los lados alto y bajo del puente.
Esta es la lista de piezas para este proyecto. Asegúrate de usar los mismos componentes. Verifique todas las conexiones, suelde las piezas y luego cargue el código y pruébelo.
- 1 x PCB: GERBERS aquí
- 1 x ATmega328: ENLACE eBay
- 1 x MP2307DN-LF-Z: ENLACE eBay
- 1 x CH340C: ENLACE eBay
- 3 x IR2101STRPBF: ENLACE eBay
- 6 x IRLR7843TRPBF: ENLACE eBay
- 3 x 1N4148WS: ENLACE eBay
- 1 x CON-USB-F-MICRO-B: ENLACE eBay
- 1 x 16MHz crystal 3213: ENLACE eBay
- 1 x BUZZER 5020: ENLACE eBay
- Resistencias 0603 (100R, 1K, 6.8K, 10K, 33K, 44.2K, 100K, 1M): ENLACE eBay
- 2 x 0603 LED: ENLACE eBay
- Condensadores 0603 (1 x 3.9n, 1 x 10n, 4 x 100n, 3 x 2.2u): LINK eBay
- 1206 condensadores (4 x 10u, 6 x 22u,): LINK eBay
- 1 x 7.4x6.6 bobina 100uH: ENLACE eBay
- alambre, soldadura, soldador, etc.
La PCB que he diseñado es de 60 por 35 mm. En la foto a continuación, puede ver la primera versión de la PCB en rojo, pero también la versión final con máscara de soldadura negra. El V1.0 tenía algunos errores, como algunas conexiones GND malas, un pin incorrecto para el zumbador y también las pistas de alimentación estaban cubiertas por la máscara de soldadura. Para la versión V2.0, ahora todos los problemas están solucionados y las pistas grandes están expuestas para poder llenarlas con soldadura para obtener más corriente. Puede descargar los archivos gerber desde abajo.
La primera parte que soldamos es el bloque de alimentación. Este será un circuito convertidor reductor que reducirá el voltaje de 12 V a 5 V para el microcontrolador y otras partes digitales.¿Por qué hacemos esta parte primero? Bueno, si primero soldamos la parte digital y luego el bloque de alimentación y, por error, la salida del convertidor reductor no es de 5V sino de 12V, bueno, eso quemará toda la parte digital.
El segundo paso es soldar la configuración básica del microcontrolador. Ese es el chip ATmega328p-AU, el cristal de 16MHz, la resistencia R23 de 1M ohm, la resistencia R1 de 10K ohm, el condensador C6 de 100nF. Estos componentes son obligatorios para que el microcontrolador funcione. Una vez que haya soldado todas estas partes, podemos probar si podemos subir algo al chip.
Una vez que el voltaje es de 5V y el chip ATmega está funcionando, podemos seguir soldando piezas. La siguiente parte es el programador FTDI CH340. Este chip hará la conexión entre un conector USB desde una PC y nuestro chip ATmega. Así que suelde el CH340C, el condensador C7 y los resistores R18 y R19 de 1k. También suelde el conector USB. Asegúrese de que el chip FTDI sea el CH340C, no el CH340G, porque eso también necesitará un cristal. Una vez que suelde el chip y el conector, intente cargar el mismo código que antes pero esta vez con el conector USB en la placa. Si funciona estamos bien para ir.
Ahora que todo funciona, podemos soldar las resistencias BEMF, los controladores MOSFET con el diodo y los condensadores y los MOSFET en la parte posterior para el puente de triple fase. También suelde los LED y el zumbador. Finalmente, soldamos 3 cables con conectores hembra a las almohadillas GND, Vcc y PWM. Estas serán la señal de entrada del receptor de radio, como cualquier otro ESC comercial.
Ahora el código es un poco largo y difícil de entender. Es por eso que cada línea tiene un comentario. Así que descargue el código del siguiente enlace. Luego lea cada línea para comprender por qué hago cada parte. El código tendrá el main.ino pero también el código secundario para la escritura / lectura EEPROM. El código comienza definiendo las variables a usar en el código. En el bucle de configuración, primero verificamos si la primera posición de la memoria EEPROM es 1. Si no, eso significa que es la primera vez que ejecutamos el código, por lo que guardamos los valores mínimo y máximo de la señal de entrada PWM y también escribimos un "1 "en la primera dirección EEPROM.
//This will only run once after you uplaod the code
if( EEPROM.read(1) != 1)
{
EEPROM_writeAnything(PWM_IN_MIN_ADRESS, PWM_IN_MIN);
EEPROM_writeAnything(PWM_IN_MAX_ADRESS, PWM_IN_MAX);
EEPROM.write(1, 1);
}
Luego, aún en el bucle de configuración, configuramos todos los registros. Configuramos los pines como salidas / entradas, configuramos los registros PWM y también configuramos el pin digital D8 para poder crear interrupciones de cambio de estado del pin. Este pin se usa para leer el ancho de entrada PWM en microsegundos.
DDRD |= B00011100; // Configure pins 2, 3 and 4 as outputs
PORTD = B00000000; //pins 0 to 7 set to LOW
DDRB |= B00001110; // Configure pins 9, 10 and 11 as outputs
PORTB &= B00110001; //B00110001 D9, D10 and D11 to LOW
// Timer1
TCCR1A = 0;
TCCR1B = 0x01;
// Timer2
TCCR2A = 0;
TCCR2B = 0x01;
// Comparator on pin D6
ACSR = 0x10; // Clear flag comparator interrupt
//Set D8 (PWM in) to trigger interrupt (we use this to read PWM input)
PCICR |= (1 << PCIE0); //enable PCMSK0 scan
PCMSK0 |= (1 << PCINT0); //Set pin D8 trigger an interrupt on state change.
Después de la configuración del registro, hay algunos bucles que detectarán si el ESC debe ingresar al modo de configuración o no. Si la señal PWM de entrada está por encima de un cierto valor cuando se enciende el ESC, entonces debe ingresar al modo de configuración donde puede establecer el rango máximo y mínimo de la entrada PWM. Si no, saltará al bucle de rotación del motor.
//Power on mode select
if(PWM_INPUT > PWM_IN_MIN + 115) //We enter config mode to set the PWM range
{
ESC_MODE_ON = false; //Motor rotation is OFF till the config mode is done
while(!PWM_RANGE_SET)
{
.
.
.
Luego tenemos un montón de funciones e ISR para detectar el valor de entrada PWM, para cambiar los pines de los controladores MOSFET a alto o bajo o a PWM o no PWM y también para cambiar la entrada del comparador en el pin D6. Con esta entrada leemos el BEMF y en cada paso de la secuencia necesitamos cambiar esa entrada de BEMF_A a BEMF_B o BEMF_C. El Armega328 tiene este comparador en el pin D6. La entrada negativa si este comparador será la línea COM, que es la suma de todas las fuentes electromotrices posteriores de A, B y C. Luego, la entrada positiva del comparador se seleccionará en el código con la línea:
void BEMF_A_RISING(){
ADCSRA = (0 << ADEN); // Disable the ADC module
ADCSRB = (1 << ACME); // Enable MUX select for negative input of comparator
ADMUX = 2; // Select A2 as comparator negative input
ACSR |= 0x03; // Set interrupt on rising edge*/
}
.
.
.
Una vez que cargó el código y conectó la energía, el motor y la entrada PWN, podemos probar esto. Asegúrese de que el joystick PWM esté bajo y luego conecte la alimentación. Cuando aumenta la señal PWM, el motor debe girar. Si desea establecer un nuevo rango de PWM y calibrar el ESC, simplemente coloque el joystick en la posición media antes de encender el ESC. Encienda el ESC y escuchará los pitidos de configuración. Después de los pitidos, coloque el joystick en el valor máximo y luego en el valor mínimo y se almacenará en la EEPROM. Eso es.
Noob 19129
about 11 days agoIn response to the man inquiring about ini bet slot, daftar slots, game slot indonesia, website game slot, link game slot gacor, slot betting, gacor judi, judi online indonesia, judi indo slot, slot kaya, I highly recommend this consultant about 7rajatogel Login tips or judi slot online itu apa, slot online indonesia, judi online indonesia, slot game jackpot, web judi terbaik, judi indo slot, slot online login, website judi, judi online game, web judi slot, on top of this new 7rajatogel Login url and don't forget judi slot online itu apa, judi slot online terbaru, jackpot game slot, website judi gacor, slot game indonesia, game judi slot online, game judi online slot, website judi, slot yg gacor, game judi slot, alongside all this clicking here on 7rajatogel Login tips which is also great. Also, have a look at this great 7RAJATOGEL link alongside all slot online indonesia, slot game yang mudah menang, slot judi indonesia, judi slot no 1, idn judi, judi slot online gacor, jp slot888, slot game apa, no 1 slot, web slot online, not to mention this this post about 7RAJATOGEL info with gacor game, link game slot gacor, slot gameplay, judi slot itu apa, online slot, game slot link, nama situs judi slot online, slot kaya, website judi online, website judi slot online, for good measure. Check more @ Excellent 7RAJATOGEL Guide 023d94c
Noob 19129
about 19 hours agoIn response to the man inquiring about re index website google google search console reindex site last crawled by google crawl rate google site crawler crawl as google seo what is a backlink instant indexing submit page check google crawler add website to search engines I highly recommend this urlhttp26281wwwmolifannetspaceuid2197303htmlread review on google indexing urlurl or check all pages of a website google console website console web google web page submission test googlebot crawling google indexing api wordpress google link indexer google search console tool check if website is indexed by google reindex website google not to mention this urlhttpsdirstopcomstory20372981deindexinggoogleandgetgoogletocrawlyourwebsitemore info for google indexing siteurl on top of check if site can be indexed deindex site from google meta no index no follow check website index pages new website not showing up on google google indexing problem test googlebot crawling noindex seo seo indexing search engine submission service on top of this urlhttplolcamtopmemberphpactionprofileuid5427top article for google indexing siteurl which is also great Also have a look at this urlhttpsbookmarkvidscomstory19216713crawlgooglesearchresultsandaddsitetogooglemore helpful hints for google indexing blogurl as well as check index site link crawling remove page from index google prevent google from indexing html meta noindex seo site crawler check site index google bing indexnow wordpress site not indexing google console indexing on top of this urlhttpsnolan2h75sxg4nationalwikicomuseron the main page about google indexing tipsurl with add url to google submit link to google console google seo submit new website to search engines index google page instant indexing plugin wordpress prevent page from being indexed test live url add site to google search engine seo google crawler for good measure Check more urlhttp20315718427bookalakornboardviewtopicphpf2t62071p3444578side5682ee5e93a22aa5aaa52673a581ad3p3444578Recommended 7RAJATOGEL Tipsurl 1ed9f3