Skocz do zawartości

Elektroniczny włącznik - sterowany z kanału R/C


oki188
 Udostępnij

Rekomendowane odpowiedzi

Cześć.

Chciałbym przedstawić wam kolejny projekt elektronicznego włącznika tym razem sterowanego z aparatury.

Istnieją już gotowe rozwiązania ale chciałbym pójść o krok dalej więc zaczynajmy

Wszystkie rozwiązania oparte są na mikro-kontrolerze Attiny13 (obenie Attiny85) oraz elementach dodatkowych.

Programy pisałem w Arduino IDE 1.0.5 więc mogą mieć kilka błędów ale układy działają prawidłowo, ach te początki w programowaniu :)

 

Wersja V.0

 

Wersja ta oparta jest na zastosowaniu przekaźnika jako układu wykonawczego do załączania dodatkowego urządzenia. W ten sposób zyskujemy możliwość nie tylko załączania, rozłączania ale i przełączania podłączonych układów.

Układ załączany jest impulsami z kanału RC o długości 1550us a więc troszkę ponad połowę wychylenia drążka

Zastosowany przekaźnik G5LE-1 o napięciu cewki 5V sterowany N-mosfetem IRLML6344 może załączać układy o prądzie max 10-12A dla 30V. Przekaźnik na płytce montowany jest od spodu, obok niego znalazły się piny do zalutowania przewodów lub zastosowania złącza KF-301. Na płytce punkty oznaczone Z należy połączyć zworką. 

 

post-685-0-78683600-1552325222.jpg

 

Schemat układu:

post-685-0-52340600-1551791043.jpg

 

Parametry:

Zasilanie Układu: 5V
Przekaźnik: G5LE-1
złącze wyjściowe: KF-301
wymiary PCB: 46 x 18mm

 

Wersja V.1

 

Wersja ta powstała dla osób którzy jednym kanałem chcieli by załączać wiele dodatkowych urządzeń w określonej kolejności.

Dlatego postanowiłem wykorzystać 4 wyjścia układu Attiny do załączania różnych układów jedno po drugim.

Jako układy wykonawcze dla ograniczenia miejsca na płytce wykorzystałem Dual N-Channel mosfet (2 kanały w 1układzie).

Niestety coś kosztem czegoś a więc max prąd na 1 kanał nie może przekroczyć 2.5A

Podobnie jak w układzie poprzednim sterowanie odbywa się rożną długością impulsu. Mając w aparaturze do dyspozycji przełącznik 3 kanałowy możemy wykorzystać 3 kanały, natomiast stosując kanał na potencjometrze 4 kanały

 

Tak powstał schemat.

update.jpg.2f5c0d7e244088599bd10a6250fa74a5.jpg

 

Oraz płytka.

post-685-0-98402400-1552325261.jpg

 

Prezentacja zadziałania układu gdy ruszamy drążkiem w gorę i w dół.

post-685-0-47514600-1551791617.gif

 

Dane techniczne.
Max napięcie:

Zasilanie Attiny85: 5V

Zasilanie złącz OUT1-4 max 15V

Max Prąd: 2,5A na kanał OUT
Pobór prądu: znikomy
Sterowanie: minusem
wymiary PCB: 32 x 18mm
Układy MOSFET Dual N-Channel do zastosowania:
AM4920N AO4800 AO4802 AO4802L AO4806 AO4812 AO4816
AO4818 AO4822 AO4824 AO4826 AO4830 AO4832 AO4918

 

Wersja V.2 (Poprawiony soft dzięki wskazówkom Piotrka "Sułek")

 

Ostatnią wersją jaką chciałbym zaprezentować jest wersja jak poprzednia, lecz tym razem urządzenia włączamy po kolei gasząc jednocześnie poprzednio włączone.

post-685-0-93449300-1551792892.gif

 

 

Wszelkie sugestie co do układów mile widziane.

Pozdrawiam.

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

Postaw mi kawę na buycoffee.to

Spróbuję coś podpowiedzieć. Od razu jednak zaznaczam, że nie znam C i nie stosuję bibliotek, Wszystko piszę od podstaw, dzięki czemu w zastosowaniach modelarskich nie zaskakują mnie różne "kwiatki"..

 

do rzeczy:

1. stabilność odczytu długości impulsu- procek nie ma kwarcu, więc jest pędzony z wewnętrznego oscylatora. To w powiązaniu z dość dziwną pętlą warunkową (if 1699- if 1700) może powodować fluktuacje przy wartościach granicznych.

