Skocz do zawartości

HyperMod CANON 450 Da ver1


motoolo

Rekomendowane odpowiedzi

No to koniec...... 
Nie koniec projektu a zakończenie wykonania układu elektronicznego sterującego pracą chłodzenia Canona.
 
Największe podziękowania należą się naszemu koledze forumowemu Łukaszowi " JOLO" za cierpliwość , wyrozumiałość , poświęcony czas  i bezinteresowną pomoc w uruchomieniu układu.
 
Założeń było wiele , przemyśleń jeszcze więcej. Przejżałem setki stron z podobnymi projektami szukając odpowiedzi na nurtujące mnie pytania.
Nie wiedząc jeszcze czy układ będzie zabudowany w aparacie(miejsce,wprowadzane zakłócenia  na Canona), czy np. w AstroHubie , czy sterowanie i odczyt warości będą w komputerze czy np na LCD ,
założyłem wersję uniwersalną która pozwoli na dowolne i proste modyfikowanie układu.
 
Znalazłem w sieci stronę:
 
 
Mogę powiedzieć że na tym przykładzie się wzorowałem i praktycznie wykonałem kopię tego układu wraz z wykorzystaniem zamieszczonego kodu ARDUINO.
Z opisu na podlinkowanej stronie wynikało że moduł ARDUINO odczytując temperaturę na matrycy przez czujnik DS18B20 tak steruje ogniwem peltiera aby utrzymać zadaną wartość.
Wykorzystano również czujnik DHT22 za pomocą którego z odczytanych parametrów , ARDUINO
oblicza kiedy wystąpi roszenie w obudowie.
Na podłączonym wyświetlaczu LCD można odczytać takie dane:
- w lewym górnym rogu - na zmianę temperaturę wnętrza obudowy/wilgotność/temperaturę punktu rosy (odczytane z DHT22 i wyliczone z algorytmu w ARDUINO)
- w prawym górnym rogu - zadana temperatura matrycy (wprowadzona przez użytkownika)
- w lewym dolnym rogu - moc PWM sterowania peltierem (wyliczona w algorytmie ARDUINO)
- w prawym dolnym rogu - odczytana temperatura z zimnego palca w okolicy matrycy (odczytane z DS18B20)
 
post-3704-0-95387100-1432195950.jpg
post-3704-0-23764700-1432195958.jpg
post-3704-0-56506500-1432195979.jpg
 
   
Temperaturę którą chcemy uzyskać na matrycy wprowadzamy podłączonym enkoderem obrotowym lub po przez monitor portu szeregowego np. ten w programie IDE ARDUINO.
W monitorze tym możemy również odczytać w/w wartości które widzimy na LCD.
 
post-3704-0-53248800-1432195990_thumb.jp
 
Myślę że w niedalekiej przyszłości , jak tylko JOLO znajdzie chwilę czasu napisze mi prosty programik do sterowania chłodzeniem z  komputera .
Wtedy będzie można zrezygnować z LCD i enkodera a wszystkie parametry odczytywać i wprowadzać z poziomu programu.
Kiedy do tego dojdzie będzie można pokusić się o zabudowanie całej elektroniki w obudowie aparatu wyprowadzając z niej tylko zasilanie 12V , usb Canon i usb Arduino.
Nie wiem jeszcze czy cały ten układ nie będzie wprowadzał zakłóceń w elektronice Canona ale to wykażą ewentualne testy....
 
No i przyszedł dzień kiedy dotarły do mnie zamówione elementy do budowy układu.
Podłączenie całości w wersji prototypowej na tzw. "pająka" zajęło mi może godzinkę i ściągnięty z podlinkowanej strony kod próbowałem wgrać do ARDUINO MINI PRO.
Ale żeby oczywiście nie było zbyt prosto , przy programowaniu wyskakiwał mi błąd już w trakcie samej kompilacji.
 
post-3704-0-24469500-1432196000_thumb.jp
 
