İçindekiler:

Dijital USB C Powered Bluetooth Güç Kaynağı: 8 Adım (Resimlerle)
Dijital USB C Powered Bluetooth Güç Kaynağı: 8 Adım (Resimlerle)

Video: Dijital USB C Powered Bluetooth Güç Kaynağı: 8 Adım (Resimlerle)

Video: Dijital USB C Powered Bluetooth Güç Kaynağı: 8 Adım (Resimlerle)
Video: USB Type C ile Şarj Olayı Bitmiştir 2024, Temmuz
Anonim
Dijital USB C Powered Bluetooth Güç Kaynağı
Dijital USB C Powered Bluetooth Güç Kaynağı
Dijital USB C Powered Bluetooth Güç Kaynağı
Dijital USB C Powered Bluetooth Güç Kaynağı
Dijital USB C Powered Bluetooth Güç Kaynağı
Dijital USB C Powered Bluetooth Güç Kaynağı
Dijital USB C Powered Bluetooth Güç Kaynağı
Dijital USB C Powered Bluetooth Güç Kaynağı

Hiç yakınınızda bir priz olmasa bile hareket halindeyken kullanabileceğiniz bir güç kaynağı istediniz mi? Ayrıca çok hassas, dijital ve PC ve telefonunuz üzerinden kontrol edilebilir olsaydı harika olmaz mıydı?

Bu talimatta size tam olarak bunu nasıl oluşturacağınızı göstereceğim: USB C üzerinden beslenen bir dijital güç kaynağı. Arduino uyumludur ve USB üzerinden PC veya Bluetooth üzerinden telefonunuz üzerinden kontrol edilebilir.

Bu proje, pille çalışan, ekranı ve düğmeleri olan önceki güç kaynağımın bir evrimidir. Buradan kontrol edin! Ancak, daha küçük olmak istedim, bu yüzden bunu yaptım!

Güç kaynağına bir USB C pil bankasından veya telefon şarj cihazından güç sağlanabilir. Bu, çoğu düşük güç elektroniğine güç sağlamak için yeterli olan 15W'a kadar güce izin verir! Bu kadar küçük bir cihazda iyi bir kullanıcı arayüzüne sahip olmak için Bluetooth ve kontroller için bir Android uygulaması ekledim. Bu, bu güç kaynağını ultra taşınabilir hale getiriyor!

Tüm tasarım sürecini göstereceğim ve tüm proje dosyaları GitHub sayfamda bulunabilir:

Başlayalım!

Adım 1: Özellikler ve Maliyet

Özellikler ve Maliyet
Özellikler ve Maliyet

Özellikleri

  • USB C ile çalışır
  • Bluetooth üzerinden Android uygulamasıyla kontrol edilir
  • USB C üzerinden Java ile kontrol edilir
  • Sabit voltaj ve sabit akım modları
  • Güç kaybını en aza indirgemek için öncesinde bir izleme ön düzenleyicisinin bulunduğu düşük gürültülü bir doğrusal düzenleyici kullanır
  • Arduino IDE ile programlanmış ATMEGA32U4 ile güçlendirilmiştir
  • Taşınabilir hale getirmek için bir USB C pil bankası ile çalıştırılabilir
  • USB C ve Apple şarj cihazı algılama
  • BNC adaptörleriyle uyumluluk için 18 mm aralıklı banana fişler

Özellikler

  • 0 - 1A, 1 mA'lık adımlar (10 bit DAC)
  • 0 - 25V, 25 mV'lik adımlar (10 bit DAC) (gerçek 0V işlemi)
  • Voltaj ölçümü: 25 mV çözünürlük (10 bit ADC)
  • Akım ölçümü:< 40mA: 10uA çözünürlük (ina219)< 80mA: 20uA çözünürlük (ina219)< 160mA: 40uA çözünürlük (ina219)< 320mA: 80uA çözünürlük (ina219)> 320mA: 1mA çözünürlük (10 bit ADC)

Maliyet

Tüm güç kaynağı, tüm tek seferlik bileşenlerle birlikte bana yaklaşık 100 dolara mal oldu. Bu pahalı görünse de, çok daha düşük performansa ve özelliklere sahip güç kaynakları genellikle bundan daha pahalıya mal olur. Bileşenlerinizi ebay'den veya aliexpress'ten sipariş etmeyi sorun etmezseniz, fiyat yaklaşık 70 dolara düşecektir. Parçaların gelmesi daha uzun sürüyor, ancak bu uygun bir seçenek.