2. rozdzielczość pomiaru impulsu- "pulseln" to jakaś biblioteka? Jaka jest więc rozdzielczość programowa zmiennej? Na pewno lepsza niż 1us?- z tego wynika, jakim zegarem jest pędzony procek?- 8bit czy więcej?. Bo jeśli 8bit, to zapomnij o 1us...

3. Nie wiem, czy tak można ująć to w C, ale niezależnie od dokładności/niedokładności= ziarnistości  pomiaru pulseln, niefortunna jest pętla (loop)

-przecież przy długości impulsu np 1750, spełniony jest warunek zarówno pulseln>1500 jak i pulseln>1700 ! i na czas przemiatania tej pętli, masz szpilki na niechcianych wyjściach

-postaw warunki jakoś tak:

if ((pulseln>1500) and (pulseln<1700))

 

do tego wprowadź obszary "nieokreśloności" pomiędzy wartościami aktywującymi a uzyskasz 'pseudohisterezę" oraz wykasujesz szpilki dla wartości granicznych, nawet przy bardzo ziarnistym i niestabilnym pomiarze pulseln. Czyli:

if (1320/1480)

if (1520/1680)

...itd

 

Może się do czegoś  przyda...?

 

pzdr

Piotr

 

ps

przydałoby się na etapie inicjacji programu dodać opcję wyboru pracy pojedynczego wyjścia (ostatni przykład) lub sekwencji wyjść (przedostatni przykład)- poprzez trwały sygnał (a więc np. pulseln>> 3500), który sekwencyjnie zmieniałby istotę działania całego włącznika

Odnośnik do komentarza
Udostępnij na innych stronach

Piotrze dziękuje bardzo za poradę po zastosowaniu Twoich przykładów warunków wszystko działa jak należy :) Jeszcze długa nauka przede mną w tym arduino wczoraj walczyłem parę godzin z tymi warunkami a rozwiązanie było takie proste.

Pozostał w Attiny jeden wolny pin i można by zrobić wybór pomiędzy wersją V1 a V2 spróbuje coś napisać ale zapewne zbraknie mi pamięci :huh:

Procek pracuje na wewnętrznym oscylatorze 9.6MHz.

Odnośnik do komentarza
Udostępnij na innych stronach

Tylko, że to jest reset. W Att jest fusebit, zamieniający ten pin z resetu na pb5.

Ja bym dał w funkcji zupełnie pierwszego pomiaru, wykrycie trwałego poziomu HIGH na wejściu- on mógłby kluczować modulo kolejne włączenie proca do prądu, jego funkcję. Brak trwałego HIGH na wejściu- nic nie robi.

Działałoby to tak, że chcąc "przełączyć" ustrojstwo w inny tryb, dajesz mu zworką na wejściu stan wysoki zworką z zasilania i załączasz. On to wyczuwa i zmienia stan na przeciwny. Odłączasz, załączasz już normalnie i radujesz oko nowym działaniem. 

Tylko, czy on (ATT)w ogóle ma kawałek pamięci nieulotnej (EEPROM)? Bo inaczej to nie zatrybi (Atmega8 ma i to dość sporo)...   

 

Co do warunków, to normalka- teraz będziesz już wiedzieć. Najważniejsze, to nie dorabiać teorii do faktów, a błędu szukać wyłącznie u siebie, nie zatrzaskiwać się na 1 rozwiązaniu i drążyć aż zatrybi...

 

pzdr

Odnośnik do komentarza
Udostępnij na innych stronach

Fajnie Damian, że Ci się chce coś zrobić od podstaw. Kiedyś robiłem podobne switche i dlatego mam jeszcze jedną propozycję: switch z pamięcią. Działa to tak: masz przełącznik trójpozycyjny (oczywiście może być to też drążek gimbala). Odchylasz go na chwilę w pozycją nr 1 i wracasz do zera. Załączasz tak MOSFET nr 1. Jak odchylisz drugi raz to go wyłączasz. I tak cyklicznie. Podobne wychylenia w pozycję nr 2 załączają i wyłączają MOSFET nr 2. Masz niejako niezależną obsługę dwóch wyjść. Ja dodatkowo miałem zworkę, którą wybierałem opcję  "z pamięcią" lub "bez pamięci". 

Jeszcze taka uwaga: koniecznie daj elektrolit oraz kondensator ceramiczny (100nF) na zasilaniu procesorka.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki Mirku za pozytywną opinię mam nadzieję że ktoś skorzysta z zaproponowanych rozwiązań tym bardziej że układ nie jest skomplikowany w budowie (w razie czego służę pomocą w zaprogramowaniu procków bo nie każdy ma programator). Rozwiązanie o którym piszesz jest fajne tylko nie spotkałem się by w aparaturach był przełącznik trzy pozycyjny chwilowy ON-OFF-ON. Przeważnie montowane są ON-OFF dwu pozycyjne, chyba że zastosujemy gimbal aparatury do wysterowania. Dlatego projektując układ myślałem o normalnym przełączniku i nie jest wówczas potrzebna pamięć.

