Řízení Brushless DC motoru 57BLF03 s driverem BLDC-8015A pomocí Arduina

Podobné dokumenty
Čtečka otisků prstů 1. POPIS 2. SPECIFIKACE. ECLIPSERA s.r.o. Distributor pro ČR. VÝROBNÍ ČÍSLO

Arduino - řízení krokového motoru

GSM/GPRS modul pro Arduino

Pro zprovoznění komunikace našeho Sigfox modemu se sítí je potřeba udělat následující kroky. Jako první si otevřeme webové stránky

CNC Technologie a obráběcí stroje

1. POPIS 2. SPECIFIKACE. ECLIPSERA s.r.o. Distributor pro ČR. VÝROBNÍ ČÍSLO. Tento malý a kompaktní modul je schopen určit vaši polohu

Arduino Ethernet Shield W5100 R3

Výuková laboratorní sestava seminář pro učitele

Merkur perfekt Challenge Studijní materiály

Technická dokumentace TRBOdata

Cílem dnešní lekce je obohatit náš dosavadní systém a připravit se na připojení do cloudu

MOTORY A ŘÍZENÍ POHONŮ MAXON verze 1.5 ( ) Základní parametry řídicích jednotek rychlosti pro motory DC a EC. maxon

Programování mikropočítačů platforma Arduino

Úvod do mobilní robotiky NAIL028

SB485. Převodník rozhraní USB na linku RS485 nebo RS422. s galvanickým oddělením. Převodník SB485. RS485 nebo RS422 USB. přepínače PWR TXD RXD

Arduino Data Logger Shield

TGZ. 2-osé digitální servozesilovače

setup() { I = 0; } loop() { I = I + 1; }

Arduino - řízení krokového motoru

Úvod do mobilní robotiky AIL028

PDR3MS 1 KANÁLOVÉ MINI DVR UŽIVATELSKÝ NÁVOD

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Systém přenosu audiosignálu pro evakuační rozhlasy 200M-EVA.E BOX + DIN35-LOCK* Slave 2. Slave 4

eses výukový multi shield pro Arduino UNO

Wie232. Převodník rozhraní Wiegand z bezkontaktních čteček na RS června 2011 w w w. p a p o u c h. c o m

TGZ. 2-osé digitální servozesilovače

ArduinotechGSMShield knihovna

AD4RS. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

Arduino Martin Friedl

400 Série Automatické testovací systémy

SEMESTRÁLNÍ PROJEKT Y38PRO

D/A převodník se dvěma napěťovými nebo proudovými výstupy. (0 10 V, 0 5 V, ±10 V, ±5 V, 4 20 ma, 0 20 ma, 0 24 ma)

Použití UART a radia na platformě micro:bit

TFT LCD shield pro Arduino Mega 2560

FILIP SCHWANK. Katedra měření, listopad 2017

4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

LAN-485 a EXP-C. RS485 přes LAN. Kontakty přes LAN. Ethernet IO moduly

Víkendový projekt: Bezklíčové otevírání domovních dveří

Wifi-Link Uživatelská příručka 2.1.0

TGZ. 2-osé digitální servozesilovače

Vlastnosti elektronického systému

EC Motor. IO Modul EC200. EC200 Int. EC200 Ext. Verze 1.20, revize PMControl s.r.o.

Komunikace s snímačem ph485 protokolem Modbus-RTU

FREESCALE TECHNOLOGY APPLICATION

Dotykový 8" LCD monitor s HDMI 869GL80NP/C/T

UC485P. Převodník RS232 na RS485 nebo RS422. Průmyslové provedení s krytím

Konektory a Kabely. Aneb zařízení integrovaná do základní desky a konektory a kabeláž pro připojení externích zařízení

AD4USB. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace i napájení přes USB

Firmware USBasp pro modul AVRUSB. Milan Horkel. Parametr Hodnota Poznámka. Rozhraní USB Low Speed. Procesor ATmega8 ATmega88 Varianty překladu