Adım 2: Şematik ve Çalışma Teorisi

Şematik ve Çalışma Teorisi
Şematik ve Çalışma Teorisi

Devrenin çalışmasını anlamak için şemaya bakmamız gerekecek. Daha kolay anlaşılması için fonksiyonel bloklara ayırdım; İşlemi de bu şekilde adım adım anlatacağım. Bu kısım oldukça derin ve iyi bir elektronik bilgisi gerektiriyor. Sadece devreyi nasıl kuracağınızı bilmek istiyorsanız, bir sonraki adıma geçebilirsiniz.

Ana blok

İşlem, LT3080 çipine dayanmaktadır: bu, bir kontrol sinyaline bağlı olarak voltajları azaltabilen doğrusal bir voltaj regülatörüdür. Bu kontrol sinyali bir mikrodenetleyici tarafından üretilecektir; Bunun nasıl yapıldığı daha sonra ayrıntılı olarak açıklanacaktır.

Voltaj ayarı

LT3080'in etrafındaki devre, uygun kontrol sinyallerini üretir. İlk olarak, voltajın nasıl ayarlandığına bir göz atacağız. Mikrodenetleyiciden gelen voltaj ayarı, bir alçak geçiren filtre (C23 & R32) tarafından filtrelenen bir PWM sinyalidir (PWM_Vset). Bu, istenen çıkış voltajıyla orantılı olarak - 0 ile 5 V arasında - bir analog voltaj üretir. Çıkış aralığımız 0 - 25 V olduğundan, bu sinyali 5 faktörle yükseltmemiz gerekecek. Bu, U7C'nin ters çevirmeyen opamp konfigürasyonu ile yapılır. Ayarlanan pinin kazancı R31 ve R36 tarafından belirlenir. Bu dirençler, hataları en aza indirmek için %0,1 toleranslıdır. R39 ve R41, geri besleme döngüsünün bir parçası oldukları için burada önemli değil.

Şimdiki ayar

Bu ayar pimi, ikinci ayar için de kullanılabilir: mevcut mod. Akım çekişini ölçmek ve istenen akımı aştığında çıkışı kapatmak istiyoruz. Bu nedenle, mikrodenetleyici tarafından üretilen, şimdi düşük geçişli filtrelenmiş ve 0 - 5 V aralığından 0 - 2,5 V aralığına gitmek için zayıflatılmış bir PWM sinyali (PWM_Iset) ile yeniden başlıyoruz. Bu voltaj şimdi, opamp U1B'nin karşılaştırıcı konfigürasyonu tarafından akım algılama direnci (ADC_Iout, aşağıya bakınız) boyunca voltaj düşüşü ile karşılaştırılır. Akım çok yüksekse, bu bir led yanar ve ayrıca LT3080'in ayarlanan hattını (Q1 aracılığıyla) toprağa çeker ve böylece çıkışı kapatır. Akımın ölçümü ve ADC_Iout sinyalinin üretimi aşağıdaki gibi yapılır. Çıkış akımı, direnç R22 üzerinden akar. Akım bu dirençten geçtiğinde, ölçebileceğimiz bir voltaj düşüşü oluşturur ve üzerindeki voltaj düşüşünün çıkış voltajını etkilememesi gerektiğinden LT3080'in önüne yerleştirilir. Voltaj düşüşü, 5 kazançlı bir diferansiyel amplifikatör (U7B) ile ölçülür. Bu, 0 - 2,5 V'luk bir voltaj aralığı ile sonuçlanır (bundan sonra daha fazlası), dolayısıyla akımın PWM sinyalindeki voltaj bölücü. Tampon (U7A), R27, R34 ve R35 dirençlerine akan akımın, okumasını etkileyecek olan akım algılama direncinden geçmediğinden emin olmak için oradadır. Ayrıca bunun bir raydan raya opamp olması gerektiğine dikkat edin, çünkü pozitif girişteki giriş voltajı besleme voltajına eşittir. Ters çevirmeyen amplifikatör yalnızca rota ölçümü içindir, ancak çok hassas ölçümler için gemide INA219 çipimiz bulunmaktadır. Bu çip çok küçük akımları ölçmemizi sağlar ve I2C üzerinden adreslenir.

Ek şeyler