Doszedłem do tego że brakuje mi biblioteki do obsługi LCD - LCDI2C4Bit 
Niestety nie potrafiłem znaleźć takiej która by nie powodowała błędu przy kompilacji.
Jolo wysłał mi przygotowaną bibliotekę libraries i kazał podmienić z tą którą posiadałem na swoim komputerze . Wtedy udało się przeprowadzić weryfikację w IDE bez błędu.
Ale programowanie nadal nie przechodziło.
Przeinstalowałem program IDE , wgrałem jego nową wersję , zmieniałem porty  - nic nie pomagało - cały czas błąd programowania .
 
post-3704-0-31266700-1432196014_thumb.jp
 
Nie wiem ile bym jeszcze nad tym siedział gdyby nie przypadek.
Siedząc nad chyba już setnym  programowaniem modułu , podszedł do mnie syn i poprosił o wyłączenie karty Wi-Fi w moim komputerze , bo miał u siebie jakiś problem z internetem .
Karta OFF...........................programowanie przeszło bez błędu!!! Szok!!!
Nie wierzyłem że to karta ma taki wpływ i że to był tylko przypadek więc zrobiłem próbę i za każdym razem gdy:
- Karta Wi-Fi jest ON - błąd programowania
- Karta Wi-Fi jest OFF - programowanie bez błędu.
Do tego był ważny moment puszczenia przycisku reset na module ( jak już wcześniej sugerował mi JOLO) , w moim przypadku gdy po zakończeniu kompilacji szkicu
i pojawieniu się w oknie dialogowym informacji o jego wielkości muszę odczekać około 2 sek. i dopiero wtedy puścić przycisk reset na module ARDUINO.
 
Po wgraniu programu okazało się że niewyświetlają się żadne informację na  LCD.
 
I znowu "JOLO RATUJ"
 
Czekając na wskazówki od Łukasza sam zacząłem grzebać w programie , wprowadzać zmiany i wpadłem na pomysł podmiany w  "// global objects" linijki dotyczącej LCD
na zawartą w JoloFokuserze ver.2 - bo tam mi LCD działał.
To był strzał w dziesiątkę! LCD ożył!
 
post-3704-0-21916900-1432196025.jpg
 
Pierwszą zmianą jaką zrobiłem było wprowadzenie własnego ekranu startowego który pojawia się po załączeniu zasilania
 
 
post-3704-0-72333500-1432196055.jpg
post-3704-0-91665800-1432196063.jpg
 
 
 
Gdy miałem już podgląd na pracę sterownika zacząłem testy z chłodzeniem .
Z monitora portu szeregowego IDE wprowadzałem temperaturę i sprawdzałem jak działa peltier ,  jak utrzymuje zadaną wartość.
Układ działał dość dziwnie tzn.
przy PWM 0%- pobór prądu przez ogniwo wynosił około 2,5A
przy PWM 80% - pobór prądu 0,0A
Okazało się że w oryginalnym kodzie linijkę " byte pwm_out = 255 - (byte)(out*255);" trzeba było zmienić na "byte pwm_out = (byte)(out*255);".
Doszliśmy do wniosku  z Łukaszem że twórca oryginału sterował pracą Peltiera przez przetwornicę DC/DC i prawdopodobnie to ona potrzebowała odwrotnego sygnału PWM.
Niestety nie mogłem wykorzystać tego sposobu bo na podlinkowanej stronie nie ma schematu podłączenia przetwornicy. Wszelkie próby kontaktu z twórcą były nieudane.
 