Obj. č.: NÁVOD K OBSLUZE

VYHODNOCOVACÍ JEDNOTKA A VELMI RYCHLÝ PŘEVODNÍK

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

30 l/min (8 GPM) p max. Technické parametry

PortGuard63. Katalogový list ZÁKLADNÍ FUNKCE VÝHODY. Funkce podle IEC Řízení pomocí Control Pilotu. Řízení pomocí Proximity Pilotu

UC485. Převodník linky RS232 na RS485 nebo RS422 s galvanickým oddělením

60 l/min (16 GPM) p max. Technické parametry

BREAK-DD8 a GS. Malé aplikace. Rozsáhlé aplikace. Distributory a oddělovače RS485 a RS232

Multiplexory sériových rozhraní na optický kabel ELO E246, ELO E247, ELO E248, ELO E249, ELO E24A, ELO E24B. Uživatelský manuál

USB komunikaèní modul RS-232, RS-422/485

Students for Automotive (S4A) Manuál pro soutěžní týmy

České vysoké učení technické v Praze Fakulta elektrotechnická. Katedra měření. Dokumentace. Rotační enkodér

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Speciální obvody a jejich programování v C 2. díl

Specifikace Bridge TEM

Převodník RS232 na RS485/422 UC485P. průmyslové provedení. galvanické oddělení. 28. února 2005 w w w. p a p o u c h. c o m

Chytrý palubní displej OBD

Sběrnice Massoth Control BUS

MĚŘICÍ PŘÍSTROJ PRO PC. 4 VSTUPY: 0 10 V ZESÍLENÍ : 1x, 2x, 4x, 8x VÝSTUP: LINKA RS232 RS232 DRAK 4 U1 U2 U3 U4

Návrh ovládání zdroje ATX

Praktický návod. Inteligentní elektroinstalace obytného domu Ego-n

Vánoční hvězda 2. Publikované: , Kategória: Blikače a optika.

1 Podrobná specifikace Yunifly Datasheet

MONTÁŽNÍ NÁVOD RSLAN. Komunikační převodník RS485-TCP/IP

USER'S MANUAL FAN MOTOR DRIVER FMD-02

Přípravek pro demonstraci řízení pohonu MAXON prostřednictvím

STABILIZACE PROUDU A NAPĚTÍ

PŘÍLOHY. PRESTO USB programátor

QC300 3fáze 400V řídící jednotka / QC300R 3fáze 230V / QC301 1fáze

BREAK-DD8 a GS. Malé aplikace. Rozsáhlé aplikace. Distributory a oddělovače RS485 a RS /5

RE3USB programovatelné USB relé

UDAQ-1216A UDAQ-1416A. multifunkèní modul pro rozhraní USB

ŘÍDÍCÍ JEDNOTKA MC101 NÁVOD K POUŽITÍ

KONEKTOROVÝ BLOK PRO BASLER ACE

ESII Roletová jednotka

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

QuidoDuplex. Sada pro přenos 4 nebo 8mi dvoustavových signálů obousměrně přes Ethernet. 4. února 2013 w w w. p a p o u c h. c o m

S6LCU5. řídící jednotka nejen Audi S6 LED světel pro denní svícení. Základní konfigurace


Vstupní jednotka E 100 IP. Návod na použití. Strana 1

Driver pro ovládání DALI zařízení z řídicích jednotek Neets

NÁVOD K OBSLUZE OTÁČKOMĚRU MRPM HALL

FN485 Gateway 2 Galvanically Isolated V1.0 Instalační návod

NTIS-VP1/1: Laboratorní napájecí zdroj programovatelný

Implementace regulátoru otáček do budičů BLDC motorů

Ethernet Switch. CQpoint CQ-C105. Uživatelská příručka CZ

Technická dokumentace TRBOcontrol

Switch Board pro komunikátory BraveLLW

Rozhraní c.logic lite MI MCS-02. umožňuje připojení zdroje AV signálu do vozidel Mercedes Benz s navigačním systémem Comand 2.