LT3080'in çıkışında biraz daha malzememiz var. Her şeyden önce, bir akım alıcısı (LM334) var. Bu, LT3080'i stabilize etmek için 677 uA (direnç R46 tarafından ayarlanır) sabit bir akım çeker. Bununla birlikte, toprağa değil, bir negatif voltaj olan VEE'ye bağlıdır. Bu, LT3080'in 0 V'a kadar çalışabilmesi için gereklidir. Toprağa bağlandığında, en düşük voltaj yaklaşık 0,7 V olacaktır. Bu, yeterince düşük görünebilir, ancak bunun güç kaynağını tamamen kapatmamızı engellediğini unutmayın. Ne yazık ki, bu devre LT3080'in çıkışındadır, bu da akımının ölçmek istediğimiz çıkış akımına katkıda bulunacağı anlamına gelir. Neyse ki, bu akım için kalibre edebilmemiz için sabittir. Zener diyot D7, çıkış voltajını 25 V'un üzerine çıkarsa kelepçelemek için kullanılır ve direnç bölücü, çıkış voltajı aralığını 0 - 25 V ila 0 - 2,5 V (ADC_Vout) arasında düşürür. Tampon (U7D), dirençlerin çıkıştan akım çekmemesini sağlar.

Şarj pompası

Daha önce bahsettiğimiz negatif voltaj, merak uyandıran küçük bir devre tarafından üretilir: şarj pompası. Mikrodenetleyicinin (PWM) %50 PWM'si ile beslenir.

Yükseltici dönüştürücü

Şimdi ana bloğumuzun giriş voltajına bir göz atalım: VCC. 5 - 27V olduğunu görüyoruz ama bekleyin, USB maksimum 5 V veriyor? Gerçekten de, bu yüzden, sözde yükseltici dönüştürücü ile voltajı artırmamız gerekiyor. İstediğimiz çıktı ne olursa olsun, voltajı her zaman 27 V'a yükseltebiliriz; ancak bu, LT3080'de çok fazla güç israfına neden olur ve işler kızışacak! Bunu yapmak yerine voltajı çıkış voltajından biraz daha fazla artıracağız. Akım algılama direncindeki voltaj düşüşünü ve LT3080'in bırakma voltajını hesaba katmak için yaklaşık 2,5 V daha yüksek uygundur. Voltaj, yükseltici dönüştürücünün çıkış sinyali üzerindeki dirençler tarafından ayarlanır. Bu voltajı anında değiştirmek için, SPI aracılığıyla kontrol edilen MCP41010 adlı bir dijital potansiyometre kullanıyoruz.

USB C

Bu bizi gerçek giriş voltajına götürür: USB bağlantı noktası! USB C kullanmanın nedeni (tam olarak USB 3.1 tipi, USB C sadece konektör tipidir), 5V'ta 3A akıma izin vermesidir, bu zaten oldukça fazla bir güçtür. Ancak bir sorun var, bu akımı çekmek için cihazın uyumlu olması ve ana cihazla 'pazarlık yapması' gerekiyor. Pratikte bu, iki adet 5.1k aşağı çekme direncinin (R12 ve R13) CC1 ve CC2 hattına bağlanmasıyla yapılır. USB 2 uyumluluğu için belgeler daha az nettir. Kısacası: Host sağladığı sürece istediğiniz akımı çekersiniz. Bu, USB veri yolu voltajı izlenerek kontrol edilebilir: voltaj 4.25V'nin altına düşerse cihaz çok fazla akım çeker. Bu, karşılaştırıcı U1A tarafından algılanır ve çıkışı devre dışı bırakır. Ayrıca maksimum akımı ayarlamak için mikrodenetleyiciye bir sinyal gönderir. Bonus olarak, apple ve samsung şarj cihazlarının şarj cihazı kimliğinin algılanmasını desteklemek için dirençler eklendi.

5V regülatör

Arduino'nun 5 V besleme voltajı normalde doğrudan USB'den gelir. Ancak USB voltajı, USB özelliğine göre 4,5 ile 5,5 V arasında değişebildiğinden, bu yeterince kesin değildir. Bu nedenle, daha düşük ve daha yüksek voltajlardan 5V üretebilen 5V'luk bir regülatör kullanılır. Yine de, bu voltaj çok kesin değildir, ancak bu, PWM sinyalinin görev döngüsünün buna göre ayarlandığı bir kalibrasyon adımı ile çözülür. Bu voltaj, R42 ve R43 tarafından oluşturulan voltaj bölücü ile ölçülür. Ancak artık ücretsiz girişim olmadığı için, bir pin pull çift görev yapmak zorunda kaldım. Güç kaynağı önyüklendiğinde, bu pin ilk önce bir giriş olarak ayarlanır: besleme rayını ölçer ve kendini kalibre eder. Daha sonra, bir çıkış olarak ayarlanır ve potansiyometrenin çip seçme hattını çalıştırabilir.

