Jak sterować z procesora atmega32 silnikiem 12V przez mosfet ?


Chciałem zbudować sterownik silnika wentylatora samochodowego wykorzystując procesor atmega32. Oczywiście sterowanie sygnałem PWM. I tu moje pytanie:
czy mogę sterować mosfeta bezpośrednio z portu procesora dając rezystor ograniczający i ściągający do masy?




Portret użytkownika drowning_man

odp

http://rapidshare.com/files/196760896/Marcin_Wiazania_-_Programowanie_mikrokontrolerow_AVR_w_jezyku_Bascom.pdf

Odnośnie Twojego problemu polecam strony 253-256. Cała książa jest bardzo przydatna.

Portret użytkownika matrix

Re: Jak sterować z procesora atmega32 silnikiem 12V przez mosfe

Dziękuję kolego drowning_man. Uważnie przestudiuję.

Według książki Marcina W. sterowanie mosfetem wygląda tak:

ale mi się to nie bardzo podoba. Silnik samochodowego wentylatora to nie silniczek od zasilacza komputerowego. Pobiera znacznie więcej prądu.
I ta dioda w obwodzie silnika, nie wytrzyma wstecznego prądu indukowanego w silniku.

Portret użytkownika drowning_man

odp

Może coś w układzie darlingtona? Do tego mocniejszy mosfet itp.

Portret użytkownika matrix

Re: Jak sterować (...) ?

Może i coś by z tego było, ale mi raczej chodziło o bezpieczeństwo jakby nie było dość drogiej atmegi32. Czy sterowanie bezpośrednio z pinu procka nie zniszczy samego procesora?

Portret użytkownika drowning_man

odp

Nie testowałem nigdy takiego układu więc nie umiem odpowiedzieć na to pytanie. Rozwiązaniem jest użycie tańszego (np. attiny2313) procka do testów. Wg mnie nic nie powinno się stać. W sumie to mam kilka attiny 2313 więc może sam przetestuję podobny układ i będziemy mieli pewnośc czy wszystko będzie grało:-). Weekend zapowiada się luźniejszy więc może znajdę na to czas:-).

Portret użytkownika matrix

Re: Jak sterować (...) ?

Będę bardzo wdzięczny za testy bo niestety stoję bardzo źle z finansami a poza tym w domu nie mam attiny2313.

Portret użytkownika mirley

Re: Tranzystor

Zastosuj mosfet IRF1405, nawet się nie przygrzeje przy prądach nawet rzędu 10A, ewentualnie mały radiatorek... na pewno daj mosfet a nie tranzystor bipolarny, po co puszczać z procesora daremny prąd bazy a nagrzewanie bipolara będzie na pewnno wieksze. Diodę zabezpieczającą daj na 3A i powinno być dobrze

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Jak sterować (...) ?

Dzięki Mireczku.
Jeszcze jedno pytanie, czy stan wysoki rzędu 4.5 do 5V na procku w pełni otworzy mosfeta?
Bo gdzieś mi się obiło że może to nie wystarczyć.

Teoretycznie w nocie katalogowej napięcie Vgs wynosi min 2V a max 4V.

A gdybym tak zamiast IRF1405 dał IRF840 ? Ten drugi akurat mam a ten pierwszy musiałbym kupić. Chyba wentylator samochodowy nie ciągnie więcej niż 5A? Z tego co pamiętam jak mierzyłem prąd takiego wentylatora to zwykłym miernikiem AVD830BUZ. Ale nie pamiętam jaki pobierał prąd.

Portret użytkownika rafliczek22

Kolega napisał że to wiatrak

Kolega napisał że to wiatrak z samochodu więc mamy do dyspozycji 12V więc może kolega mógłby dać sterowanie mosfeta na dwóch tranzystorach bc517 i bc516 wtedy ograniczylibyśmy grzanie do minimum, nawet bc327 i bc337 by starczyły, aha czy naprawdę musi tam być aż ATMEGA 32 tożto tiny13 starczyłby, chyba że ma to mieć jeszcze inne funkcje.

