Arduino, kurtarılmış HD motor ve salon sensörleri ile BLDC motor kontrolü
Ev » Blog » Arduino, kurtarılan HD motor ve salon sensörleri ile BLDC motor kontrolü

Arduino, kurtarılmış HD motor ve salon sensörleri ile BLDC motor kontrolü

Görünümler: 0     Yazar: Site Editor Yayınlanma Zamanı: 2020-09-02 Köken: Alan

Sormak

Facebook Paylaşım Düğmesi
Twitter Paylaşım Düğmesi
Hat Paylaşım Düğmesi
WeChat Paylaşım Düğmesi
LinkedIn Paylaşım Düğmesi
Pinterest Paylaşım Düğmesi
WhatsApp Paylaşım Düğmesi
Kakao Paylaşım Düğmesi
Snapchat Paylaşım Düğmesi
Telegram Paylaşım Düğmesi
sharethis paylaşım düğmesi

Günümüzde, meraklılar geleneksel DC motoruna kıyasla fırçasız DC'yi (BLDC) kontrol etmekle çok ilgileniyorlar
, motorun performansı iyileşti, enerji verimliliği de iyileşti, ancak kullanımı daha zor. birçok raf dışı ürün mevcuttur.
Bu amaç için
Örneğin, RC uçağı için çok iyi çalışan çok sayıda küçük BLDC denetleyicisi vardır.
BLDC'nin kontrolünü daha derinlemesine incelemek isteyenler için, endüstriyel kullanıcılar için genellikle çok iyi belgelere sahip birçok farklı mikro kontrolör ve diğer elektronik donanımlar da vardır.
Şimdiye kadar BLDC kontrolü için Arduino mikro kontrolörünün nasıl kullanılacağına dair kapsamlı bir açıklama bulamadım.
Ayrıca, rejeneratif fren yapmak veya enerji üretimi için bir BLDC kullanmak istiyorsanız, küçük motorlarla kullanım için uygun birçok ürün bulamadım veya 3 fazlı jeneratörün nasıl kontrol edileceğini öğrenmedim.
Bu yapı başlangıçta gerçek zaman hesaplaması ile ilgili bir hikayedeydi
, kurs bittikten sonra bunu yapmaya devam ediyorum.
Proje fikri, volan enerjisi depolama ve rejeneratif frenli hibrit bir otomobilin orantılı bir modelini göstermektir.
Projede kullanılan motor, hasarlı bilgisayar sabit sürücüsünden temizlenmiş küçük bir BLDC'lerdir.
Bu kılavuz, Arduino mikro kontrolörünün nasıl kullanılacağını açıklar ve
sürüş ve rejeneratif frenleme modlarında konum sensörlerini etkiler.
Ossillisoft'u ziyaret etmenin, gerekli olmasa da bu projeyi tamamlamak için çok yararlı olduğunu lütfen unutmayın.
Kapsama erişemiyorsanız, kapsam olmadan nasıl yapılacağına dair bazı öneriler ekledim (Adım 5).
Bu projenin herhangi bir gerçek motor kontrolörüne dahil etmemesi gereken bir şey, aşırı akım koruması gibi herhangi bir güvenlik işlevidir.
Aslında, en kötü şey HD motoru yakmanızdır.
Bununla birlikte, mevcut donanımla aşırı akım korumasının uygulanması zor değildir ve belki bunu bir noktada yapacağım.
Daha büyük bir motoru kontrol etmeye çalışıyorsanız, motorunuzu ve kendi güvenliğinizi korumak için lütfen akım korumasını ekleyin.
Bu denetleyiciyi biraz 'gerçek \' iş yapabilen daha büyük bir motorla kullanmaya çalışmak istiyorum ama henüz doğru olanı yok.
Ebay'in yaklaşık 40 dolara 86 W otomobil sattığını fark ettim.
İyi bir adaya benziyor.
Ayrıca, kendi BLDC'lerini monte eden kitler satan \ 'gobrushless \' adlı bir RC web sitesi de var.
Bunlar çok pahalı değil ve bir tane inşa etmek için deneyime değer.
Bu web sitesinde motor için hiçbir salon sensörü olmadığını lütfen unutmayın. Vay canına!
Bu yapıyı yazmak büyük bir iştir.
Umarım yararlı bulursunuz, lütfen yorumlarınızı ve önerilerinizi yapın.
Dijital Multimetre (DMM)-
DMM'nizin bir frekans ölçer osiloskopu varsa (
en az 2 kanal olması daha iyidir)
T8 Torx sürücüsü (
herhangi bir sabit sürücüyü açmak için bunlardan birine ihtiyacınız var).
İyi bir donanım mağazası var.
Makine atölyesi ve hızlı prototip (
bunlar çok yararlı ama bence bu proje onlarsız yapılabilir).
Malzeme BLDC Motor Magnetik Halkası Bilgisayar Sabit Disk'ten (
Motorun Yarı)
Başka Bir Sert Driveseveral'den (3-6)
Gümüş diskte sert diskte (DC fırçalanmış OK)
lastik bant veya (tercihen) (tercihen)
başka bir motor elektronik plaka katı teli altı rotor ayı ile bir tutamağa sahip fırçasız DC motor var. Ohmst Micro Devre L6234 Üç fazlı motor sürücü IC iki 100 UF kapasitör bir 10 nf kapasitör bir 220 nf kapasitör bir 1 UF kapasitör bir kişi SS411a bipolar salon-5 alıcı diyotlar bir 2.
Honeywell SS411a bipolar salon-5 amp sigorta 1 sigorta sahibi 3
nota olarak tasarlanan ve satılan bir ürün gösterdi ve sattı. (
Potansiyel indüksiyon kullanılarak kontrol edilir).
Spesifikasyonlar ve tedarik bilgileri bu iki bağlantıda bulunabilir: Bu projeyi yapacaksanız, BLDC'nin nasıl çalıştığını ve kontrollerini iyice anlamak için zaman ayırmanızı öneririm.
Çevrimiçi çok sayıda referans vardır (
bazı öneriler için aşağıya bakın).
Ancak, projemde anlamanıza yardımcı olacak bazı grafikler ve tablolar ekliyorum.
İşte bu projeyi anlamak için en önemli olduğunu düşündüğüm kavramların bir listesi: MOSFET transistörleri 3-fazlı yarım köprü 6-
3-3-adım indirgeme
Faz motorunun (PWM)
mikroçip avr443: sensörler-genel referans, dijital konum sensörleri için dijital konum sensörleri için dijital konum sensörlerinin kontrolü için dijital konum sensörleri için Motor Temel prensipler,
üç fasonlu Motorlu Motor kontrolü için
Motor temel prensipler. Sensör, sabit sürücü motorunu temizlemenin iyi bir videosu, ancak yazar motoru bir basamak motoru ve bir basamak motoru olarak çalıştırıyor gibi görünüyor. Veri sayfaları, uygulama notları ve satın alma bilgileri de dahil olmak üzere L6234 motorlu sürücü IC'deki BLDC için daha spesifik bir referans web sayfası.
Hibrit elektrikli araç uygulamaları için PM fırçasız motor tahrik için ücretsiz örnek.
Bu, rejeneratif frenleme fazı değişiminin sırasını tanımlayan tek kağıt.
Bu kağıt, elektrikli araçlarda rejeneratif frenleme yararlıdır, ondan birkaç sayı ödünç aldım, ancak bence rejenerasyonun nasıl çalıştığını yanlış açıklıyor.
Bu projeyi geri dönüştürülmüş disk sürücü motoru ile yaptım çünkü geçmesi kolaydı ve BLDC tarafından kontrol edilen ve herhangi bir güvenlik sorununa neden olmamak için küçük bir düşük voltaj motoru kullanmayı seviyorum.
Ek olarak, salon sensörünün mıknatıs yapılandırması,
bu motorların ikincisinden manyetik halka (rotor) kullanılarak çok basit hale gelir (bkz. Adım 4).
Salon sensörünü (Adım 5-7) takma ve kalibre etme zorluğuna gitmek istemiyorsanız,
en azından bazı CD/DVD sürücü motorları olduğunu biliyorum.
Motora biraz dönme ataleti sağlamak ve onlara biraz yük vermek için, motora 5 sabit disk koydum, hafifçe güçlü bir tutkalla yapıştırılmış ve motora yapıştırılmış (
bu orijinal projemde volan yaptı).
Motoru sabit sürücüden çıkaracaksanız, muhafazayı sökmek için bir T8 torx sürücüsüne ihtiyacınız var (
genellikle Centeron etiketindeki çubuğun arkasına gizlenmiş iki vida vardır)
ve motoru yerinde tutan iç vidalar.
Ayrıca, Head Reader'ı (
Sound Circle Executive)
bu şekilde motora ulaşmak için bellek diskini çıkarabilirsiniz.
Buna ek olarak, rotoru o motordan çıkarmak için ikinci bir sabit sürücü motoruna ihtiyacınız olacak (
içinde bir mıknatıs var).
Motoru ayırabilmek için, rotoru (üst)
bir motorun mengenesini aldım ve stator (alt) üzerine kaldırdım,
iki tornavida 180 derece aralık.
Motoru deformasyon olmadan yeterince sıkı bir çiftte tutmak kolay değildir.
bir ahşap v-bloğu inşa etmek isteyebilirsiniz .
Bu amaç için kullanılan
Torna üzerindeki manyetik halkaya bir delik açtım, böylece motorun üstüne rahatça sığacak.
Torna'yı kullanamıyorsanız, motor üzerindeki ters rotoru güçlü bir tutkalla sabitleyebilirsiniz.
Aşağıdaki 2 ve 3 resimleri, söktüğüm motorlardan birinin iç kısmını göstermektedir.
İlk yarıda (rotor) 8 kutup vardır (
plastikle sarılmış mıknatıs).
İkinci yarıda (stator)
12 yuva (sargılar) vardır.
Üç motor fazın her birinin seri olarak 4 yuvası vardır.
Bazı HD motorların altta üç kontağı, biri faz başına temas, diğeri ise motorun merkez musluğu (
üç aşamada buluştuğu yer).
Bu projede, merkez musluğu gerekmez, ancak sensörsüz kontrolde kullanışlı olabilir (
bir gün sensörsüz kontrol hakkında bir not yayınlamayı umuyorum).
Motorunuzun dört kontağı varsa, fazı ohmetre ile tanımlayabilirsiniz.
Merkez musluk ve faz arasındaki direnç, iki faz arasındaki direncin yarısıdır.
BLDC Motors hakkındaki literatürün çoğu, merdiven şeklindeki sırt potansiyel dalga formu olanlarla ilgilenir, ancak sabit sürücü motorunun sinüs gibi görünen bir sırt potansiyeli var gibi görünüyor (aşağıya bakınız).
Bildiğim kadarıyla, bir sinüs dalgası PWM ile bir sinüs dalga motoru sürmek iyi çalışıyor, ancak verimlilik bir miktar düşebilir. Tüm BLDC motorları gibi, bu üç fazlı yarım
oluşur (
transistör köprüsünden
aşağıdaki 2. fotoğraflara bakın).
St Micro (L6234) tarafından yapılan IC'yi kullanıyorum .
Motor sürücüsü olarak da bilinen köprü için
L6234'ün elektrik bağlantısı Adım 8'de gösterilmiştir.
Aşağıdaki üçüncü fotoğraf motor sürücüsünün ve üç motor fazının şematik bir diyagramını göstermektedir.
Motorun saat yönünde çalışması için, anahtar aşağıdaki sırada yapılacaktır (
ilk harf üst transistör ve ikinci harf alt transistördür)
: Adım 1 2 3 5 6 saat yönünde: CB, AB, BC, BC, BC, BC, BC, BC, BC, BC, AC, CB, AB, AC, AC, bu 6-
AC, 360, sadece 360 ​​'ın 90' ı, fesih, fesih, fesih, sadece bu fesih, falan gerektirir.
Bu nedenle, her motorun dönüş hızı dört kez gerçekleşir.
İki sekans aynı görünüyor, ancak aynı değil, çünkü 6
adım dizisi için CW için, faz içindeki akım yönü bir yön ve CCW için mevcut yön ters.
Her iki motor fazına pil veya güç kaynağının voltajını uygulayarak bunu kendiniz görebilirsiniz.
Voltajı uygularsanız, motor biraz tek yönde hareket edip duracaktır.
Yukarıdaki dizilerden birinde fazdaki voltajı hızlı bir şekilde değiştirebiliyorsanız, motoru manuel olarak döndürebilirsiniz.
Transistörler ve mikrodenetleyiciler tüm bu anahtarları çok hızlı bir şekilde tamamlar ve motor yüksek hızda çalışırken saniyede yüzlerce kez geçer.
Ayrıca, voltaj her iki aşamaya da uygulanırsa, motorun biraz hareket ettiğini ve sonra durduğunu lütfen unutmayın.
Bunun nedeni, tork sıfır olmasıdır.
Bunu, bir çift motor aşamasının arka potansiyelini gösteren aşağıdaki dördüncü fotoğrafta görebilirsiniz.
Bu bir sinüs dalgası.
Dalga X-Maft'dan geçtiğinde
, bu faz tarafından sağlanan tork sıfırdır. Altı
adımlı BLDC faz değişim dizisinde hiç gerçekleşmeyen.
Belirli bir fazdaki tork düşmeden önce, güç başka bir faz kombinasyonuna geçirilir.
Daha büyük BLDC motorları genellikle motorun içindeki salon sensörleri tarafından üretilir.
Böyle bir motorunuz varsa, bu adımı atlayabilirsiniz.
Ayrıca, zaten halihazırda hold sensöründe yerleşik olan bazı CD/DVD sürücü motorları olduğunu biliyorum.
Motor döndüğünde, konum algılaması için üç salon sensörü kullanılır, bu nedenle faz değişikliği doğru anda gerçekleştirilir.
HD motorum 9000 rpm'ye (150 Hz) kadar çalışır.
Tekerlek başına 24 değişiklik olduğundan, 9000 rpm'de, makine 280 mikrosaniyede bir değiştirilir.
Arduino mikro kontrolör 16 MHz'de çalışır, bu nedenle her saat döngüsü 0. 06 mikrosaniyedir.
Cümlenin azalması için kaç saat döngüsünün gerektiğini bilmiyorum, ancak 100 saat döngüsü gerekli olsa bile, her cümlenin azalması için 5 mikrosaniye alır.
HD motorların salon sensörleri yoktur, bu nedenle bunları motorun dışına monte etmek gerekir.
Sensörün motor rotasyonuna göre sabitlenmesi ve motor rotasyonu ile tutarlı bir dizi kutupa maruz kalması gerekir.
Benim çözümüm manyetik halkayı aynı motordan çıkarmak ve kontrol edilecek motora baş aşağı monte etmektir. Daha sonra bu manyetik halkanın üzerine, motor şaftında (
birbirinden 30 derece ayrı üç salon sensörü taktım .
120 derece elektrik motoru rotasyonu)
Salon sensörü tutucum, benim tarafımdan işlenen üç alüminyum parçadan ve hızlı bir prototipte yapılan üç plastik parçadan oluşan basit bir tutucudan oluşuyor.
Bu araçlara sahip değilseniz, pozisyonu belirtmek için başka bir yol bulmak zor olmamalıdır.
Salon sensörleri için parantez oluşturmak daha zor olacaktır.
Bu çalışmanın olası bir yoludur: 1.
Doğru boyutta plastik bir tepsi bulun ve salon sensörünü dikkatlice epoksi yapabilirsiniz. 2.
Kağıt üzerine manyetik halka yarıçapı ile aynı daireye sahip bir şablon basılmıştır ve üç işaret 15 derece 3 aralıktır.
Şablonu diske yapıştırın ve ardından salon sensörü epoksisini yerine dikkatlice yerleştirmek için şablonu bir kılavuz olarak kullanın.
Artık salon sensörleri motora monte edildiğine göre, bunları aşağıda gösterilen devreye bağlayın ve motor döndükçe çıkışın yükseldiğinden ve daha düşük olduğundan emin olmak için bir DMM veya osiloskop kullanarak test edin.
Bu sensörleri Arduino 's 5 V çıkışını kullanarak 5 V altında çalıştırıyorum.
Salon sensörü çıkış açısından yüksek veya düşüktür (1 veya 0)
Antarktika mı yoksa Arktik mi hissettiklerine bağlıdır.
15 derece aralıklı oldukları için, mıknatıslar altlarında döner ve polariteyi 45 derece değiştirir, bu üç sensör asla aynı anda yüksek veya düşük olmayacaktır.
Motor döndüğünde, sensör çıkışı 6'dır-
aşağıdaki tabloda gösterilen adım deseni.
Sensör, üç sensörden biri tam olarak motor fazı değişim konumunda değişmesi için motorun hareketiyle hizalanmalıdır.
Bu durumda, ilk salon sensörünün (H1) yükselen kenarı,
C kombinasyonunun (yüksek) ve B (düşük) açılmasıyla tutarlı olmalıdır.
Bu, köprü devresindeki transistörleri 3 ve 5'i açmaya eşdeğerdir.
Sensörü mıknatısla osiloskopla hizalıyorum.
Bunu yapmak için üç kanal kullanmam gerekiyor.
Motoru ikinci motorun kayışına bağlayarak döndürüyorum ve iki faz kombinasyonu (
A ve B, A ve C) arasındaki sırt potansiyeli ölçüyorum
.
Aşağıdaki resimdeki dalgalar gibi
, osiloskopun 3. Kanal 3'teki Salon Sensörü 2'nin sinyaline bakın.
Salon sensörü tutucusu, salon sensörünün yükselen kenarı, faz değişikliğinin gerçekleştirilmesi gereken noktaya tamamen hizalanana kadar döndürülür (aşağıya bakınız).
Şimdi aynı kalibrasyonu yapmak için sadece iki kanal olduğunu anlıyorum. C kullanan
faz kombinasyonu B- BEMF
, H2'nin yükselen kenarı BC eğrisi ile ilişkili olacaktır.
Faz değişiminin burada gerçekleştirilmesinin nedeni, motor torkunu her zaman mümkün olduğunca yüksek tutmaktır.
Sırt potansiyeli torkla orantılıdır ve her faz değişikliğinin arka potansiyel bir sonraki aşama eğrisinin altından geçtiğinde meydana geldiğini fark edeceksiniz.
Bu nedenle, gerçek tork, her faz kombinasyonunun en yüksek kısmından oluşur.
Eğer kapsamı erişemezseniz, burada uyum fikrim.
Bu aslında BLDC motorunun nasıl çalıştığını bilmek isteyen herkes için ilginç bir egzersiz. Motor fazı A (pozitif) ve b (negatif)
bağlanır ve güç kaynağını açarsa, motor biraz döner ve durur.
güç kaynağına
Ardından, negatif güç kablosu C fazına taşınır ve güç açılırsa, motor daha ileri döner ve durur.
Dizinin bir sonraki kısmı pozitif kurşunu Faz B'ye taşımak olacaktır.
Bunu yaptığınızda, motor her zaman torkun sıfır olduğu yerde durur, bu da grafiğin grafik üzerindeki x ekseninden geçtiği bir yere karşılık gelir.
Üçüncü faz kombinasyonunun sıfır noktasının ilk iki kombinasyonun faz değişim konumuna karşılık geldiğini unutmayın.
Bu nedenle, B- C kombinasyonu sıfır tork pozisyonu,
H2'nin yükselen kenarını konumlandırmak istediğiniz yerdir.
Bu pozisyonu ince izler veya keskin bıçaklarla işaretleyin ve ardından H2 çıkışı bu işarette tam olarak daha yüksek olana kadar DMM kullanarak salon sensörü tutucusunu ayarlayın.
Okul programınızdan biraz sapsanız bile, motor iyi çalışmalıdır.
Üç motor fazı L6234 üç fazlı motor sürücüsünden güç alacaktır.
Bunun zaman testine dayanabilecek iyi bir ürün olduğunu buldum.
Güç elektroniği kullanırken bileşenlerinizi yanlışlıkla kızartmanın birçok yolu vardır, bir elektrik mühendisi değilim ve her zaman neler olduğunu bilmiyorum.
Okul programımda,
6 MOSFET transistörü ve 6 diyotun kendi 3 fazlı yarım köprü çıkışımızı yaptık.
Bunu diğer sürücü intersil'in HIP4086'sında kullandık, ancak bu kurulumda
bir sürü transistör ve cips yaktık. L6234 (
çalıştırıyorum .
böylece motor) 12V'de
L6234, 6 transistörün yarım köprüsünü kontrol etmek için alışılmadık bir giriş setine sahiptir.
Her transistörün bir girişi yoktur, ancak
üç aşamanın her biri için bir etkin (EN) girişi vardır ve daha sonra
açık fazda (üst veya alt) hangi transistörü seçin.
Örneğin, transistör 1 (üst) ve 6 (alt) üzerinde açın
hem EN1 hem de EN3 yüksektir (
aşamayı kapalı tutmak için EN2 düşük)
1 yüksek, 3 inç.
Bu, faz kombinasyonunu yapar.
L6234 uygulama notu, motorun hızını PIN'e kontrol etmek için kullanılan PWM'yi uygulamayı önerirken, bunu EN PIN üzerinde yapmaya karar verdim, çünkü o zaman, aşamanın üst ve alt transistörlerini alternatif olarak \ '\' garip \ 'olacağını düşünüyorum.
Aslında, her iki kılıfın düşük transistörlerini aynı şekilde çevirmedikleri için yanlış bir şey olmadığı için yanlış bir şey yok gibi görünmüyor gibi görünmüyor gibi görünmüyor gibi görünüyor. Metodumdan
geçer
.

