BLDC kontrola motora s Arduino, spašenim HD motorom i Hall senzorima
Dom » Blog » BLDC kontrola motora s Arduino, spašenim HD motorom i Hall senzorima

BLDC kontrola motora s Arduino, spašenim HD motorom i Hall senzorima

Pregledi: 0     Autor: Uređivač web mjesta Objavljivanje Vrijeme: 2020-09-02 ORITION: Mjesto

Raspitati se

Gumb za dijeljenje Facebooka
Gumb za dijeljenje na Twitteru
gumb za dijeljenje linija
gumb za dijeljenje weChat
LinkedIn gumb za dijeljenje
Gumb za dijeljenje Pinterest -a
Gumb za dijeljenje Whatsappa
gumb za dijeljenje kakao
gumb za dijeljenje Snapchata
gumb za dijeljenje telegrama
gumb za dijeljenje Sharethis

Danas su entuzijasti vrlo zainteresirani za kontrolu DC bez četkica (BLDC)
u usporedbi s tradicionalnim DC motorom, performanse motora se poboljšala, energetska učinkovitost se također poboljšala, ali je teže koristiti. mnogi proizvodi izvan polica .
U tu svrhu postoje
Na primjer, postoji puno malih BLDCS kontrolera koji vrlo dobro rade za RC zrakoplove.
Za one koji žele dublje istražiti kontrolu nad BLDC-om, postoji i mnogo različitih mikrokontrolera i drugih elektroničkih hardvera za industrijske korisnike, koji obično imaju vrlo dobru dokumentaciju.
Do sada nisam našao sveobuhvatan opis kako koristiti Arduino mikrokontroler za BLDC kontrolu.
Također, ako ste zainteresirani za regenerativno kočenje ili korištenje BLDC-a za proizvodnju energije, nisam našao mnogo proizvoda pogodnih za upotrebu s malim motorima, niti sam saznao kako kontrolirati trofazni generator.
Ova je struktura izvorno bila u priči o
izračunavanju u stvarnom vremenu, nastavljam to raditi nakon završetka tečaja.
Ideja projekta je pokazati proporcionalni model hibridnog automobila s pohranom energije zamašnjaka i regenerativnim kočenjem.
Motor koji se koristi u projektu je mali BLDC -ovi očišćeni s oštećenog računalnog tvrdog diska.
Ovaj priručnik opisuje kako koristiti Arduino mikrokontroler i Hall-
utječe senzore na položaje u načinima vožnje i regenerativnog kočenja.
Imajte na umu da je posjet Oscillisoft vrlo korisno, ako ne i bitno, da biste dovršili ovaj projekt.
Ako niste u mogućnosti pristupiti opsegu, dodao sam neke prijedloge kako to učiniti bez opsega (korak 5).
Jedna stvar koju ovaj projekt ne bi trebao uključivati ​​u bilo koji stvarni kontroler motora je bilo koja sigurnosna funkcija, poput trenutne zaštite.
U stvari, najgore je što spalite HD motor.
Međutim, implementacija zaštite od prekomjerne struje s trenutnim hardverom nije teško, a možda ću to učiniti u nekom trenutku.
Ako pokušavate kontrolirati veći motor, dodajte trenutnu zaštitu kako biste zaštitili svoj motor i svoju sigurnost.
Želim pokušati koristiti ovaj kontroler s većim motorom koji može raditi neki \ 'Real \', ali još uvijek nemam pravi.
Primijetio sam da je eBay prodao automobil od 86 W za oko 40 dolara.
Izgleda kao dobar kandidat.
Postoji i web stranica RC -a pod nazivom \ 'GoBrushless \' koja prodaje komplete koji sastavljaju vlastiti BLDC.
Nisu preskupi i vrijedno je iskustva za izgradnju.
Imajte na umu da na ovoj web stranici ne postoji senzor Hall za motor. Whew!
Pisanje ove strukture veliki je posao.
Nadam se da će vam biti korisno, molim vas, dajte svoje komentare i prijedloge.
Digitalni multimetar (DMM)-
Ako vaš DMM ima osciloskop mjerača frekvencije (
bolje je imati najmanje 2 kanala)
T8 Torx upravljački program (
potreban vam je jedan od njih za otvaranje bilo kojeg tvrdog diska).
Postoji dobra trgovina hardvera.
Radionica stroja i brzi prototip (
ovi su vrlo korisni, ali mislim da se ovaj projekt može učiniti bez njih).
Materijal BLDC Magnetski prsten s računalnog tvrdog diska (
polovica motora)
iz drugog tvrdog vosnog veznog (3-6)
nalazi se drugi mali motor na srebrnom disku na tvrdom disku (DC OK)
gumenu
traku ili (poželjno) DC-motor s ručicom s drugom motornom linijom od 40 k mjesečnika od 40 km. k ohmst mikro krug l6234 Trofazni pokretač motora ic dva 100 uf kondenzatora jedan 10 nf kondenzator jedan 220 nf kondenzator jedan 1 uf kondenzator jedan 100 uf kondenzator tri prijemne diode jedan 2.
medeni ss411a bipolarna hall-5 artikantna i sredstva za mljevenje
i prodaje se i prodaje meke: a projekat mike antiteta: MENT ANTES INTES INTES INTES INTES INTES INTES INSP PROIZVODA INSP PROIZVODA INSP PROIZVODA I ANTER INSP PROIZVODE Ovaj priručnik (
kontrolira se pomoću potencijalne indukcije potencijala).
Specifikacije i informacije o nabavi mogu se naći u ove dvije veze: Ako ćete raditi ovaj projekt, predlažem vam da odvojite vrijeme da temeljito shvatite kako BLDC radi i kontrolira.
Postoji veliki broj referenci na mreži (
pogledajte u nastavku za neke prijedloge).
Međutim, u svoj projekt uvrstim neke karte i tablice koje bi vam trebalo pomoći da shvatite.
Here is a list of the concepts that I think are most important to understanding this project: MOSFET transistors 3-phase half-bridge 6-
3-step reduction of sentence
Pulse Width Modulation of phase motor (PWM)Hall-
Microchip AVR443: sensors-general reference DC motor Basic Principles for Digital position sensors
Control of three-phase brushless DC motor based on atmelbrusless DC motor control
Phase BLDC motor control of the Flying Sensor Star Hall, dobar videozapis čišćenja motora tvrdog diska, ali čini se da autor pokreće motor kao motor koji je koračao i kao koračni motor. Konkretnija referentna web stranica za BLDC na IC -u L6234 Motor Drive, uključujući listove podataka, bilješke o aplikacijama i informacije o kupnji.
Besplatni uzorak za PM pogon bez četkica za hibridne primjene električnih vozila.
Ovo je jedini rad koji sam otkrio koji opisuje redoslijed promjene regenerativne faze kočenja.
Ovaj rad, regenerativno kočenje u električnim vozilima je koristan, posudio sam nekoliko brojeva od njega, ali mislim da pogrešno opisuje kako funkcionira regeneracija.
Ovaj sam projekt napravio s recikliranim motorom diska jer je bilo lako proći i volim koristiti mali motor niskog napona kako bih naučio kabel koji kontrolira BLDC i ne uzrokuje sigurnosne probleme.
Pored toga, konfiguracija magneta Hall senzora postaje vrlo jednostavna pomoću magnetskog prstena (rotora)
iz drugog od ovih motora (vidi korak 4).
Ako ne želite ići na svu gnjavažu za ugradnju i umjeravanje Hall senzora (koraci 5-7),
znam da postoje barem neki motori CD/DVD pogona izgrađeni u senzoru u Hall.
Kako bih osigurao inerciju okretanja motoru i dao im malo opterećenja, stavio sam 5 tvrdih diskova na motor, nježno zalijepljeno s malo jakih ljepila i zalijepljen za motor (
ovo je zamašnjak napravio u mom izvornom projektu).
Ako ćete ukloniti motor s tvrdog diska, potreban vam je T8 Torx pogon da odvičite kućište (
obično su dva vijka skrivena iza štapa u naljepnici Centran)
i unutarnji vijci koji drže motor na mjestu.
Također morate ukloniti čitač glave (
Sound Circle Executive)
na ovaj način, možete izvaditi memorijski disk da biste stigli do motora.
Osim toga, trebat će vam drugi isti motor tvrdog pogona za uklanjanje rotora s tog motora (
unutra je magnet).
Kako bih razdvojio motor, zgrabio sam rotor (vrh)
motor i pisao ga na statoru (dnu),
dva odvijača udaljena su 180 stupnjeva.
Nije lako držati motor na dovoljno tijesnom paru bez deformacije.
Možda biste htjeli izgraditi drveni v-
blok koji se koristi u tu svrhu.
Izbušio sam rupu u magnetskom prstenu na tokarilici tako da se udobno uklapa na vrh motora.
Ako ne možete koristiti tokarilica, invertirani rotor na motoru možete popraviti snažnim ljepilom.
Slike 2 i 3 u nastavku prikazuju unutrašnjost jednog od motora koje sam rastavio.
U prvom poluvremenu (rotor) je 8 polova (
magnet umotan u plastiku).
U drugom poluvremenu (stator)
nalazi se 12 utora (namoti).
Svaka od tri motorne faze ima 4 utora u nizu.
Neki HD motori imaju tri kontakta na dnu, jedan kontakt po fazi, a drugi središnji dodir motora (
gdje se susreću tri faze).
U ovom projektu nije potrebno središnje slavinu, ali može biti korisno u kontroli bez senzora (
nadam se da ću jednog dana otpustiti bilješku o kontroli bez senzora).
Ako vaš motor ima četiri kontakta, možete prepoznati fazu s ohmetrom.
Otpor između središnje slavine i faze je polovica otpora između bilo koje dvije faze.
Većina literature o BLDC Motors bavi se onima s potencijalnim valnim oblikom u obliku ljestvi, ali čini se da motor tvrdog diska ima povratni potencijal koji izgleda kao sinus (vidi dolje).
Koliko znam, vožnja motora sinusnog vala sa sinusnim valnim PWM -om radi u redu, iako učinkovitost može donekle pasti.
Kao i svi BLDC motori, i ovaj se sastoji od trofaznog polu-
tranzistorskog mosta (
vidi 2. fotografije u nastavku).
Koristim IC koji je napravio ST Micro (L6234)
za most, poznat i kao vozač motora.
Električni priključak L6234 prikazan je u koraku 8.
Treća fotografija ispod prikazuje shematski dijagram vozača motora i tri faze motora.
Da bi motor djelovao u smjeru kazaljke na satu, prekidač će se izvršiti u sljedećem redoslijedu (
prvo slovo je gornji tranzistor, a drugo slovo donji tranzistor)
: Korak 1 2 3 4 5 6 U smjeru kazaljke na satu: CB, AB, AC, BC, BA, CA samo u smjeru, BC, BA, CB, AC, ovi 6-
Korak, a koraka je potreban za ove 6- ' motori.
Stoga se brzina rotacije svakog motora događa četiri puta.
Čini se da su dvije sekvence iste, ali nisu iste, jer za
sekvencu od 6 koraka, za CW, struja struja kroz fazu je jedan smjer, a za CCW, struja je suprotna.
To možete sami vidjeti primjenom napona baterije ili napajanja u fazu motora.
Ako primijenite napon, motor će se malo pomaknuti u jednom smjeru i zaustaviti.
Ako možete brzo promijeniti napon u fazi u jednom od gore navedenih nizova, motor možete ručno zakretati.
Tranzistori i mikrokontroleri dovršavaju sve ove sklopke vrlo brzo, prebacujući stotine puta u sekundi kada motor radi velikom brzinom.
Također, imajte na umu da ako se napon primjenjuje na obje faze, motor se malo pomiče i zatim prestaje.
To je zato što je okretni moment nula.
To možete vidjeti na četvrtoj fotografiji u nastavku, koja pokazuje stražnji potencijal para motoričkih faza.
Ovo je sinusni val.
Kad val prođe kroz X-
osovinu, okretni moment koji pruža ova faza je nula. U šestokrakom
koraku BLDC faza promjena sekvenci koji se nikada nije dogodio.
Prije nego što okretni moment na određenoj fazi postane nizak, snaga se prebacuje na drugu fazu.
Veći BLDC motori obično se proizvode Hall senzorima unutar motora.
Ako imate takav motor, tada možete preskočiti ovaj korak.
Također, znam da postoje barem neki motori CD/DVD pogona izgrađenih u senzoru koji se već radi.
Kad se motor okreće, za otkrivanje položaja koriste se tri senzora Hall -a, tako da se promjena faza izvodi u pravom trenutku.
Moj HD motor radi do 9000 okr / min (150 Hz).
Budući da postoje 24 promjene po kotaču, pri 9000 o / min, stroj se mijenja svakih 280 mikrosekundi.
Arduino mikrokontroler djeluje na 16 MHz, tako da je svaki ciklus sata 0. 06 mikrosekundi.
Ne znam koliko je ciklusa sata potrebno za smanjenje rečenice, ali čak i ako je potrebno 100 ciklusa sata, to jest, potrebno je 5 mikrosekundi za svako smanjenje rečenice.
HD motori nemaju Hall senzore, pa ih je potrebno instalirati s vanjske strane motora.
Senzor je potrebno fiksirati s obzirom na rotaciju motora i izložen nizu stupova koji su u skladu s rotacijom motora.
Moja otopina je ukloniti magnetski prsten s istog motora i instalirati ga naopako na motor koji će se upravljati.
Zatim sam instalirao tri Hall senzora iznad ovog magnetskog prstena, 30 stupnjeva jedan od drugog na motoru (
rotacija električnog motora od 120 stupnjeva).
Moj držač senzora Hall sastoji se od jednostavnog držača koji se sastoji od tri aluminijska dijela koji su obrađivali mene i tri plastična dijela izrađena na brzom prototipu.
Ako nemate ove alate, ne bi trebalo biti teško pronaći drugi način da naznačite položaj.
Stvaranje nosača za Hall senzore bit će izazovnije.
Ovo je mogući način rada: 1.
Pronađite plastičnu ladicu prave veličine i možete pažljivo epoksidni senzor Hall. 2.
Na papiru se ispisuje predložak koji ima isti krug kao i polumjer magnetskog prstena, a tri maraka su udaljene 15 stupnjeva 3.
Zalijepite predložak na disk, a zatim upotrijebite predložak kao vodič da pažljivo postavite epoksidni senzor Hall na svoje mjesto.
Sada kada su senzori Hall instalirani na motor, spojite ih na krug prikazan u nastavku i testirajte ih pomoću DMM -a ili osciloskopa kako biste bili sigurni da izlaz postaje sve veći i niži kako se motor okreće.
Ove senzore pokrećem ispod 5 V koristeći Arduino 's 5 V izlaz.
Hall senzor je visok ili nizak izlaz (1 ili 0)
Ovisi o tome osjećaju li Antarktik ili Arktik.
Budući da su udaljeni 15 stupnjeva, magneti se okreću ispod njih i mijenjaju polaritet svakih 45 stupnjeva, ova tri senzora nikada neće biti visoka ili niska u isto vrijeme.
Kad se motor okreće, izlaz senzora je 6-
Uzorak koraka prikazan u sljedećoj tablici.
Senzor mora biti usklađen s gibanjem motora, tako da se jedan od tri senzora precizno mijenja u položaju promjene motoričke faze.
U ovom slučaju, rastući rub senzora prve dvorane (H1)
trebao bi biti u skladu s otvaranjem C kombinacije (visoke) i B (nisko).
To je ekvivalent uključivanju tranzistora 3 i 5 u krugu mosta.
Poravnavam senzor sa magnetom s osciloskopom.
Da bih to učinio, moram koristiti tri kanala opsega.
Zakrećum motor spajanjem na pojas drugog motora i mjerim potencijal stražnjeg dijela između dviju faznih kombinacija (
A i B, A i C)
Ovo su dvije sinus.
Poput valova na slici ispod,
tada pogledajte signal Hall Sensor 2 na kanalu 3 osciloskopa.
Držač senzora Hall se okreće sve dok se uzdizački rub senzora Hall -a u potpunosti ne uskladi s točkom gdje treba izvesti promjenu faze (vidi dolje).
Sada shvaćam da postoje samo dva kanala za isti kalibracija.
Ako je BEMF fazne kombinacije b-
pomoću C, rastući rub H2 bit će povezan s BC krivuljom.
Razlog zbog kojeg bi se promjena faze ovdje trebala izvesti je da moment motora uvijek bude što više.
Potencijalni potencijal proporcionalan je okretnom momentu i primijetit ćete da se svaka promjena faze dogodi kada potencijal stražnjeg dijela prođe ispod krivulje sljedeće faze.
Stoga se stvarni zakretni moment sastoji od najvećeg dijela svake fazne kombinacije.
Ako možete pristupiti opsegu, ovdje je moja ideja o usklađivanju.
Ovo je zapravo zanimljiva vježba za sve koji žele znati kako BLDC motor funkcionira.
Ako je motorna faza A spojena (pozitivna) i B (negativna)
na napajanje i uključite napajanje, motor će se malo okretati i zaustaviti.
Zatim, ako se negativni olovo napaja premjesti u C fazu i napajanje je uključena, motor će se okrenuti dalje i zaustaviti.
Sljedeći dio niza bit će premještanje pozitivnog vodstva u fazu B, itd.
Kada to učinite, motor se uvijek zaustavlja tamo gdje je okretni moment nula, što odgovara jednom mjestu gdje grafikon prolazi kroz X-osi na grafikonu.
Imajte na umu da nulta točka kombinacije treće faze odgovara položaju promjene faze u prve dvije kombinacije.
Stoga je nulti moment B-
C kombinacije C je mjesto na kojem želite postaviti rastući rub H2.
Označite ovaj položaj finim tragovima ili oštrim noževima, a zatim prilagodite držač senzora Hall pomoću DMM -a sve dok izlaz H2 nije potpuno veći na ovoj oznaci.
Čak i ako malo odstupite od školskog rasporeda, motor bi trebao raditi dobro.
Tri motorna faza dobit će snagu od trofaznog pokretača motora L6234.
Otkrio sam da je ovo dobar proizvod koji može podnijeti test vremena.
Postoji mnogo načina da slučajno pržite svoje komponente kada koristite Power Electronics, nisam inženjer elektrotehnike i ne znam što se događa.
U mom školskom programu napravili smo svoj vlastiti 3-
fazni polu-most od 6 MOSFET tranzistora i 6 dioda.
To smo koristili na HIP4086 drugog vozača Intersil, ali imamo puno problema s ovom postavljanjem,
spalili smo gomilu tranzistora i čipsa.
Trčim L6234 (
tako motor) na 12V.
L6234 ima neobičan skup ulaza za kontrolu pola mosta od 6 tranzistora.
Nije svaki tranzistor ulaz, već omogućen (EN)
ulaz za svaku od tri faze, a zatim drugi ulaz (IN)
odaberite koji tranzistor u otvorenoj fazi (gornji ili donji).
Na primjer, uključite tranzistor 1 (gornji) i 6 (donja)
i EN1 i EN3 su visoki (
EN2 niska da bi se pozornica zatvorila)
u1, visok, in3 nizak.
To čini fazu kombinacije-c.
While the L6234 application note suggested applying the PWM used to control the speed of the motor to the IN pin, I decided to do it on the EN pin because, at that time, I think it would be \'strange\' to turn on the upper and lower transistors of the phase alternately \'.
In fact, it seems that there is nothing wrong with turning on the low transistors of both phases at the same time, because they have the same potential, so neither of Prolazi
moju
.
metodu
kroz Slika je malo mala, pa za veće verzije pogledajte dokumentaciju za L6234.
NAPOMENA: Mike Anton napravio je PCB za L6234, koji će (vjerujem)
zamijeniti ovu pjesmu i uštedjeti vam posao sastavljanja.
Pogledajte ove veze za specifikacije i informacije o kupnji: Nisam pronašao puno o 3-
Opisat ću svoje razumijevanje kako to funkcionira.
Imajte na umu da nisam inženjer elektrotehnike i da bismo cijenili bilo kakve ispravke na moje objašnjenje.
Pri vožnji, upravljački sustav šalje struju u tri motorne faze na način koji maksimizira zakretni moment.
U regenerativnom kočenju, upravljački sustav također maksimizira moment, ali ovaj put to je negativan zakretni moment koji uzrokuje usporavanje motora dok šalje struju natrag u bateriju.
Regenerativna metoda kočenja koju sam koristila potjecala je iz papira iz Nacionalnog laboratorija Oakridge u Sjedinjenim Državama. S. Govt.
Laboratorij koji radi puno istraživanja za automobilski motori.
Grafikon u nastavku dolazi iz drugog rada koji pomaže ilustrirati kako djeluje (
međutim, mislim da je objašnjenje dato u ovom drugom radu djelomično netočno).
Imajte na umu da kada se motor okreće, BEMF napon u fazi motora fluktuira gore -dolje.
Na slici prikazuje trenutak kada je BEMF visok u fazi B i nisko u pozornici.
U ovom je slučaju moguće da struja teče od b u B.
Kritični za regenerativno kočenje, nisko-završni tranzistori se brzo uključe i isključuju (
tisuće PWM sklopki u sekundi).
Kada se isključi prekidač za tranzistor visokog razreda;
Kad se uključi nizak tranzistor, struja teče kao što je prikazano na prvoj slici.
Što se tiče elektronike napajanja, krug je poput uređaja koji se zove Pojačani pretvarač, gdje se energija pohranjuje u fazi motora (
Wikipedia ima dobar članak koji objašnjava kako funkcionira pretvarač pojačanja).
Ta se energija oslobađa kada je nisko-završni tranzistor isključen, ali pri višem naponu, struja se odmah prolazi kroz \ 'anti-ekscitaciju \' diodu pored svakog tranzistora, a zatim se vrati u bateriju.
Dioda sprječava da struja teče iz baterije u motor.
Istodobno, struja u tom smjeru (
suprotno vožnji)
djeluje s magnetnim prstenom kako bi se stvorio negativni okretni moment koji usporava motor.
Tranzistor s niskim stranama koristi PWM prekidač, a radni ciklus PWM kontrolira količinu kočenja.
Pri vožnji, komutacija motora prebacuje se s jedne kombinacije na drugu kako bi se održao najveći mogući okretni moment.
Komutacija regenerativne kočnice vrlo je slična jer neki način prebacivanja uzrokuje da motor proizvodi što više negativnog okretnog momenta.
Ako gledate video u prvom koraku, možete vidjeti da regenerativna kočnica dobro funkcionira, ali ne funkcionira dobro.
Mislim da je glavni razlog taj što je motor tvrdog diska koji koristim vrlo nizak moment momenta, tako da ne proizvodi mnogo BEMF -a osim najvećom brzinom.
Pri nižoj brzini, vrlo je malo regenerativnog kočenja (ako ih ima).
Također, moj sustav radi na relativno niskom naponu (12 V),
osim toga, budući da svaki put kroz diodu protiv ekscitacije smanjuje napon za nekoliko volti, to također u velikoj mjeri smanjuje učinkovitost.
Koristim normalne diode ispravljača i mogu dobiti bolje performanse ako koristim neke posebne diode s nižim padom napona.
Ispod je popis ulaza i izlaza na Arduinu.
Uključite i grafikone i fotografije moje ploče. 2-
Digitalni ulaz 1
120 K Otpor GND 3
digitalne ulazne dvorane 2
120 K Otpor GND 4
Hall 3 Digitalni ulaz-
120 K Otpor digitalnog izlaza GND 5
1 u nizu s 400 ohm otpornikom 6
2 u nizu s 400 ohm otpornika 7 3 u seriji s 400 ohm
otpornika 9-
izlaznih otpornika,
serijskih izlaza ENPUT-a. Otpor 11-
EN 3 Digitalni izlaz je u seriji s otpornikom od 400 ohma, potenciometrom od 100 k ohm, s 5 V i GND spojenim na oba kraja i analognim pin 0 spojenim u sredini.
Ovaj potenciometar koristi se za kontrolu brzine motora i kočenja volumena.
5 V napajanje se također koristi za pokretanje Hall senzora (vidi korak 5).
Evo cijelog programa koji sam napisao za Ardjuino, koji uključuje komentare:/* bldc_congroller 3. 1.
1* 3 od Davida Glazer -a.
Serija X je ST L6234 3-
PHASE MOTORSKA IC * Running Disk Drive Motor u smjeru kazaljke na satu * S regenerativnim kočenjem * Brzina motora i kočenjem kontroliranim jednim potenciometrom * Položaj motora s tri dvoalbena
senzora * Arduino prima izlaz iz 3 Hall Sensors (PINS 2,3,4) * i izlaz u PASE 9 različitih PHASE
HATGE
- EN 1,2, 3 * 3 na PIN-u 5,6, 7, respektivno (u 1,2,3)
simulaciju u 0 s potenciometrom kako biste promijenili ciklus PWM-a * između vožnje i regenerativnog kočenja
*
*
Spojite
. AllState1
varijable
;



​() {pinmode (2, ulaz);
/Hall 1 pinmode (3, ulaz);
/Hall 2 pinmode (4, ulaz);
/L6234 Hall 3/izlaz vozača motora Pinmode (5, izlaz);
/U 1 pinmode (6, izlaz);
/U 2 pinmode (7, izlaz);
/U 3 pinmode (9, izlaz);
/En 1 pinmode (10, izlaz);
/En 2 pinmode (11, izlaz);
/En 3/serijski. početi (9600);
Ako ćete koristiti serijsku vezu, odnesite ovu liniju.
Naredba Flush na kraju programa.
/* Postavite PWM frekvenciju na igle 9, 10 i 11/SET PWM na 32 kHz za igle 9, 10/prvo očistite sva tri bita prije razdvajanja: int PrescalerVal = 0x07;
/Stvorite varijablu nazvanu PrescalerVerl i postavite je na jednaku binarnom broju \ '00000111 \' TCCR1B & = ~ Prescaler
/i vrijednost u TCCR0B s binarnim brojem \ '11111000 \' /sada postavite odgovarajući bit pre-kodiranja: int pre-pred-koncentring bit 2 = 1;
/Postavite prescalerval da iznosi binarni broj \ '00000001 \' tccr1b | = PrescalerVal2;
/Ili vrijednost u TCCR0B s binarnim brojem \ '00000001 \' /postavite PWM na 32 kHz za PIN 3,11 (
ovaj program koristi samo PIN 11)
/očistite sva tri bita prije kalera: TCCR2B & = ~ pre-kalerval;
/I vrijednost u TCCR0B s binarnim brojem \ '11111000 \'/sada postavite odgovarajući bit pred-kodiranja: tcCr2b | = Pred-kodiranje bit 2;
/Ili vrijednost u TCCR0B s binarnim brojem \ '00000001 \'/Prvo očistite sva tri prethodno kodirana bita:}
glavna petlja/prgrom void loop () {
/vrijeme = millis ();
Vrijeme nakon pokretanja programa ispisa. println (vrijeme); //Serijski. ispis (\ '\');
Gasle = analOread (0);
/Leptir potenciometar msps = mapa (
gasle, 512.1023, 0,255);
/Vožnja je preslikana u gornju polovicu potenciometra bspeed = mapa (
gas, 0,511,255, 0);
/Poludjele regenerativno kočenje na dnu lonca/msps ed = 100;
/Za uklanjanje pogrešaka hallstate1 = digitalReat (2);
/Pročitajte ulaznu vrijednost iz Hall 1 2 = Digital Read (3);
/Pročitajte ulaznu vrijednost iz Hall 2 3 = Digital Read (4);
Pročitajte ulaznu vrijednost/Numerički pisanje iz dvorane 3 (8, Hallstate1);
/Kad je odgovarajući senzor na velikoj snazi, LED će se uključiti u
prvobitno korištenje za uklanjanje pogrešaka DigitalWrite (9, Hallstate2);
// DigitalWrite (10, Hallstate3); Hallval = (Hallstate1)+ (2*Hallstate2)+ (4*Hallstate3);
/Izračunajte binarne vrijednosti 3 Hall senzora/* serije. tisak (\ 'h 1: \');
Za uklanjanje pogrešaka serijske luke. println (hallstate1); Serijski. tisak (\ 'h 2: \'); Serijski. println (hallstate2); Serijski. tisak (\ 'h 3: \'); Serijski. println (hallstate3); Serijski. println (\ '\');
*/// serijski. println (mspeed); //Serijski. println (Hallval); //Serijski. ispis (\ '\');
/Monitor Tranzistor izlaz/kašnjenje (1000);
/* T1 = digitalRear (2); // t1 = ~ t1;
T2 = DigitalReat (4); // t2 = ~ t2;
T3 = DigitalReat (5); // t3 = ~ t3; Serijski. ispis (T1); Serijski. tisak (\ '\ t \'); Serijski. ispis (T2); Serijski. tisak (\ '\ t \'); Serijski. ispis (T3); Serijski. ispis (\ '\'); Serijski. ispis (\ '\'); Serijski. ispis (digitalRear (3)); Serijski. tisak (\ '\ t \'); Serijski. ispis (digitalRear (9)); Serijski. tisak (\ '\ t \'); Serijski. println (digitalRear (10)); Serijski. ispis (\ '\'); Serijski. ispis (\ '\'); // kašnjenje (500);
*/Promjena faze vožnje/svaki binarni broj ima slučaj koji odgovara različitim tranzistorima uključenim/bitnim matematikom koji se koristi za promjenu vrijednosti izlaznog arduino:/portd sadrži izlaz u PIN -u na pokretačkom programu L6234/izlaz koji se koristi za utvrđivanje da li je gornji tranzistor/en za svaki faza,
kontrolira ili vrijednost gasa kontroliranu potenciometrom). if (gasle> 511) {switch (hallval) {
case 3:/portd = 1111xxx00;
/Očekivani izlaz PIN-a 0-
7 XXX odnosi se na ulaz u dvorani, a portd & = b00011111 ne bi se trebao mijenjati;
Portd | = B01100000;
/Analowrit (9, MSPEED);
PWM na fazi (
vrhunski tranzistor) Analogwrite (10,0);
Faza B zatvaranje (debela = 0) Analogwrite (11.255); // Faza C na -UTY = 100% (
nisko -završni tranzistor) prekid;
Slučaj 1:/portd = b001xxx00;
/Očekivani izlaz PIN-a 0-
7 portd & = b000111111;
/Portd | = B00100000;
/Analowrit (9, MSPEED);
PWM na fazi (
vrhunski tranzistor) Analogwrite (10,255); // faza B na (
nisko-end tranzistor) analogwrite (11,0); // Faza B isključena (dužnost = 0) prekid;
Slučaj 5:/portd = b101xxx00;
/Očekivani izlaz PIN-a 0-
7 portd & = b000111111;
/Portd | = B10100000; Analogwrite (9,0); Analogwrite (10,255); Analogwrite (11, mspeed); prekid;
Slučaj 4:/portd = b100xxx00;
/Očekivani izlaz PIN-a 0-
7 portd & = b000111111;
Portd | = bym000;
/Analowrit (9,255); Analogwrite (10,0); Analogwrite (11, mspeed); prekid;
Slučaj 6:/portd = b110xxx00;
/Očekivani izlaz PIN-a 0-
7 portd & = b000111111;
Portd B11. 000 =;
/Analowrit (9,255); Analogwrite (10, mspeed); Analogwrite (11,0); prekid;
Slučaj 2:/portd = b010xxx00;
/Očekivani izlaz PIN-a 0-
7 portd & = b000111111;
B0201700 Portd | =;
/Analowrit (9,0); Analogwrite (10, mspeed); Analogwrite (11.255); prekid; }}
/Regenerativna faza kočnica Promjena /portd (
izlaz u PIN na L6234)
Igle su uvijek niske, tako da se tijekom regena koriste samo niski tranzistori u svakoj fazi. kočenje. else {
/portd = b000xxx00;
/Očekivani izlaz PIN-a 0-
7 portd & = b000111111;
Portd | = BYM0000; // Switch (Hallval) {
Slučaj 3: Analogy Writing (9, bspeed); // Analogwrite (9,0); Analogwrite (10,0); Analogwrite (11,0); prekid;
Slučaj 1: Analoško pisanje (9, BSPEED); Analogwrite (10,0); Analogwrite (11,0); prekid;
Slučaj 5: Analoško pisanje (9,0); Analogwrite (10,0); Analogwrite (11, bspeed); prekid;
Slučaj 4: Analoško pisanje (9,0); Analogwrite (10,0); Analogwrite (11, bspeed); prekid;
Slučaj 6: Analoško pisanje (9,0); Analogwrite (10, bspeed); Analogwrite (11,0); prekid;
Slučaj 2: Analoško pisanje (9,0); Analogwrite (10, bspeed); Analogwrite (11,0); prekid; }}
/Vrijeme = millis ();
Vrijeme nakon pokretanja programa ispisa. println (vrijeme); //Serijski. ispis (\ '\'); //Serijski. Flush ();
/Ako želite ispraviti pogrešku pomoću serijskog priključka, molimo vas da se uklopimo}
Mislim da je operacija koju Arduino radi u ovom projektu toliko jednostavna da se čini da je otpad da ovaj zadatak obavi s mikroprocesorom.
U stvari, bilješke o aplikacijama L6234 preporučuju jednostavan program za programiranje vrata (
GAL16V8 izrađen od rešetke Semiconductor) za obavljanje ovog posla.
Nisam upoznat s programiranjem ovog uređaja, ali trošak IC -a iznosi samo 2 USD. 39 u Newarku.
Ostali slični integrirani krugovi također su vrlo jeftini.
Druga je mogućnost sastaviti diskretna logička vrata.
Smislio sam neke relativno jednostavne logičke sekvence koje bi mogle pokrenuti L6234 IC s izlaza tri senzora Hall.
Grafikon za fazu A prikazan je u nastavku, a tablica istine za sve tri faze (
kako bi se za logički krug faza B i C \ 'nisu \' vrata moraju prebaciti na drugu stranu \ 'ili.
Problem s ovim pristupom je da u svakoj fazi postoji gotovo 20 veza, tako da je i to što je programiranje,
kao što je program, koji je bio najbolji.

HOPIO GRUPA Profesionalni proizvođač kontrolera i motora osnovan je 2000. godine. Sjedište grupe u gradu Changzhou, provincija Jiangsu.

Brze veze

Kontaktirajte nas

Whatsapp: +86 18921090987 
Tel: +86-18921090987 
E -pošta: sales02@hoprio.com
Dodaj: br.19 Mahang South Road, okrug visoke tehnologije Wujin, grad Changzhou, provincija Jiangsu, Kina 213167
Ostavite poruku
Kontaktirajte nas
Copyright © 2024 Changzhou Hoprio E-Commerce Co., Ltd. Sva prava pridržana. Sitemap | Pravila o privatnosti