Portret użytkownika matrix

Re: Jak sterować (...) ?

Poprosił bym o konkretny schemat tego sterowania na dwóch tranzystorach. Domyślam się, ale nie chcę się pomylić. Coś takiego?

Co do atmeg32 to będzie to potężny projekt dwóch atmeg komunikujących się po RS232 plus odczyt położenia pokręteł nadmuchu itp za pomocą ADC, plus lcd graficzny 192x64, plus (mam nadzieję) touch panel, plus sterowanie głośnością subwoofera, plus sterowanie radiem Sony po RC5 za pomocą wejścia REMOTE IN, plus termotronik. No "cuda na kiju".

Portret użytkownika rafliczek22

Sterowanie mosa prawie

Sterowanie mosa prawie dobrze, od biedy tak też może być ale byłoby jeszcze lepiej gdyby dorzucić przed bramkę T3 rezystor ok 1-2W i <40Ohm, nie napisałeś jakie dokładnie jakie tranzystorki ale jak zastosujesz małe BC556 to ten rezystor dałbym nawet 80Ohm żeby ich nie upalić.

P.s. Potraktuj tą odpowiedź jako wskazówkę zastosowanie BC517 i BC516, ogólnie to są drobinę mniej dostępne ale może akurat w "elektronicznym za rogiem" będą mieli jeśli nie to są u bujnowicza. Aha i jeszcze jedno ten R22 ja bym dał do plusa aby gdy nie będzie sygnały wysterowania mos był zamknięty, i jeszcze jedno jeśli zastosujesz BC517/516(albo jakiekolwiek inne darlingtony) to R22 daj tak ze 100kOhm, a R23 ok. 5-10kOhm, a jeśli zwykłe tranzystorki to R22 zostaw tak jak jest a R23 daj tak z przedziału 800-1200Ohm.

P.s.2 Gdzie będzie podpięty wiatrak, jeśli do X2 to nie rozumiem po co D9 i punkt GND koło niej, ah i myślę, że te 80V to tylko na schemacie jest :D

Portret użytkownika matrix

Re: Jak sterować (...) ?

Akurat rysunek jest poglądowy, ściągnięty z elektrody. Natomiast mam jeszcze jedno pytanko, czy zamiast mosfeta N mogę dać mosfet P ? Zauważyłem że w przełączniku intensywności nadmuchu sterowanie odbywa się z plusa a masa jest podpięta bezpośrednio, więc chyba lepiej będzie dać mosfet P ?

Jaki byście polecili mocny i tani mosfet P.
A i podobno żeby całkiem otworzyć mosfeta P trzeba podać ujemne napięcie względem masy? Dysponuję napięciem ujemnym z przetwornicy ICL7660. Jakiś prosty schemacik poglądowy ?

Portret użytkownika rafliczek22

Jest co najmniej bez sensu

Jest co najmniej bez sensu dawać tam P skoro N zadziała dokładnie tak samo, to że w przełączniku jest od plusa jest przypadkiem. Do tego N są tańsze, mocniejsze i łatwiej osiągalne.

CO do sterowania P to nie trzeba ujemnego, ba nawet masy nie trzeba, załóżmy że, tranzystor otwiera się przy napięciu -15V, załóżmy że na źródle mamy 30V, czyli wychodzi, że do poprawnego otwarcia mosa potrzebujemy 15V, mało tego gdybyśmy podali GND to tranzystor by się wyjarał bo napięcie otwarcia wynosiło by aż -30V, co innego gdybyśmy na źródle mieli np. 5V wtedy aby na bramce było -15V potrzebowalibyśmy -10V, oczywiście wszystko względem GND.

Ale oczywiście są rożne tranzystory, jedne się otwierają przy -5V a inne przy -20V.

Portret użytkownika matrix

Re: Jak sterować (...) ?

No tak tylko ja mam dostępne 12 a w maxie 14.4V w samochodzie. Instalacja nadmuchu w moim samochodzie zbudowana jest jak na poniższym obrazku poglądowym i nie mam dostępu do masy, więc muszę sterować od plusa.