Znajomi już zapowiedzieli że zaprezentowany układ przydał by się im w modelach czołgów gdzie włączają kilka funkcji na 1 kanale, więc pewnie parę płytek powstanie eksperymentalnie.

Pozdrawiam.

 

P.S Ja zamierzam podłączyć układ na Y kablu do kanału gazu a do wyjść podpiąć listwę LED RGB do podświetlenia modelu (niski gaz  -zielone, środkowa pozycja - niebieskie, pełny gaz -czerwone podświetlenie) fajnie model będzie się prezentować w locie wieczorami :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ostatnio zbudowałem platformę testowa na dokładne przetestowanie układu i przy zastosowaniu Attiny13 znalazłem mały błąd.

Między innymi przez zastosowanie wbudowanego w układ attiny wewnętrznego oscylatora 9.6MHz, który jest dośc niestabilny pojawiają się milisekundowe losowe wyłączenia poszczególnych załączonych kanałów.

Szczególnie widać to przy zastosowaniu żarówek jako obciążenia, ale również przekaźnik potrafi kliknąć.

https://www.youtube.com/watch?v=lHIX-PNtmRM

Na szczęście udało mi się rozwiązać problem stosując inny mały procesor Attiny85 (testy chciałem też zrobić na Attiny45 ale niestety nie było ich na stanie). Teraz dzięki zastosowaniu PLL Clock ustawionego na 16MHz układ pracuje stabilnie bez przykrych niespodzianek, oraz zwiększyła się dokładność pomiaru impulsu wejściowego.

https://www.youtube.com/watch?v=IaTMf1Bj9RE

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Obecnie powstała nowa wersja softu do sterowania z wykorzystaniem przełącznika chwilowego.

Każdy impuls powoduje załączenie kolejnego wyjścia z drobnym opóźnieniem około 500ms.

Gdy jednak przytrzymamy przełącznik to kolejne wyjścia będą się załączać po kolei w odstępach 500ms w pętli.

 

post-685-0-79141500-1554366295.gif

post-685-0-57980200-1554366305.gif

 

Sprawdziłem też układy które do mnie dotarły wczoraj i prąd poszczególnego kanału nie może przekraczać 2.5A (3A w impulsie).

Czyli wszystko zgodnie z założeniem projektu.

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

Domyślam się ale jeszcze ustalimy.

 

Ostatecznie powstały cztery wersje programu

 

Program P1

post-685-0-26034600-1556111700.gif

____________

Program P2

post-685-0-87231900-1556111703.gif

____________

Program P3

post-685-0-80319400-1556111708.gif

____________

Program P4

post-685-0-08146000-1556111712.gif

 

W najnowszej wersji układu mikro przełącznikiem sami wybieramy interesujący nas program :) dodatkowo wybór zostaje zapamiętany w nieulotnej pamięci EEPROM

  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...
  • 2 miesiące temu...

Ponieważ więcej płytek nie przewiduję a są osoby które chciały by sobie układ wykonać wrzucam wszystkie materiały.

Firmware posiada 8 programów, zmieniamy je za pomocą mikro-włącznika. Układ posiada pamięć wybranego programu.

!!! Materiały tylko do użytku własnego !!!

Potrzebne elementy:

Attiny 85 x1

Rezystor 10k x1 (smd 1206)

Kondensator 10uf x1

Mosfet FDS9926A x 2

Micro switch 3X6X2.5mm x 1

 

Instrukcja wgrywania:
1. Podłączamy procesor Attiny85 do USB-ASP
2. Ustawiamy Fuses na L:0xE2, H:0xDF i wgrywamy
3. Wgrywamy program plikiem firmware.HEX
4. Ustawiamy fusebit H:0x5F i wgrywamy.

Procesor zostanie zaprogramowany i jednocześnie ZABLOKOWANY.
Pierwsza noga reset od tego momentu steruje wyborem programu.

 

Schemat układu:

Schemat.jpg.a634c8a15c2cbb930f63f3e5884d777b.jpg

Płytka drukowana.

plytka.jpg.f9a445856cf26f9238cfd8ebb9a91c0b.jpg

 

Oraz oprogramowanie z instrukcją wgrywania

4-CH switch.rar

 

Odnośnik do komentarza
Udostępnij na innych stronach

 Udostępnij

  • 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ę.