Po wprowadzeniu tej zmiany chłodzenie zaczęło działać prawidłowo.
Zauważyłem jednak że przy ograniczeniu PWM do około 40-50% dosyć mocno grzeje się gorąca strona Peltiera a co za tym idzie spadała siła chłodzenia.
Czytając różne informacje w necie dowiedziałem się że ogniwa te nie lubią być sterowane bezpośrednio przez sygnał PWM i tranzysor MOSFET.
Skutkuje to właśnie przy ograniczeniu sygnału PWM nadmiernym wzrostem gorącej strony Peltiera.
Z tego właśnie powodu twórca oryginału zastosował sterowanie przez przetwornicę DC/DC.
Można również pomiędzy tranzystorem a ogniwem w celu wyeliminowania tego zjawiska  zastosować prosty filtr LC którego zadaniem jest
zasilenie peltiera napięciem jak najbardziej stałym i wygładzenie sygnału prostokątnego.
Wartości cewki i kondensatora zależne są od częstotliwości sygnału PWM z ARDUINO.
Przy standartowych wartościach 490Hz należało by zastosować kondensator np 470uF i cewkę około 30-50mH , niestety cewki takie są trudno dostępne.
Możliwym rozwiązaniem jest zwiększenie częstotliwości PWM w ARDUINO do 31kHz co spowoduje zmniejszenie wartości cewki do około 68uH - cewka bezproblemowo dostępna i gabarytowo dużo mniejsza.
 
No to próby zwiększenia częstotlwości PWM
W tym celu należy zmienić wyjście PWM w Arduino z pinu 5 na np 9 , gdyż zmiana częstotliwości
na pinie 5 wprowadza również zmianę w zegarach systemowych modułu ARDUINO a tego musimy unikać gdyż może to zaburzać pracę całego układu.
Zacząłem wgrywać biblioteki i zmiany w programie podsyłane przez Łukasza mające na celu ustawienie PWM na 31kHz.
Żadne nie działały poprawnie , cały czas były jakieś problemy z pracą ogniwa , grzaniem się tranzystora . 
Kilka razy na polecenie Łukasza wgrywałem nowy program  z odłączonym filtrem LC , potem kolejno podłączałem jego elementy testując działanie układu.
Prostym testem sprawdzającym czy udało się zmienić częstotliwość jest słuchanie cewki LC...
tak tak .... cewka przy częstotliwości 490Hz delikatnie piszczy a przy częstotliwości 31kHz już tego nie słychać.
Moja cewka nawet gdy wydawało się że wszystko już działa prawidłowo cały czas piszczała.
 
I kolejny przypadek ...........
 
Koledzy jak już Łukasz wam pomaga i mówi przełącz sterowanie PWM z pinu 5 na 9 to zróbcie to!!!
Ja w ferworze walki pozmieniałem wszystko w programie zapominając przepiąć sterowanie na pin 9!!!
Zmarnowałem mnóstwo cennego czas Łukaszowi który za wszelką cenę starał się mi pomóc.
 
I właśnie przez przypadek spojrzałem na moduł i zauważyłem swoj błąd.
Po zmianie pinu wszystko zadziałało jak należy i cewka przestała do mnie piskać :)
 
W celu zmiany częstotliwości PWM została dopisana do programu linijka 
 
TCCR1B = TCCR1B & B11111000 | B00000001;
 
Dokładny opis na którym pinie i na jaką częstotliwość zmienić PWM znajdziecie tu :
 
 
No i tak dobrneliśmy z Łukaszem do końca.
Układ działa poprawnie , bardzo dokładnie , w zakresie kilku dziesiątych stopnia utrzymuje zadaną temperaturę , na peltierze wyraźnie zmniejszyła się temperatura po gorącej stronie.
A czy to się sprawdzi ? To już zobaczymy po złożeniu wszystkiego w jedną całość.....
 
Dla zainteresowanych schemat układu
 
post-3704-0-58443200-1432196044_thumb.jp
 
A wieczorem wrzucę jeszcze program z bibliotekami
  • Like 1

EQ6 , TS APO 115/800 , SW 80/400+DSI , Canon 500D , Canon 450D w trakcie MOD

Odnośnik do komentarza
Udostępnij na innych stronach

Do tego był ważny moment puszczenia przycisku reset na module ( jak już wcześniej sugerował mi JOLO) , w moim przypadku gdy po zakończeniu kompilacji szkicu

