Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterownik pompy CO na STM32

mongoł2000 21 Sie 2015 18:38 5883 10
  • Sterownik pompy CO na STM32
    Witam,
    dziś chciałbym przedstawić potomnym projekt sterownika do pompy CO (nieco zaawansowany termostat) - projekt niezbyt skomplikowany, więc idealny na rozpoczęcie zabawy z STM32. I tym właśnie był projekt - pierwsze urządzenie na STM32, zaraz po tym jak pojawiły się na rynku, a dodatkowo były to początki nauki programowania (i poznania rejestrów mikrokontrolera).

    Projekt był następcą sterownika zrobionego na Atmega 8 jeszcze w Basic. Odczyt temperatury odbywa się przez sławnego DS18b20. Wyświetlanie zrealizowano na multipleksowanym wyświetlaczu LED,a alarm dźwiękowy na buzzerze z wbudowanym generatorem.

    Sercem układu jest mikrokontroler STM32F100, czyli najtańsze z możliwych rozwiązań na tej rodzinie. Płytka była przystosowana do amatorskie wykonania (żelazko) np. poprzez wykorzystanie głównie jednej warstwy oraz zwiększanie grubości ścieżek. Wymagany jest montaż tylko kilku zworek (czerwone ścieżki na PCB). Programowanie poprzez SWD np. z płytki deweloperskiej Discovery.

    Część sterująca jest odseparowana transformatorem, a sterownie odbywa się przez triak. Część sterująca i wykonawcza są umieszczone na oddzielnych płytkach i połączone czterożyłowym przewodem.

    Sterownik pompy CO na STM32

    Sterownik pompy CO na STM32

    Cztery przycisku służą kolejno do: zwiększenia temperatury, zmniejszenia, wejścia w tryb ustawień, manualne sterowanie.

    W trybie ustawień wyświetlacz miga, a trzy diody nad przyciskami oznaczają aktualne ustawienia: temperatura włączenia, wyłączenia i alarmu.

    Sterownik posiada zabezpieczenia zarówno przy przekroczeniu ok 70stopni jak i spadku temperatury poniżej 6 stopni Celsjusza - uruchamia pompę. Dodatkowo w przypadku nie używania pompy dłużej niż tydzień, pompa zostanie uruchomiona na kilka minut.

    Koszt wykonania to max 60 PLN - wszystko prócz mikrokontrolera do zakupu w Lispolu, a tu obudowa(oczywiście wymagała wycięcia otworów na przyciski, diody i wyświetlacz):
    http://www.lispol.com/product,1893,obudowa_z8_czarna_51x70x34.html

    Sterownik pompy CO na STM32

    Sterownik działa już chyba 6 lat bez żadnych problemów u dziadków oraz u znajomego który też sobie taki zażyczył. Więc projekt sprawdzony, aczkolwiek czytelność kodu na niskim poziomie(i można się skusić o dodanie warystora na wyjściu), bo projekt w sumie miał nie ujrzeć światła dziennego :D

    W załącznika kod (sorry za "stałe" w rejestrach - kod w celu uruchomienia wymaga dołączenia do projektu w uVision 3 bibliotek od producenta), schemat pdf oraz projekt PCB w Eagle 5.4.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    mongoł2000
    Poziom 18  
    Offline 
    Specjalizuje się w: mikrokontrolery arm, fpga, projektowanie
    mongoł2000 napisał 609 postów o ocenie 158, pomógł 15 razy. Mieszka w mieście Wrocław. Jest z nami od 2007 roku.
  • Computer ControlsComputer Controls
  • #2
    adambehnke
    Poziom 24  
    mongoł2000 napisał:
    a tu obudowa(oczywiście wymagała wycięcia otworów na przyciski, diody i wyświetlacz)
    Ja nie rozumiem gdzie tu jest coś wycięte. To wygląda jakby ktoś siekierą rąbał i przypadkiem udało mu się wybić dziury w miejscach przycisków :D
  • Computer ControlsComputer Controls
  • #3
    Użytkownik usunął konto
    Poziom 1  
  • Computer ControlsComputer Controls
  • #4
    Steryd3
    Poziom 33  
    Ja mam inne pytanie.
    Sokoro piszesz, że projekt jest następcą tego opartego na ATmega8 to czy zastosowanie tutaj mocniejszego obliczeniowo mikrokontrolera STM32 coś właściwie wniosło?

    Zastanawiam się bowiem co wnosi projekt który ani nie wykazuje wybitnych walorów estetycznych, ani (jak podpowiadają koledzy) nie cechuje się dobrze wykonaną płytką i dodatkowo dodany kod też nie jest ideałem.
    Nie chce Koledze skrzydeł podcinać ale trzeba się zastanowić czy warto publikować tego typu projekty.
    Pozdrawiam!
  • #5
    antrykot
    Poziom 20  
    Steryd3 napisał:
    ...trzeba się zastanowić czy warto publikować tego typu projekty.
    Pozdrawiam!


    Tak. Ja się tym bardzo podbudowałem, bo myślałem że nie potrafię wyciąć ładnych otworów w obudowie :)
  • #6
    Steryd3
    Poziom 33  
    antrykot napisał:
    Steryd3 napisał:
    ...trzeba się zastanowić czy warto publikować tego typu projekty.
    Pozdrawiam!


    Tak. Ja się tym bardzo podbudowałem, bo myślałem że nie potrafię wyciąć ładnych otworów w obudowie :)


    To nie chodzi o to jak kto otwory powycina- mnie też często wychodzi to mniej estetycznie niż bym chciał ale chociaż się staram a nie przepalam lutownicą obudowy.
    Mnie głównie chodzi o to by publikowany projekt choć w jednym aspekcie miał coś co sprawi, że czytający go czegoś się dowie lub czymś się zachwyci.
  • #7
    antrykot
    Poziom 20  
    Hmmm....Na tym forum też trzeba zaznaczać wprost gdzie się kończy,a gdzie zaczyna ironia, żart itp ?

    Poważnie mówiąc - skoro projekt chodzi 6 lat, to trzeba pogratulować autorowi rozwiązania problemu. Natomiast też uważam, że nie ma za bardzo co publikować.
  • #8
    pheonix
    Poziom 13  
    No najlepiej siedzieć na dupie i nic nie robić albo wstawić gotowce lub niedokończone Arduino ! Ogarnijcie się. Dowiedział się co tam zrobił źle i już może w następnej wersji sobie poprawi.
    BTW. krowa która dużo ryczy mało mleka daje
    Pozdrawiam.
  • #9
    tronics
    Poziom 37  
    Jeśli chodzi o wymiarowanie i wycinanie otworów - akurat przyciski i wyświetlacz mają obramówki na jednej warstwie więc wystarczy wyłączyć wszystko oprócz tej warstwy, wydrukować, nakleić na obudowę i powiercić otwory (a w przypadku prostokątnych nawiercić otwory w rogach, a resztę wyciąć brzeszczotem/nożem i ładnie wyszlifować brzegi pilnikiem). Jest to szczególnie przydatne gdy np. mamy np. 20 obwodów których funkcjonowanie jest sygnalizowane 40 LED - dobre pozycjonowanie otworów ma niebagatelne znaczenie w estetyce urządzenia.
    Ale wracając do tematu - jak na "próbkę możliwości" to układ zda egzamin (niemniej akurat nie widzę sensu się tym chwalić szczególnie, że na mniejszym procesorze też nudzącym się większość czasu działał jednakowo dobrze). Natomiast aż prosi się o to by mając (jakby nie było) mocniejszy procesor wykorzystać jego możliwości. W końcu takie zadanie jakie autor swojemu projektowi narzucił zrobi nawet najmniejszy i najtańszy mikrokontroler dostępny na rynku, baaa, nawet 30 letnie konstrukcje :) A zrobić można więcej, oprócz sterowania pompą także nawiew i silnik podajnika. Oprócz tego na takim MCU (w zależności od wersji) można by nawet zrobić automatyczny dobór parametrów w zależności od warunków pogodowych (tj. monitoring temp. w pomieszczeniach i na zewnątrz, dobór mocy dmuchawy i czasu podawania w zależności od potrzeb) i podgląd temperatur oraz modyfikacja ustawień z poziomu przeglądarki.
  • #10
    dejmos
    Poziom 23  
    Układ jak na pierwsze spotkanie z STM32 jest w porządku (sam zamierzam w niedługim czasie poeksperymentować na tych procesorach). Co do estetyki wykonania... no cóż wszystko chyba już zostało powiedziane. Ale mam takie pytanko: Co się dzieje po zaniku zasilania. Co się dzieje z ustawieniami i co najważniejsze z zegarem? Bo na schemacie nie widzę żadnego podtrzymania. Układ wraca do "fabrycznych ustawień"? Zegar się zeruje? Bo hipotetycznie jeżeli raz na 6 dni braknie prądu to pompa nigdy nie zostanie włączona.
    Nie znam za bardzo tych procesorów więc pytania mogą być chybione:)
  • #11
    mongoł2000
    Poziom 18  
    Ustawienia zostają w wewnętrznym "EEPROM" - a raczej symulowanym bazującym na zapisie w pamięci FLASH. Producent dostarcza do tego bibliotekę, aczkolwiek jest ona zbyteczna - warto używać bezpośredniogo zapisu do FLASH za pomocą bibliotek peryferii. Zaoszczędzi się trochę miejsca jeśli to wymagane. Ale wracając do zegara, który odpowiada za włączanie pompy "raz na jakiś czas". Tutaj, rzeczywiście można byłoby to usprawnić.

    Projekt miał być początkowo uniwersalnym sterownikiem PID, który w tym przypadku regulując zasilanie na pompie miałby w jakimś tam zakresie regulować temperaturę (szybsze nagrzewanie i wolniejsze wychłodzenie). Do tego ewentualnie drugie wyjście dla wentylatora - jednak dziadkowie nie używają wentylatora, wiec nie było tu tego.

    Tak jak napisałem - projekt dobry dla początkujących z STM32, bo sam się wtedy z tą rodziną zaprzyjaźniałem, i prezentowane urządzenie jest po prostu wymuszoną aplikacją dla tego rdzenia - inna sprawa: jasne, ze można to zrobić na jakimś innym starym scalaku, tylko po co jeśli ten jest tak tani (chyba dałem za niego ok 5 PLN) .

    Projekt dlatego właśnie jest w poczekalni, bo nie jest to coś czym można się specjalnie chwalić, choć 90% kolegów ze studiów, nawet tak prostej rzeczy by nie zrobiła. Dzięki temu, że ten projekt zrobiłem, właśnie na STM32, teraz mogę śmiało powiedzieć, że ta rodzina po kilku następnym projektach nie ma przede mną żadnych tajemnic :)