2.56 V voltaj referansı

Bu küçük çip, çok hassas bir 2,56 V voltaj referansı sağlar. Bu, ADC_Vout, ADC_Iout, ADC_Vbatt analog sinyalleri için bir referans olarak kullanılır. Bu yüzden bu sinyalleri 2,5 V'a düşürmek için voltaj bölücülere ihtiyacımız vardı.

FTDI

Bu güç kaynağının son kısmı, zalim, dış dünya ile bağlantıdır. Bunun için seri sinyalleri USB sinyallerine dönüştürmemiz gerekiyor. Neyse ki, bu ATMEGA32U4 tarafından yapılıyor, bu Arduino Micro'da kullanılan çipin aynısı.

Bluetooth

Bluetooth kısmı çok basittir: kullanıma hazır bir Bluetooth modülü eklenir ve bizim için her şeyi halleder. Mantık seviyesi 3.3V (mikrodenetleyici için VS 5V) olduğundan, sinyali seviye kaydırmak için bir voltaj bölücü kullanılır.

Ve hepsi bu kadar!

Adım 3: PCB ve Elektronik

PCB ve Elektronik
PCB ve Elektronik
PCB ve Elektronik
PCB ve Elektronik
PCB ve Elektronik
PCB ve Elektronik

Artık devrenin nasıl çalıştığını anladığımıza göre, onu oluşturmaya başlayabiliriz! PCB'yi en sevdiğiniz üreticiden çevrimiçi olarak sipariş edebilirsiniz (benim maliyetim yaklaşık 10 $), gerber dosyaları malzeme listesiyle birlikte GitHub'ımda bulunabilir. PCB'nin montajı, temel olarak, serigrafiye ve malzeme listesine göre bileşenlerin yerinde lehimlenmesi meselesidir.

Önceki güç kaynağımda yalnızca açık delikler bulunurken, yenisinin boyut kısıtlaması bunu imkansız kıldı. Çoğu bileşenin lehimlenmesi hala nispeten kolaydır, bu yüzden korkmayın. Örnek olarak: Daha önce hiç lehim yapmamış bir arkadaşım bu cihazı doldurmayı başardı!

Bileşenleri önce ön tarafta, sonra arka tarafta yapmak ve gerilmiş delik bileşenleri ile bitirmek en kolayıdır. Bunu yaparken PCB en zor bileşenleri lehimlerken sallanmayacaktır. Lehimlenecek son bileşen Bluetooth modülüdür.

Bir sonraki adımda monte edeceğimiz 2 banana jack hariç tüm bileşenler lehimlenebilir!

Adım 4: Kasa ve Montaj

Kasa ve Montaj
Kasa ve Montaj
Kasa ve Montaj
Kasa ve Montaj
Kasa ve Montaj
Kasa ve Montaj

Yapılan pcb ile kasaya geçebiliriz. PCB'yi özel olarak alüminyum 20x50x80mm kasa etrafında tasarladım (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), bu nedenle başka bir kasa kullanılması önerilmez. Ancak, aynı boyutlara sahip bir kasayı her zaman 3B yazdırabilirsiniz.

İlk adım, son paneli hazırlamaktır. Muz jakları için bazı delikler açmamız gerekecek. Bunu elle yaptım, ancak bir CNC'ye erişiminiz varsa bu daha doğru bir seçenek olacaktır. Muz jaklarını bu deliklere yerleştirin ve PCB'ye lehimleyin.

Şimdi birkaç ipek ped eklemek ve bunları küçük bir damla süper yapıştırıcı ile yerinde tutmak iyi bir fikirdir. Bunlar, LT3080 ve LT1370 ile kasa arasında ısı transferine izin verecektir. Onları unutma!

Artık sadece vidalanan ön panele odaklanabiliriz. Her iki panel de yerindeyken artık montajı kasaya yerleştirebilir ve hepsini kapatabiliriz. Bu noktada donanım tamamlandı, şimdi geriye kalan tek şey yazılımla ona biraz hayat vermek!