Portret użytkownika drowning_man

odp

Od samego początku myślałem, ze chodzi Ci o wentylator samochodowy ale ten z chłodnicy:-)... Teraz jak już wiem, że chodzi o wentylator od nadmuchu to jestem przekonany, że ten układ z książki Marcina Wiązania w zupełności wystarczy. Zrób tak jak Mirley powyżej pisał i będzie ok.

Niestety nie miałem czasu (praca) na przetestowanie tego układu tak jak pisałem wcześniej.

Portret użytkownika matrix

Re: Jak sterować (...) ?

No tak, tylko jak wtedy podpiąć wentylator? Skoro nie mam dostępnej masy a tylko sterowanie od plusa.

Portret użytkownika rafliczek22

Zamiast T3 daj P mosfet.

Zamiast T3 daj P mosfet.

Portret użytkownika matrix

Re: Jak sterować (...) ?

raficzek wrote:
Zamiast T3 daj P mosfet.

I wówczas do źródła trzeba podpiąć +12V a na dren rzucić silnik z równoległą diodą zabezpieczającą? Sterowanie potrzebne do otwarcia mosfeta wtedy będzie od masy?

Sorki za głupie pytania, ale nie mogę rozkminić mosfetów. Zwykłe bipolarne wiem jak się steruje jako załącz/wyłącz a tu jakoś nie mogę zczaić. Muszę poczytać Tranzystory dla początkujących.

Portret użytkownika rafliczek22

Tak, tylko wtedy przed ten

Tak, tylko wtedy przed ten układ (tam gdzie pisze sygnał z L297) dodać jeszcze jedne malutki npn z podciągnięciem do 15V, jeśli nie zastosujesz tego układu to ten npn i tak trzeba

Co do sugestii kolegi drowning_man, to tak nie trzeba tego układu ale kolega zapewne, nie będzie robił 1000 takich układów i w tym wypadku te 50gr. za 2 tranzystory dużo w cenie nie zmienią, a układ będzie zrobiony pewniej. Decyzja zależy tylko od kolegi matrixa.

Aha, od biedy da radę tam dać N ale trzeba go "odwrócić" o 180 stopni, tzn źródło tam gdzie dren, a dren tam gdzie źródło, ale teraz jeszcze raz się dobrze wpatrzyłem i ten npn i tak trzeba dać razem z tym układem z elki nawet przy N-mosie.

Portret użytkownika matrix

Re: Jak sterować (...) ?

Czyli jak miałaby wyglądać końcowa wersja bo już nie bardzo mogę się połapać.

Portret użytkownika rafliczek22

Tam gdzie pisze: sygnał z

Tam gdzie pisze: sygnał z L297, dodaj mały tranzystorek npn, jego baza przez rez. ok.1-2kOhm do procka, emiter prosto do masy, a kolektor bez rezystora do punktu z L297(na schemacie z elki, jest tam już rezystor r23), r23 jak zastosujesz (jako t1 i t2) darlingtony to r23 zmieniasz na ok. 5kOhm, a r22 na 100kOhm, jeśli zwykłe to r22 zostawiasz a r23 ok. 1kOhm, r23 dajesz do plusa w każdym wypadku.

Równie dobrze, za miast tego małego npn możesz dać transoptor, wtedy będzie odrazu izolacja, zależy od ciebie, tak będzie dobrze, i tak też będzie dobrze.

Portret użytkownika matrix

Re: Jak sterować (...) ?

Czyli dobrze podejrzewałem że tak?:

Tranzystory chcę dać z serii BD136..140 a nie darlingtony.
Aha, proszę nie patrzeć na ten układ tu od strony lewej czyli przycisk itd, to zastosowałem tylko do testów w programie Yenka.


Portret użytkownika rafliczek22

Do baz daj rez. 500-800Ohm bo

Do baz daj rez. 500-800Ohm bo je usmaży a ten koło mosa daj ~50Ohm, pozatym dobrze.

Portret użytkownika matrix

Re: Jak sterować (...) ?

To ja jeszcze dopytam. Z jakiego wzoru skorzystać chcąc obliczyć kondensator filtrujący na wyjściu mosfeta ? Bo jak dam sam goły PWM to silnik troszkę "piszczy".
Konfiguracja timera wygląda tak:

Config Timer0 = Timer , Prescale = 8
timer0 = 16

Jak podłączyłem wentylatorek komputerowy i kondensator 100uF to piszczenia nie było, ale wnioskuję że te 100uF dla wentylatora nadmuchu kabiny, który pobiera kilka amper, będzie za mało.

Portret użytkownika rafliczek22

Tutaj trzeba by było diode i

Tutaj trzeba by było diode i za nią filtr LC ale ja ci tu zabardzo nie pomogę, może daj jakąś mniejszą cewke z atx i do tego kondzior 1mF, a zaraz za mosfeta diode w kierunku przewodzenia.

Co do piszczenia, silnik od tego się nie uszkodzi a jeśli jest to uciążliwe dla ucha to zwiększ pwm, i tak masz sprzętowy więc jak go na 20-25kHz popchasz łyknie bez problemu a ty nic nie usłyszysz.

P.s. Może na początek doczytaj jak w basicu ustawia się timer w tryb pwm, albo notka w dłoń i wpisz do paru rejestrów dane, będzie jescze pewniej.

Portret użytkownika matrix

Re: Jak sterować (...) ?

Wolę korzystać z programowego PWM, bo raz że jeden timer do kilku rzeczy mi służy, a dwa, lepiej mam z cyferkami, czyli dana cyfra/liczba PWM dokładnie reprezentuje mi to co chcę mieć.

Co do popsucia silnika to wiem że nic mu nie będzie, tylko piszczy od sterowania PWM'em.

Portret użytkownika rafliczek22

Timer który generuje pwm

Timer który generuje pwm dalej może służyć do generowania przerwań, a co do "lepiej mam z cyferkami", to sorry ale z takim podejściem daleko nie zajdziesz, aha w tym programowym ile masz poziomów 10 czy może 100, jeśli dasz mniejszą f to silnik nie będzie tak piszczał i szybciej się rozpędzi(znaczy na małym pwmie).

P.s. Pisałeś że w tym programie będzie sporo tego więc nie wiem czy ten programowy pwm da radę.
P.s.2 Jeśli nie umiesz z cyferkmi to: %pwm=pwm.dorejestru*100/MAKSYMALNAWARTOŚCPWM, czyli po przekształceniu pwm.dorejestru=%pwm*maksymalnawartoscpwm/100, oczywiście w tym wypadku masz 100 poziomów, jeśli zamiast 100 dasz 10 to masz 10 poziomów pwm, ooo i już masz cyferkami :D:D.
P.s.3 Jeśli naprawdę chcesz z tymi cewkami to weź dużo nawinięta cewką aby indukcyjność była duża i tak podłącz: dren->diodawkierunkuprzwodzenia->cewka->kondzior jedną noga do masy a jedną za cewkę->silnik. Na pewno będzie mniej piszczeć ale czy do końca to nie wiem bo nie znam tych wzorów.

Portret użytkownika matrix

Re: Jak sterować (...) ?

To nie jest tak że nie umiem wykorzystać hardware'owego PWM'a, bo już się z nim bawiłem. Problem lub raczej brak problemu polega na tym, że z programowym jest łatwiej bo jest skala od 0 do 100 i nie muszę się z tym bawić. A i tu i tu wykorzystywany jest timer, więc różnica (jak dla mnie) polega tylko na rozdziałce PWM'a.

Minusem (jak dla mnie) sprzętowego PWM'a jest to że generuje on swój sygnał na konkretnych końcówkach a mi to nie leży. Potrzebne mi są inne końcówki do sygnału PWM.

Może się zmuszę i zobaczę jak to będzie na sprzętowym.