i pojawieniu się w oknie dialogowym informacji o jego wielkości muszę odczekać około 2 sek. i dopiero wtedy puścić przycisk reset na module ARDUINO.

A nie próbowałeś podłączyć też linii DTR do Arduino. Ja sobie nie wyobrażam zabawy z przyciskiem przy programowaniu, chyba by mnie szlag trafił, a do tego więcej czasu się traci.

HEQ5, TSAPO65Q + Canon EOS 450D hypermod, SK804A + Orion SSAG, DO Titanium 9x63

Odnośnik do komentarza
Udostępnij na innych stronach

A nie próbowałeś podłączyć też linii DTR do Arduino. Ja sobie nie wyobrażam zabawy z przyciskiem przy programowaniu, chyba by mnie szlag trafił, a do tego więcej czasu się traci.

Nie miałem konwertera z DTR

EQ6 , TS APO 115/800 , SW 80/400+DSI , Canon 500D , Canon 450D w trakcie MOD

Odnośnik do komentarza
Udostępnij na innych stronach

Nie miałem konwertera z DTR

A to pierwszy raz się z czymś takim spotkałem. Możesz podlinkować, jaki masz konwerter? Może gdzieś uda się go wydobyć w łatwy sposób.

HEQ5, TSAPO65Q + Canon EOS 450D hypermod, SK804A + Orion SSAG, DO Titanium 9x63

Odnośnik do komentarza
Udostępnij na innych stronach

Większość konwerterów na PL2303 ma wyprowadzone tylko złącza sygnałowe. Można się doczepić do nóżki układu, ale to wymaga trochę uwagi. Po uruchomieniu układu nie ma to już w sumie znaczenia, choć daje możliwość zresetowania Arduino przez port szeregowy, co może się czasami przydać.

jolo-astrojolo.png

Odnośnik do komentarza
Udostępnij na innych stronach

1)  Jak już pisałem wcześniej , świetny projekt i pomysł.

2)  Jak się sprawdzi to sobie takie cusik zrobię do moich chłodzonych Canonów.

3)  Wpraszam się  "na krzywy ryj" na testy i pierwszą sesję  >:D

 

Szacun dla Jola za bezinteresowne dzielenie się doświadczeniem i wiedzą  :)

Odnośnik do komentarza
Udostępnij na innych stronach

(...)Szacun dla Jola za bezinteresowne dzielenie się doświadczeniem i wiedzą  :)

Nie bezinteresowny - też się chętnie wproszę na sesję zobaczyć lodóweczkę. Sam już prawie zaczynałem jakiś czas temu budowę, miałem sporo części, ale w końcu nie zacząłem :)

jolo-astrojolo.png

Odnośnik do komentarza
Udostępnij na innych stronach

Większość konwerterów na PL2303 ma wyprowadzone tylko złącza sygnałowe. Można się doczepić do nóżki układu, ale to wymaga trochę uwagi. Po uruchomieniu układu nie ma to już w sumie znaczenia, choć daje możliwość zresetowania Arduino przez port szeregowy, co może się czasami przydać.

Ok, to wiele wyjaśnia. Zazwyczaj korzystałem z FT232, a teraz z CP2102, a one mają wszystkie wyprowadzenia do portu szeregowego zrobione.

HEQ5, TSAPO65Q + Canon EOS 450D hypermod, SK804A + Orion SSAG, DO Titanium 9x63

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bezinteresowny - też się chętnie wproszę na sesję zobaczyć lodóweczkę. Sam już prawie zaczynałem jakiś czas temu budowę, miałem sporo części, ale w końcu nie zaczą

Czujcie się zaproszeni.

EQ6 , TS APO 115/800 , SW 80/400+DSI , Canon 500D , Canon 450D w trakcie MOD

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.

© Robert Twarogal * forumastronomiczne.pl * (2010-2023)