Adım 5: Arduino Kodu

Arduino Kodu
Arduino Kodu

Bu projenin beyni Arduino IDE ile programlayacağımız ATMEGA32U4'tür. Bu bölümde kodun temel işleyişinden geçeceğim, detaylar kodun içinde yorum olarak bulunabilir.

Kod temel olarak şu adımlar arasında dolaşır:

  1. Uygulamaya veri gönder
  2. Uygulamadan veri oku
  3. Voltajı ölçün
  4. Akımı ölçün
  5. Anket düğmesi

USB aşırı akımı, mümkün olduğunca duyarlı olması için bir kesme servis rutini tarafından işlenir.

Çip USB üzerinden programlanmadan önce önyükleyici yakılmalıdır. Bu, bir ISP programcısı aracılığıyla ISP/ICSP bağlantı noktası (3x2 erkek başlıklar) aracılığıyla yapılır. Seçenekler AVRISPMK2, USBTINY ISP veya ISP olarak bir arduino'dur. Kartın güç aldığından emin olun ve 'bootloader yak' düğmesine basın.

Kod artık USB C bağlantı noktası üzerinden panoya yüklenebilir (çipte bir önyükleyici bulunduğundan). Board: Arduino Mikro Programcı: AVR ISP / AVRISP MKII Şimdi Arduino ve PC arasındaki etkileşime bir göz atabiliriz.

6. Adım: Android Uygulaması

Android uygulaması
Android uygulaması

Artık tamamen işlevsel bir güç kaynağımız var, ancak henüz kontrol etmenin bir yolu yok. Çok sinir bozucu. Bu yüzden güç kaynağını Bluetooth üzerinden kontrol etmek için bir Android uygulaması yapacağız.

Uygulama MIT uygulama mucit programı ile yapılmıştır. Projeyi klonlamak ve değiştirmek için tüm dosyalar dahil edilebilir. Öncelikle MIT AI2 yardımcı uygulamasını telefonunuza indirin. Ardından, AI web sitesinde.aia dosyasını içe aktarın. Bu aynı zamanda "Yap>Uygulama (.apk için QR kodu sağlayın)" seçeneğini seçerek uygulamayı kendi telefonunuza indirmenize de olanak tanır.

Uygulamayı kullanmak için listeden bir Bluetooth cihazı seçin: HC-05 modülü olarak görünecektir. Bağlandığında, tüm ayarlar değiştirilebilir ve güç kaynağının çıkışı okunabilir.

7. Adım: Java Kodu

Java Kodu
Java Kodu

Verileri kaydetmek ve güç kaynağını PC üzerinden kontrol etmek için bir java uygulaması yaptım. Bu, kartı bir GUI aracılığıyla kolayca kontrol etmemizi sağlar. Arduino kodunda olduğu gibi, tüm ayrıntılara girmeyeceğim, ancak genel bir bakış vereceğim.

Düğmeler, metin alanları vb. ile bir pencere yaparak başlıyoruz; temel GUI öğeleri.

Şimdi eğlenceli kısım geliyor: jSerialComm kitaplığını kullandığım USB bağlantı noktalarını eklemek. Bir bağlantı noktası seçildiğinde, Java gelen verileri dinleyecektir. Ayrıca cihaza veri gönderebiliriz.

Ayrıca, gelen tüm veriler daha sonra veri işleme için bir csv dosyasına kaydedilir.

.jar dosyasını çalıştırırken öncelikle açılır menüden doğru portu seçmeliyiz. Bağlandıktan sonra veriler gelmeye başlayacak ve ayarlarımızı güç kaynağına gönderebiliriz.

Program oldukça basit olsa da, bir PC üzerinden kontrol etmek ve verilerini günlüğe kaydetmek çok faydalı olabilir.

Adım 8:

resim
resim
resim
resim
resim
resim

Tüm bu çalışmalardan sonra artık tamamen işlevsel bir güç kaynağımız var!

Artık diğer harika projeler üzerinde çalışırken kullanışlı olacak kendi ev yapımı güç kaynağımızın keyfini çıkarabiliriz! Ve en önemlisi: yol boyunca birçok şey öğrendik.

Bu projeyi beğendiyseniz, lütfen cep boyutunda ve mikrodenetleyici yarışmasında bana oy verin, gerçekten minnettar olurum!

Önerilen: