Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Atmega8][Bascom] - Termometr + dioda/wentylator LCD

drakoo320 29 Jan 2014 12:37 4833 37
Altium Designer Computer Controls
  • #1
    drakoo320
    Level 12  
    Witam,
    Mam taki kod programu do obsługi ds18b20:

    Code: basic4gl
    Log in, to see the code


    Chciałbym jeszcze podpiąć wentylator (5V) który będzie się włączał powyżej 25C...
    Dopisałem do kodu:

    Code: basic4gl
    Log in, to see the code


    I podpiąłem wentylator jednak nie ruszył... więc w ramach testu podpiąłem diode led, przy t1>=0 dioda się pali ale bardzo slabo w ogole jej nie widać zmierzyłem napięcie wyszlo niecałe 1.7V. Przynajmniej wiem dlaczego nie działa mi wentylator...
    Myslałem że jeśli dziele temp. uzyskaną z termometru / 16 to uzyskuje już ją w stopniach np. 23C jednak gdy ustale t1=>23 to dioda się w ogole nie zapala mimo iz temp. jest wieksza niz 23 C

    W czym problem? Dlaczego atmega mi tak zaniża napięcie? googlowalem rozne uklady i wszyscy maja podpieta diode przez rezystor z GND do portu w atmedze. [/code]
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
  • Altium Designer Computer Controls
  • #3
    drakoo320
    Level 12  
    Właśnie znalazłem błąd brakowało mi:

    Config Pinc.5 = Output

    Bez tego coś przebijało ale nie tak jak powinno teraz jest okej :)

    Ale jeśli już temat jest założony w jaki sposób sterować obrotami wentylatora?
    Im większa temp. wieksze obroty wentylatora?
  • #5
    drakoo320
    Level 12  
    drakoo320 wrote:
    Właśnie znalazłem błąd brakowało mi:

    Config Pinc.5 = Output

    Bez tego coś przebijało ale nie tak jak powinno teraz jest okej :)

    Ale jeśli już temat jest założony w jaki sposób sterować obrotami wentylatora?
    Im większa temp. wieksze obroty wentylatora?


    edit:

    A jednak... diody migają ładnie, >23C zielona (powinien sie wlaczyc wentylator) <23 czerwona jednak wentylator nie chce dzialac ;/ Po podłączeniu go bezposrednio + - do płytki działa, pod atmegą już nie.

    Dodano po 26 [sekundy]:

    Nie mam jeszcze gotowego schematu ;p

    Wentylator posiadam 5V (komputerowy). Jest podpięty pod Portc.5 i jak wyzej ifem zmieniam PORTC.5 = 1 powyzej danej temp. jednak wentylator się nie włącza... Przy podłączeniu wentylatora korzysta się z rezystorow?
  • Helpful post
    #6
    BlueDraco
    MCUs specialist
    Litości... Port ma wydajność prądową do 20 mA. Wszelkie odbiorniki potrzebujące większego natężenia prądu muszą być podłączane przez jakieś wzmacniacze, np. tranzystor MOS.

    Takie są skutki niepokazywania schematu. ;)
  • #7
    dondu
    Moderator on vacation ...
    No widzisz, gdybyś opracował schemat nawet na kartce papieru i załączył zdjęcie, to moglibyśmy pomóc, a tak w ciemno doradzać jest trudno tym bardziej, że z opisu sądzę, że kompletnie nie wiesz co robisz.

    Zrób chociaż zdjęcia tego układu i pokaż nam.
  • Altium Designer Computer Controls
  • Helpful post
    #9
    dondu
    Moderator on vacation ...
    Rozumiem, że te dwa przewody w lewym górnym rogu to wentylator?
    Czy masz multimetr? Jeśli tak to podłącz wentylator do 5V pomijając ATmegę i zmierz prąd jaki przez niego płynie.
    Następnie przeczytaj artykuły: http://mikrokontrolery.blogspot.com/2011/03/datasheet-mikrokontroler-prady-pinow.html
  • #10
    drakoo320
    Level 12  
    Ok, dzieki za odpowiedź, tak dwa górne (zielony i niebieski) to wentylator.
    Jak dobrze myśle to 0,21A


    W artykule jest napisane jaki jest max pobor na dany pin, ale nie widzę gdzie jest napisane jak rozwiązać moj ten problem.
  • #12
    drakoo320
    Level 12  
    Nie mam zadnych musze kupić. Można prosić o jakiś link + schemat jak to podlaczyć?

    A nie jednak mam BD137 << ale w jakie sposób to podłączyc?
  • #14
    drakoo320
    Level 12  
    Po co dioda? Bez przekaźnika się nie da?
  • #15
    dondu
    Moderator on vacation ...
    Albo w ogóle nie czytasz, albo czytasz po łebkach artykuły spiesząc się i dlatego nie rozumiesz, co masz zrobić. Nie spiesz się czytaj dokładnie i wyciągaj wnioski.
    Elektronika wymaga cierpliwości i nie lubi pośpiechu.

    Podałem Ci link do tematu na forum, w którym w pierwszym poście jest schemat podłączenia wentylatora.
    Do tego schematu masz dodać diodę, a nie przekaźnik.
  • #16
    drakoo320
    Level 12  
    Rozumie, ale czy ta dioda jest konieczna? ja mam podpiętą diodę pod inny pin w procesorze i działa... Znalazłem tranzystor bc211 podłączyłem go tak jak na układzie i przez rezystor 10k al dalej nie rusza wentylator.

    zmieżyłem sobie napiecie i gdy jest <23 C swieci mi sie dioda czerwona i na wyjsciach z tranzystora jest 0V natomiast powyzej 23C bez podlaczonego wentylatora na jest 5V ale gdy tylko podepne wentylator spada do 3V i nie umie ruszyc, gdy jeden przewod wypne z wentylatora znowu wraca na 5V
  • Helpful post
    #17
    kulamario
    Level 22  
    Witam
    Kolega dondu ma racje dioda i tranzystor jest potrzebny ale jeśli chcesz na szybko sprawdzić kod czy działa zamiast wentylatora podłącz LED i w ten sposób sprawdzisz czy kod jest poprawnie napisany bo jak dla mnie raczej nie
    Sprawdź ten kod zmień sobie Porty w LCD i 1Wire oraz Wentylator czyli LED w programie.
    Code:
    $regfile = "m8def.dat"
    
    $crystal = 8000000
    $hwstack = 32
    $swstack = 32
    $framesize = 32






    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0



    Cls

    Config 1wire = Portd.7
    Config Pinb.6 = Output
    Led Alias Portb.6
    Led = 1
    Dim Odczyt(2) As Byte
    Dim Db(2) As Byte
    Dim T As Integer
    Dim Ulamek As Integer
    Dim A As Byte
    A = 0
    Cls


     Do
     1wreset
     1wwrite &HCC
     1wwrite &H44
     Waitms 750

     1wreset

    1wwrite &HCC
    1wwrite &HBE

     Db(1) = 1wread(2)
     T = Makeint(db(1) , Db(2))
     T = T * 10
     T = T / 16
     Ulamek = T Mod 10
     T = T / 10
     Locate 1 , 1
     Lcd "Temperatura " ; T ; "." ; Ulamek

     If T > 30 Then Led = 0   ' TU ZMIEN SOBIE WARTOSC DO WLACZENIA WENTYLATORA
     If T < 20 Then Led = 1   ' TU ZMIEN SOBIE WARTOSC DO WYLACZENIA WENTYLATORA





     Loop
     End
  • #18
    dondu
    Moderator on vacation ...
    drakoo320 wrote:
    Rozumie, ale czy ta dioda jest konieczna? ja mam podpiętą diodę pod inny pin w procesorze i działa...

    O czym Ty piszesz? Jaką diodę masz podłączoną pod inny pin?
    Odpowiedź na Twoje pytanie jest tutaj: https://www.elektroda.pl/rtvforum/viewtopic.php?p=13175227#13175227
    Miałeś ... ale nie czytałeś.
  • #19
    drakoo320
    Level 12  
    Podłączyłem równolegle 2x rezystor 4k7 i wentylator ruszyl, ale jest nap. 4V nie cale.
  • Helpful post
    #20
    emarcus
    Level 38  
    drakoo320 wrote:
    Rozumie, ale czy ta dioda jest konieczna? ja mam podpiętą diodę pod inny pin w procesorze i działa... Znalazłem tranzystor bc211 podłączyłem go tak jak na układzie i przez rezystor 10k al dalej nie rusza wentylator.

    zmieżyłem sobie napiecie i gdy jest <23 C swieci mi sie dioda czerwona i na wyjsciach z tranzystora jest 0V natomiast powyzej 23C bez podlaczonego wentylatora na jest 5V ale gdy tylko podepne wentylator spada do 3V i nie umie ruszyc, gdy jeden przewod wypne z wentylatora znowu wraca na 5V


    Tak, ta dioda jest konieczna jeżeli obciążenie ma charakter indukcyjny (znów nie doczytałeś(!).
    Przyjmuje się że, LED ma raczej charakter rezystancyjny i tu nie jest wymagane takie zabepieczenie przed BEMF.
    Poprawnie podłączony BC211 powinien załączyć twój wentylator pod warunkien poprawnie dobranego rezystora bazy w odniesieniu do obciązenia. Zmniejsz rezystor na ok 5k.
    Przede wszystkim ten twój program wymaga gruntownego uporządkowania .
    Masz tam całą masę błednych/nieptrzebnych, nic nie wnoszących operacji.

    e marcus
  • #21
    drakoo320
    Level 12  
    Jeszcze takie jedno pytanie na koniec... W jaki sposób w eaglu narysować wentylator?
  • #23
    drakoo320
    Level 12  
    Mogę prosić jeszcze na koniec o sprawdzenie poprawności schematu?

    [Atmega8][Bascom] - Termometr + dioda/wentylator LCD
    [/img]
  • #25
    drakoo320
    Level 12  
    [Atmega8][Bascom] - Termometr + dioda/wentylator LCD

    Teraz jest okej?

    W eaglu można zrobić projekt płytki drukowanej?
  • Helpful post
    #26
    dondu
    Moderator on vacation ...
    Schemat - OK, chociaż warto byłoby, byś pokazał jeszcze część zasilającą.
    Tak - kliknij w menu ikonę Generate/switch to board

    EDIT:
    Kondensator na AREF nie jest potrzebny, bo nie używasz przetwornika ADC.
  • #27
    drakoo320
    Level 12  
    Dziękuję za pomoc proszę jeszcze o sprawdzenie poprawności projektu płytki (eagel nie wykrył błędów).

    [Atmega8][Bascom] - Termometr + dioda/wentylator LCD
  • Helpful post
    #30
    kulamario
    Level 22  
    nie mogę otworzyć pliku
    nie wiem co jest nie tak
    jaka wersje Eagle masz?
    spakuj plik i daj na elektrodę załącznik
    OK
    otworzyłem plik
    pełno nie połączonych połączeń (UŻYWAJ W EAGLE NET NIE WIRE)
    powiedz czy rezystor do ustawiania kontrastu ma być potencjometrem(Dużym)?
    i czy kondensatory C1 i C2 maja być takie ogromne?
    Jeżeli pod złączem JP1 ma być wentylator to trzeba dodać diodę
    po za tym jakieś zasilanie tego tez byś się przydało (dodać złączkę na zasilanie?)
    D1 i D2 rozumiem ze to maja być złączki na diody LED?