Universální CNC stolní vrtačka

Control4 driver systému Lacrima - přijímač TRX-A a bateriové rádiové snímače teploty, vlhkosti TTX-A, TTX-AH a TTX-AX

Rotační pohony pro kulové ventily

Transkript:

Řízení Brushless DC motoru 57BLF03 s driverem BLDC-8015A pomocí Arduina autor: Johny, arduino, dne 1.1.2020 Rozhodl jsem se vyzkoušet BLDC motoru od Longs motor vybavený hallovou sondou. Konkrétně jde o motor 57BLF03 a řídící desku BLDC-8015A na odkazu je jiný driver (DCBL-0115A), ale zdá se, že jde jen o jiné označení pro stejné zařízení. Vše ostatní sedí. Motor i driver jsem koupil na ebay za v přepočtu cca 3000 Kč. Příjemě mě potěšila rychlost dopravy z Číny do ČR to zvládli za 2 dny! Bohužel další 3 dny to vyselo na celnici a bylo mi dopočteno DPH asi 550Kč + 490Kč za zprostředkování proclení firmou DHL. Mizerové!!! Ukázka zapojení Funkční zapojení na mém stole. Brushless DC motor 57BLF03 Jedná se o kombinaci krokového a Brushless DC motoru. V podstatě jde o obyčejný brushless DC motor (inrunner), který navíc obsahuje 3 hallovu sonda. Díky tomu má řídící jednotka informaci o tom, jak se motor otáčí a může počítat kroky, případně motor krátkodobě přetížit bez rizika poškození ví, že se pootočil. Motor tak spojuje výhody krokového a DC motoru. Rozsah otáček je od nuly do cca 3000 ot/m a co je největší výhoda v celém rozsahu otáček má téměř konstantní kroutící moment 0.6Nm 1. V peaku pak dokáže až 1.8Nm 1. Efektivita motoru je kolem 0.066 N-m 1 /A. Udávaný výkon motoru je 188W, maximální otáčky jsou 3000RPM. Řídící jednotka dokáže motor ovládat na základě analogového vstupu nebo PWM signálu. Je třeba ovládat i směr (samostatně) a navíc je možné využít elektronickou brzdu. (Tu zatím nepoužívám). Příjemné je, že řídící jednotka očekává 5V signál a deklaruje max. spotřebu 5mA což nám dá možnost přímého připojení Arduina. Videoukázka zapojení a funkce Finální podoba testovacího zapojení včetně ukázky debug výpisu v serial monitoru.

Zapojení motoru a napájení Napájení je libovolné stejnosměrné napětí 24V a cca 200W. Já bohužel na testování 24V zdroj nemám, napájím tedy motor i driver 18V a vše funguje. Označení na driveru Color Barva kabelu DC+ VCC +24V + napájení 24V DC- GND neboli zem 24V U YELLOW Žlutý kabel V GREEN Zelený kabel W BLUE Modrý kabel Zapojení motoru hallovy sondy Hallovy sondy potřebují napájení. To nám poskytuje přímo driver. Dle výrobce by napájení hallových sond mělo být mezi 5V a 20V. Z driveru jde asi 14V. Dále motor obsahuje tři vodiče, žlutý, zelený a modrý. Každá barva analogicky odpovídá cívce z napájení, tedy je zde analogie HW=W(modrá), HU=U(žlutá), HV=V(zelená). Označení na driveru Kabel Popis REF- BLACK GND Černý kablík (zem) HW BLUE Modrý HV GREEN Zelený HU YELLOW Žlutý REF- RED VCC Červený Driver dále obsahuje dva přepínače dipswitche. Pro nás je důležitý hlavně switch 2 je třeba ho přepnout do polohy OFF tím dáme najevo, že chceme driver řídit PWM signálem. Samozřejmě nesmíme zapomenout propojit GND s ENBL tím aktivujeme otáčení. Zapojení arduina a vysílačky Používám Arduino pro mini, tedy verze adruida bez USB portu. Programuje se pomocí samostatného převodníku USB na seriovou linku (5V logika). Pokud máte arduino s USB portem, tak se TX a RX portem zabývat nemusíte a prostě arduino připojíte do USB a fungujete. Výhoda arduina bez USB je zejména ve velikosti a ceně dá se sehnat už kolem 30Kč. USB je stejně třeba jen na programování, dále už potřeba není a jen překáží ;-)