​Küçük, bu nedenle daha büyük sürümler için lütfen L6234 belgelerine bakın.
Not: Mike Anton, L6234 için PCB'yi yaptı, bu da
bu parçanın yerini alacak ve bir araya getirme işini kurtaracak.
Spesifikasyonlar ve satın alma bilgileri için bu bağlantılara bakın: 3 hakkında çok fazla şey bulmadım-
Nasıl çalıştığı konusundaki anlayışımı açıklayacağım.
Bir elektrik mühendisi olmadığımı ve açıklamamda herhangi bir düzeltmeyi takdir edeceğimizi lütfen unutmayın.
Sürüş sırasında, kontrol sistemi torku en üst düzeye çıkaracak şekilde akımı üç motor aşamasına gönderir.
Rejeneratif frenlemede, kontrol sistemi de torku en üst düzeye çıkarır, ancak bu sefer akımı geri gönderirken motorun yavaşlamasına neden olan negatif bir torktur.
Kullandığım rejeneratif fren yöntemi, Amerika Birleşik Devletleri'ndeki Oakridge Ulusal Laboratuvarı'ndan bir makaleden geldi. S. Govt.
Otomotiv motorları için çok fazla araştırma yapan bir laboratuvar.
Aşağıdaki grafik, nasıl çalıştığını göstermeye yardımcı olan başka bir makaleden geliyor (
ancak, bu ikinci makalede verilen açıklamanın kısmen yanlış olduğunu düşünüyorum).
Motor döndüğünde, motor fazındaki BEMF voltajının yukarı ve aşağı dalgalandığını unutmayın.
Şekilde, BEMF'nin evre B'de yüksek ve aşamada düşük olduğu anı gösterir.
Bu durumda, akımın B'den akması mümkündür.
Rejeneratif frenleme için kritik olan düşük uçlu transistörler hızlı bir şekilde açılıp kapanıyor (
saniyede binlerce PWM anahtarı).
Üst düzey transistör anahtarı kapatıldığında;
Düşük transistör açıldığında, akım ilk resimde gösterildiği gibi akar.
Güç elektroniği açısından devre, enerjinin motorun fazında saklandığı bir güçlendirme dönüştürücü adı verilen bir cihaz gibidir (
Wikipedia'nın boost dönüştürücünün nasıl çalıştığını açıklayan iyi bir makalesi vardır).
Bu enerji, düşük kaliteli transistör kapatıldığında salınır, ancak daha yüksek bir voltajda, akım her bir transistörün yanındaki \ 'anti-seatitasyon \' diyotundan anında akar ve daha sonra bataryaya geri döner.
Diyot, akımın pilden motora akmasını önler.
Aynı zamanda, bu yöndeki akım (
sürüşün aksine)
motoru yavaşlatan negatif bir tork üretmek için mıknatıs halkasıyla etkileşime girer.
Düşük taraflı transistör bir PWM anahtarı kullanır ve PWM'nin görev döngüsü fren miktarını kontrol eder.
Sürüş sırasında, mümkün olan en yüksek torku korumak için motorun komisyonu zamanında bir kombinasyondan diğerine geçiş yapar.
Rejeneratif frenin komisyonu çok benzerdir çünkü bazı anahtarlama modu motorun mümkün olduğunca fazla negatif tork üretmesine neden olur.
Videoyu ilk adımda izlerseniz, rejeneratif frenin iyi çalıştığını görebilirsiniz, ancak iyi çalışmaz.
Bence ana sebep, kullandığım sabit sürücü motorunun çok düşük bir tork motoru olması, bu yüzden en yüksek hız dışında çok fazla bemf üretmiyor.
Daha düşük bir hızda, çok az rejeneratif fren (varsa) vardır.
Ayrıca, sistemim nispeten düşük bir voltajda (12 V) çalışır
, çünkü anti-incitasyon diyotundan her yol voltajı birkaç volt azaltır, bu da verimliliği büyük ölçüde azaltır.
Normal doğrultucu diyotlar kullanıyorum ve daha düşük voltaj düşüşüne sahip bazı özel diyotlar kullanırsam daha iyi performans elde edebilirim.
Aşağıda Arduino'daki girdilerin ve çıktıların bir listesi bulunmaktadır.
Ayrıca panomun grafiklerini ve fotoğraflarını da içeriyor. 2-
Dijital Giriş Halk 1
120 K GND 3
Dijital Giriş Direnci 2
120 K GND Direnç 4 Direnç 4
6 2 Dijital
Direnç Direnç
Çıkış, 400 Ohm Direnç 7 3 Dijital Çıkış
Direnç Direnç 7
3 Dijital Çıkış 400 OHM Direnç Direnç Dirençli
Dijital Çıktı ile Seri Seri ile Seri
Serilerle 400 Ohm Direnç Çıktı ile Seri 2 11-
EN 3 dijital çıkışı, her iki uçta 5 V ve GND bağlanmış 400 ohm direnç, 100 K ohm potansiyometre ile seridir.
Bu potansiyometre motor hızını ve fren hacmini kontrol etmek için kullanılır.
5 V güç kaynağı salon sensörlerini çalıştırmak için kullanılır (bkz. Adım 5).
İşte Ardjuino için yazdığım tüm programlar:/* bldc_congroller 3. 1.
1* 3 David Glazer.
X Serisi St L6234 3-
Faz Motor Sürücü IC * Regeratif Frenleme * Motor Hızı ve Frenli Üç Hall-
efekt Sensörü tarafından kontrol edilen Motor Hızı ve Frenleme ile ST L6234 3- Koşu Sürücüsü Motoru * Arduino tarafından kontrol edilen Motor Hızı ve Frenleme * Arduino, 3 Hall sensöründen (pinler 2,3,4)
* * * pins 2,3,4) * * * pins, 6 farklı faz değişen adımlara dönüştürür (32 KHZ'ye dönüştürülür (6 farklı faz değişimine
dönüştürün 1,2, 3 * 3 sırasıyla 5,6, 7'de (1,2,3'te)
ve değişmek için Potansiyometreye bağlayın
* Sürüş ve rejeneratif frenleme * arasında
PWM görev döngüsünü
değiştirmek
.
Üç salon
Hallstate2
;
sensörü
int
(
/Hall 1 Pinmode (3, giriş);
/Hall 2 Pinmode (4, giriş);
/L6234 Salon 3/Pinmode motor sürücüsünün çıkışı (5, çıkış);
/1 pinmode (6, çıktı);
/2 pinmode (7, çıktı);
/3 pinmode (9, çıktı);
/Tr 1 pinmode (10, çıktı);
/En 2 pinmode (11, çıktı);
/Tr 3/seri. başlangıç ​​(9600);
Bir seri bağlantı kullanacaksanız, lütfen bu satırı açın.
Programın sonundaki yıkama komutu.
/* 9, 10 ve 11 pimlerinde PWM frekansını ayarlayın/Pins 9, 10/ilk üç-ön divider bitini de temizleyin: int prescalerval = 0x07;
/Prescalerval adlı bir değişken oluşturun ve ikili sayısına eşit olacak şekilde ayarlayın \ '00000111 \' tccr1b & = ~ Prescaler
/ve TCCR0B'deki değeri ikili sayıda \ '1111000 \' /şimdi uygun ön kodlama bitini ayarlayın: int ön çözme biti 2 = 1 = 1;
/Prescalerval'ı ikili sayıya eşit olarak ayarlayın \ '00000001 \' tccr1b | = prescalerval2;
/Veya TCCR0B'de \ '00000001 \' /PIN 3,11 için PWM'ye 32 kHz'e ayarlayın (
bu program sadece pim 11 kullanır)
/Önce üç kalem öncesi biti temizleyin: TCCR2B & = ~ Pre-kalerval;
/Ve tccr0b'de \ '11111000 \' ikili sayıda değer ile değer/şimdi uygun ön kodlama bitini ayarlayın: tccr2b | = Ön kodlama biti 2;
/Veya TCCR0B'de ikili sayıda \ '00000001 \'/ilk olarak önceden kodlanmış üç biti de temizle:}
/prgrom void loop () {
/time = milis () 'nin ana döngüsü;
Baskı programı başladıktan sonra. println (zaman); //Seri. print (\ '\');
Gaz kelebeği = analogread (0);
/Gaz kelebeği potansiyometresi msps = harita (
gaz kelebeği, 512,1023, 0,255); /Sürüş potansiyometre bspeed = harita (
potansiyometresi üst yarısına eşlenir ;
gaz, 0,511,255, 0)
/POT/MSP'lerin altındaki yarı bölüm rejeneratif frenleme ED = 100;
/Hata ayıklama için HallState1 = DigitalRead (2);
/Salon 1 2 = dijital okuma (3) 'den giriş değeri okuma;
/Salon 2 3 = dijital okuma (4) 'den giriş değeri okuma;
Salon 3'ten (8, HallState1) giriş değerini/sayısal yazmayı okuyun;
/Karşılık gelen sensör yüksek güçte olduğunda, LED
başlangıçta DigitalWrite (9, Hallstate2) hata ayıklamak için kullanılacaktır;
// digitalwrite (10, HallState3); Hallval = (HallState1)+ (2*HallState2)+ (4*HallState3);
/3 Hall sensörünün/* serisinin ikili değerlerini hesaplayın. baskı (\ 'h 1: \');
Seri bağlantı noktası hata ayıklama için. println (HallState1); Seri. baskı (\ 'h 2: \'); Seri. println (HallState2); Seri. baskı (\ 'h 3: \'); Seri. println (HallState3); Seri. println (\ '\');
*/// Seri. println (mspeed); //Seri. println (Hallval); //Seri. print (\ '\');
/Monitör transistör çıkışı/gecikmesi (1000);
/* T1 = digitalRead (2); // t1 = ~ t1;
T2 = dijital (4); // t2 = ~ t2;
T3 = dijital (5); // t3 = ~ t3; Seri. baskı (T1); Seri. baskı (\ '\ t \'); Seri. baskı (T2); Seri. baskı (\ '\ t \'); Seri. baskı (T3); Seri. print (\ '\'); Seri. print (\ '\'); Seri. baskı (digitalRead (3)); Seri. baskı (\ '\ t \'); Seri. baskı (digitalRead (9)); Seri. baskı (\ '\ t \'); Seri. println (digitalRead (10)); Seri. print (\ '\'); Seri. print (\ '\'); // gecikme (500);
*/Driving phase change/each binary number has a case corresponding to the different transistors turned on/bit math used to change the value of the output arduino: /PORTD contains the output of the IN pin on the L6234 driver/the output used to determine whether the upper transistor or the lower transistor/EN pin for each phase is controlled by the Arduino command analogy, set the duty cycle of PWM (
0 = OFF, 255 = ON or Potansiyometre ile kontrol edilen gaz kelebeği değeri). if (gaz kelebeği> 511) {Switch (Hallval) {
Case 3:/Portd = 1111xxx00;
/0-7 xxx piminin beklenen çıkışı
salon girişini ifade eder ve portd & = b00011111 değiştirilmemelidir;
Portd | = B01100000;
/Analowrite (9, mspeed);
Bir faz (
üst düzey transistör) analogwrite (10,0) üzerinde PWM;
Faz B kapatma (görev = 0) Analogwrite (11,255); // -duty =% 100 ( aşaması ;
düşük uçlu transistör) kırılma
Durum 1:/portd = b001xxx00;
/Pin 0-7 Portd
& = B00011111;
/Portd | = B00100000;
/Analowrite (9, mspeed);
Bir faz (
üst düzey transistör) analogwrite (10,255) üzerinde PWM; // Faz B (
düşük uçlu transistör) analogwrite (11,0); // Aşama B Kapalı (Duty = 0) Break;
Durum 5:/portd = b101xxx00;
/Pin 0-7 Portd
& = B00011111;
/Portd | = B10100000; analogwrite (9,0); Analogwrite (10,255); analogwrite (11, mspeed); kırmak;
Durum 4:/portd = b100xxx00;
/Pin 0-7 Portd
& = B00011111;
Portd | = BYM000;
/Analowrite (9,255); analogwrite (10,0); analogwrite (11, mspeed); kırmak;
Durum 6:/portd = b110xxx00;
/Pin 0-7 Portd
& = B00011111;
Portd B11. 000 =;
/Analowrite (9,255); analogwrite (10, mspeed); analogwrite (11,0); kırmak;
Durum 2:/portd = b010xxx00;
/Pin 0-7 Portd
& = B00011111;
B0201700 Portd | =;
/Analowrite (9,0); analogwrite (10, mspeed); Analogwrite (11,255); kırmak; }}
/Rejeneratif fren fazı değişimi /portd (
L6234 üzerindeki pim çıkışı)
pimler her zaman düşüktür, bu nedenle rejen sırasında her fazda sadece düşük transistörler kullanılır. frenleme. else {
/portd = b000xxx00;
/Pin 0-7 Portd
& = B00011111;
Portd | = BYM0000; // Switch (Hallval) {
Case 3: Analoji Yazma (9, BSPEED); // analogwrite (9,0); analogwrite (10,0); analogwrite (11,0); kırmak;
Durum 1: Analoji Yazımı (9, BSPEED); analogwrite (10,0); analogwrite (11,0); kırmak;
Durum 5: Analoji Yazımı (9,0); analogwrite (10,0); Analogwrite (11, BSPEED); kırmak;
Durum 4: Analoji Yazımı (9,0); analogwrite (10,0); Analogwrite (11, BSPEED); kırmak;
Durum 6: Analoji Yazımı (9,0); Analogwrite (10, BSPEED); analogwrite (11,0); kırmak;
Durum 2: Analoji Yazımı (9,0); Analogwrite (10, BSPEED); analogwrite (11,0); kırmak; }}
/Time = milis ();
Baskı programı başladıktan sonra. println (zaman); //Seri. print (\ '\'); //Seri. flush ();
/Bir seri bağlantı noktası kullanarak hata ayıklamak istiyorsanız, lütfen
Arduino'nun bu projede yaptığı operasyonun o kadar basit olduğunu düşünüyorum, bu görevi bir mikroişlemci ile yapmak bir atık gibi görünüyor.
Aslında, L6234 'nin uygulama notları,
bu işi yapmak için basit bir programlanabilir kapı dizisi (kafes yarı iletkenden yapılmış Gal16v8) önerir.
Bu cihazın programlanmasına aşina değilim, ancak IC'nin maliyeti sadece 2 $. 39 Newark'ta.
Diğer benzer entegre devreler de çok ucuzdur.
Başka bir seçenek, gizli mantık kapılarını bir araya getirmektir.
L6234 IC'yi üç salon sensörünün çıkışından sürebilecek nispeten basit mantık dizileri buldum.
Aşama A için grafik aşağıda gösterilmiştir ve üç aşamada da gerçek tablo (
B ve C aşamalarının mantık devresi için \ '' değil \ 'kapısı \' ya da
bu yaklaşımla ilgili sorun, her aşamada yaklaşık 20 bağlantı olmasıdır, bu yüzden bir araya getirmek için en iyi şekilde çalışır
.

Hoprio Group A profesyonel denetleyici ve motor üreticisi 2000 yılında kurulmuştur.

Hızlı Bağlantılar

Bize Ulaşın

Whatsapp: +86 18921090987 
Tel: +86-18921090987 
E -posta: sales02@hoprio.com
Ekle: No.19 Mahang South Road, Wujin Yüksek Teknoloji Bölgesi, Changzhou City, Jiangsu Eyaleti, Çin 213167
Mesaj bırakın
BİZE ULAŞIN
Telif Hakkı © 2024 Changzhou Hoprio E-Commerce Co., Ltd. Tüm hakları saklıdır. Yer haritası | Gizlilik Politikası