ARDUINO Použití Poznámka VCC Napájení 5V napájení, zatím beru z USB GND GND zem Propojím všechny země, GND driveru, GND vysílačky a GND z USB RX RX / FTDI pro programování z PC TX TX / FTDI pro programování z PC PIN2 Radio Připojeno do přijímače vysílačky, kanál 1 (PWM režim) PIN3 Driver AVI Pro řízení rychlosti přes PWM PIN4 Driver R/F Pro řízení směru otáčení CW/CCW Programování Arduina Tak, pokud je vše zapojeno dle popisu, tak teď stačí arduino naprogramovat aby vykonávalo požadovanou funkci řídilo motor. Celé řízení se v podstatě omezuje na dekódování modelářského PWM signálu a jeho přepočet na řídící signál pro motor. Do budoucna bude možné snadno implementovat dorazové snímače pro automatické zastavení motoru při dojetí na konec dráhy. PWM signál z vysílačky čtu pomocí interuptu při každé změně napětí přijímače se zavolá funkce, která spočítá čas od poslední změny. Tím získávám číslo (v mikrosekundách) které po přepočtu používám na řízení motoru. V případě modelářského PWM signálu je pro minimální hodnotu cca 1000us, maximální hodnota pak je cca 2000us. Středová pozice páčky odpovídá cca 1500us. Protože každá vysílačka má tyto hodnoty trochu jiné a navíc střední poloha páčky může mírně kolístat, rozhodl jsem se do programu implementovat pole 4 hodnot reciever_ranges. První a poslední hodnota určuje rozsah vysílačky, prostřední hodnoty vymezují tzv. deadband tedy mrtvé pásmo kdy se nic neděje rozuměj kdy se motor netočí. Ukázka minimální (po přejetí myší maximální) hodnoty na osciloskopu (dílek má 500us, tedy dva dílky odpovídají 1000us). Inicializace proměnných První část programu deklaruje proměnné. Jsou zde popsané piny pro řízení rychlosti a směru. Pozor při změnách pin pro řízení rychlosti musí podporovat PWM! Pin pro vysílačku zase musí podporovat interupt. int pinmotorspeed = 3; int pinmotordir = 4; int actmotorspeed= 0; int actmotordir = 1; int actmotordirlast = 1; int rx_pulse_width=0; int rx_last_pwm_error=0; unsigned long reviever_pwm_pulse_width = 0; unsigned long reviever_pwm_pulse_width_last = 0; //Radio constant: 0-1 CCW speedm, 1-2 deadband, 2-3 CW speed int reciever_ranges[4] = {983,1488,1500,2010;

Nastavení arduina po zapnutí Tento blok kódu je zde kvůli nastaveni po zapnutí. Nastaví se nějaké výchozí hodnoty, nastaví se režimy fungování portů (vstupy, výstupy) a hlavně se zaregistruje funkce pro interupt na pinu 3 pro změnu stavu. Dále se nastaví rychlost seriového portu pro pozdější testovací a ladící výpisy. void setup() { pinmode(pinmotorspeed, OUTPUT); //setup motor speed pinmode(pinmotordir, OUTPUT); //setup direction, LOW=CCW, HIGH=CW pinmode(2, INPUT); //connect PWM from reciever attachinterrupt(0, RECIEVER_Interrupt, CHANGE); //default direction CW digitalwrite(pinmotordir, HIGH); //for debug only Serial.begin(115200); hlavní smyčka Loop() Hlavní smyčka každých 50ms aktualizuje chování motoru. V podstatě jen zapíše proměnou actmotorspeed a actmotordir. Pokud se ale v podmínce zistí, že došlo k změně směru, tak je motor zastaven a čeká se 150ms. Důvodem je, aby neměnil motor rychlost ve vyšších otáčkách zabrání se tak ohromnému přetížení driveru a zbytečnému mechanickému namáhání motoru. Podle druhu motoru lze s hodnotama různě hýbat a otestovat, co nejlépe sedí. void loop() { //if direction change then stop motor and wait 150ms if(actmotordir!=actmotordirlast){ Serial.println("#### DIRECTION CHANGE ####"); actmotordirlast=actmotordir; analogwrite(pinmotorspeed, 0); delay(150); /* Serial.print("Reciever PWM: "); Serial.print (reviever_pwm_pulse_width); Serial.print(", Direction: "); Serial.print(actMotorDir); Serial.print(", Speed: "); Serial.print(actMotorSpeed); Serial.print(", last PWM Error: "); Serial.println (rx_last_pwm_error); */ analogwrite(pinmotorspeed, actmotorspeed); digitalwrite(pinmotordir, actmotordir); delay(50); RECIEVER_Interupt() Funkce interuptu pro zpracování signálu vysílačky. Zde je implementován deadband, přemapování hodnoty z načtených hodnot do rozsahu 0 255 a detekce směru otáčení. Mimo jiné se ukládá i do rx_last_pwm_error hodnoty, pokud jsou mimo definovaný rozsah. Vodné pro ladění. //call every time when change PWM signal from reciever void RECIEVER_Interrupt() { rx_pulse_width=micros()-reviever_pwm_pulse_width_last; if(rx_pulse_width>reciever_ranges[0] and rx_pulse_width<reciever_ranges[3]){ reviever_pwm_pulse_width = rx_pulse_width; if(reviever_pwm_pulse_width>reciever_ranges[0] and reviever_pwm_pulse_width<reciever_ranges[1]){ actmotordir=low; actmotorspeed = map(reviever_pwm_pulse_width,reciever_ranges[0],reciever_ranges[1],255,0); if(reviever_pwm_pulse_width>reciever_ranges[2] and reviever_pwm_pulse_width<reciever_ranges[3]){ actmotordir = HIGH;

actmotorspeed = map(reviever_pwm_pulse_width,reciever_ranges[2],reciever_ranges[3],0,255); if(reviever_pwm_pulse_width>reciever_ranges[1] and reviever_pwm_pulse_width<reciever_ranges[2]){ actmotorspeed = 0; else{ rx_last_pwm_error = rx_pulse_width; reviever_pwm_pulse_width_last = micros(); A to je všechno! Ať to funguje ;-) Připojená fotogalerie: 2015/ilustrace/ Podobné články: Arduino a RC vysílačka 9.12.2014 Arduino a krokový motor potřetí 20.11.2014 Arduino a motor 28BYJ-48 podruhé 17.11.2014 Arduino - řízení krokového motoru 11.11.2014 Štítky tohoto článku: arduino motor Diskuze: Řízení Brushless DC motoru 57BLF03 s driverem BLDC-8015A pomocí Arduina 1. Pierre MATHYS (26.2.2017, 19:19) Hello I use the same hardware to drive my wife's potter wheel. Works fine excepted that I can't reach more than 2/3 of max speed (i.e. 2000rpm) with 99% duty-cycle @1kHz on AVI input. Full speed can only be obtained with internal RV pot. Did you experiment the same? Thanks for your reply. Best regards PM Reagovat na tento příspěvek Diskuze: Řízení Brushless DC motoru 57BLF03 s driverem BLDC-8015A pomocí Arduina Vaše jméno (povinné) Váš email (nebude zveřejněn, povinný) WEB (bude zveřejněn, pište s http://) Text vzkazu: Kolik je 3 2? (ochrana proti spamu) Vložit příspěvek PDF vygenerováno 15.12.2017 03:13:58 z webu http://nul.cz. URL dokumentu je http://nul.cz/arduino/rozeni-motoru-57blf03-bldc-8015a/