Recon Napisano Listopad 16, 2015 Udostępnij Napisano Listopad 16, 2015 Hej, potrzebuję zbudować prosty mechanizm sterowania przekaźnikami (na atmega8), w którym algorytm będzie się opierał na załączaniu przekaźnika na pewien odcinek czasu T1, w odstępach T2. I o ile jakiś duży specjalnie problem to nie jest, to gdy pojawia się kwestia regulacji wielkości T1 i T2 sprawa się komplikuje. Chciałbym wprowadzić taką regulację na potencjometrach ale na za bardzo wiem jak się za to zabrać. Póki co założyłem, że można by dwa potencjometry dodać bezpośrednio do gniazd ADC mikrokontrolera i tym samym regulować napięcie podane na nóżki. Tylko czy da się w takim przypadku w miarę precyzyjnie nanieść charakterystykę w czasie dla potencjometru? Tzn, zależność napięcia na nóżce od konkretnej liczby, która potem będzie utożsamiana z czasem T1,T2? Czy taka koncepcja jest dobra? Nie chce komplikować układu potencjometrami cyfrowymi. EDIT: Jak długie odcinki czasowe jest w stanie obsługiwać atmega? Link do komentarza Share on other sites More sharing options...
marek1707 Listopad 16, 2015 Udostępnij Listopad 16, 2015 Z załączaniem przekaźnika na określony czas poradzi sobie chyba każdy, nawet najprostszy kontroler. Możesz rozpatrywać nawet ATtiny, a ATmega to już armata. Jedynym wymaganiem jest raczej sposób zadawania czasów, bo będzie po wymagało pewnej liczby linii portów. Możesz to zrobić analogowo - tak jak zaproponowałeś. Dwa zwykłe potencjometry to dwa piny ADC. Potencjometr - wiadomo, ma wszystkiego ze 270 stopni obrotu i na tej drodze musisz zmieścić cały swój zakres czasów. Jeżeli planujesz np. 10 minut z rozdzielczością np. 1 sekundy, to potrzebujesz 600 działek i nie ma szans zrobienia tego w ten sposób. Ale jeśli wystarczy te przykładowe 10 minut nastawiać z rozdzielczością 30 sekund, to 20 czytelnie opisanych działek jesteś w stanie na takiej skali (przy dużej gałce) upchnąć. Pamiętaj, że potencjometry mają swoją liniowość (kiepską) oraz znaczne niedokładności na początku i końcu - te fragmenty ścieżki oporowej trzeba odrzucić, więc zostaje jeszcze mniej kąta obrotu. W aparaturze laboratoryjnej stosuje się czasami (choć ich szczyt popularności minął) potencjometry wieloobrotowe: http://www.tme.eu/pl/details/3856a-286-103al/potencjometry-wieloobrotowe-cermetowe/bourns/ http://www.tme.eu/pl/details/pot2218p-10k/potencjometry-wieloobrotowe-drutowe/sr-passives/ Nie są tanie, ale np. 10 obrotów znacznie poprawia dokładność ustawiania. Żeby jednak wiedzieć ile się ustawiło potrzebna jest specjalna gałka z przekładnią i skalą: http://www.tme.eu/pl/details/gp1-6.35-22x24/galki-precyzyjne-do-potencjom-osiowych/sr-passives/ Taki interfejs jest bardzo prosty i intuicyjny, choć jednak bazujesz na technice analogowej i jakości przetwornika AC w procesorze. Możesz też zrobić dwa przyciski i wyświetlacz, nawet 2, 3 lub 4-cyfrowy, 7-segmentowy LED. Taki maluch nie zajmuje dużo miejsca a dwa przyciski pod nim pozwolą na zwiększanie i zmniejszanie czasu. Wyświetlaczy jest mnóstwo rodzajów, możesz wziąć mały OLED, LCD a nawet TFT. Graficzny LCD 84x48 ze starej Nokii kosztuje chyba z 5 zł. Jeszcze jednym rozwiązaniem są tzw. zadajniki kodów. Istnieją w wersjach do montażu na PCB: http://www.tme.eu/pl/details/a6ks-102rs/zadajniki-kodu/omron/ http://www.tme.eu/pl/details/erd110rsz/zadajniki-kodu/ece/ lub do umieszczenia na panelu czołowym: http://www.tme.eu/pl/details/z-49/zadajniki-kodu/ Jeżeli dasz takie trzy obok siebie, możesz już zadawać liczby z zakresu 000-999 a jeśli np. dwa z nich przeznaczysz na czas a jeden na mnożnik, masz już zakres od 00E0 do 99E9 a to chyba nawet za dużo. Każdy taki zadajnik ma 4 bity wyjściowe prezentujące liczbę binarną 0000-1001. W najprostszym przypadku dajesz 4 linie portu na każdy zadajnik, ale możesz zrobić odczyt multipleksowany i wtedy masz 4 wejścia + tyle wyjść ile zadajników użyjesz. Ponieważ nastawiane cyfry są widoczne z definicji, nie potrzebujesz wyświetlacza. EDIT: Dopóki nie myślisz o czasach rzędu 27ns, to w górę nie istnieją żadne znane ograniczenia co do długości odmierzanego czasu. Jeżeli do generacji impulsu wyjściowego zatrudnisz sprzętowy timer, to masz wtedy 16 bitów ale sygnał jest produkowany z bezwzględną dokładnością generatora taktującego procesor. Gdy timer będzie taktowany np. z 1MHz to dysponujesz zakresem 1-65536us z rozdzielczością 1us. Do przekaźnika jednak potrzeba znacznie dłuższych czasów więc jeśli w przerwaniu np. co 10ms zrobisz 32-bitowy licznik, to masz timer odmierzający czasy do półtora roku z rozdzielczością 0.01s. Wystarczy? Link do komentarza Share on other sites More sharing options...
Recon Listopad 16, 2015 Autor tematu Udostępnij Listopad 16, 2015 Dzięki, Twój post bardzo wiele wyjaśnił! Myślę tu raczej o czasach w minutach i bardzo podoba mi się pomysł zadajników do 999s. Tylko jakiego dekodera użyć, żeby przesłać wygenerowany kod do atmegi w postaci gotowej liczby? Link do komentarza Share on other sites More sharing options...
marek1707 Listopad 16, 2015 Udostępnij Listopad 16, 2015 W procesorze masz milion tranzystorów i kilka kb pamięci. Po co chcesz podłączać coś jeszcze? W zależności od tego ile chcesz użyć zadajników łączysz je odpowiednio, dociągasz kabelki do ATmegi i tyle. Przemyśl sprawę raczej od strony wygody użytkowania. Ile ma być czasów? Jak często mają być zmieniane? Czy powinny być oba na raz pokazywane/wyświetlane? Czy urządzenie będzie zabudowane gdzieś w trudno dostępnym miejscu? Kto będzie to obsługiwał? Jeśli np. tylko Ty a czasy będziesz zmieniał raz do roku ale w ogóle tylko raz na początku, interfejs może być dowolnie upierdliwy bo jest bez znaczenia ile zmarnujesz czasu na ustawianie. Wtedy wystarczy jedna, może dwie diodki LED i dwa przyciski. W drugiej skrajności może być użyty pilot od TV (ma gotowe przyciski numeryczne i wiele innych klawiszków), odbiornik podczerwieni i ładny wyświetlacz. Acha - dlaczego procesor? Są przecież jeszcze rozwiązania czysto "sprzętowe": układy czasowe typu 555 czy 74HC123, liczniki np. 74HC90 itd. 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Recon Listopad 16, 2015 Autor tematu Udostępnij Listopad 16, 2015 Procesor dlatego, że w układzie będą dwa przekaźniki i czasy załączeń będą w cyklu definiowanym przez zaprogramowany algorytm loopa. Z tego też powodu sumarycznie będzie 6 takich zadajników a być może i 8 bo chciałbym zdefiniować też ilość cykli. Jeśli to ma oznaczać, że muszę zastosować większy mikrokontroler, to chyba jednak wrócę do potencjometrów. Link do komentarza Share on other sites More sharing options...
marek1707 Listopad 16, 2015 Udostępnij Listopad 16, 2015 Tak jak napisałem: liczba potrzebnych linii I/O procesora to 4 + liczba zadajników. Dla 8 będziesz potrzebował 4+8=12 linii a jeśli po drodze umieścisz prosty dekoder 74HC138 (1.50zł) to liczba linii spada do w sumie 8. To jeden port procesora. Drugi przeznaczasz na wyjścia: 8 wyjść powinno wystarczyć. Wciąż zostaje jeszcze mnóstwo drutów na LEDy, bipczaki itp ekstrawagancje. ATmega obsłuży zliczanie i 50 takich czasów na raz. Jeżeli algorytmy będą skomplikowane (jakieś łańcuchy wyzwalania poszczególnych opóźnień, dowolne łączenie bloków opóźniających między sobą itp) to poważnie pomyśl o wyświetlaczu graficznym prezentującym tę strukturę: http://botland.com.pl/wyswietlacze-lcd-tft/4474-wyswietlacz-dotykowy-tft-lcd-22-320x240px-spi.html lub: http://botland.com.pl/wyswietlacze-oled/4434-wyswietlacz-oled-dwukolorowy-graficzny-096-128x64px-spii2c-katowe-zlacza.html oraz o przejściu z drogich zadajników (powyżej 4-8 sztuk nie warto w nie inwestować) na kilka przycisków lub prostą klawiaturę: http://botland.com.pl/klawiatury/1681-klawiatura-membranowa-numeryczna-12-klawiszy.html Link do komentarza Share on other sites More sharing options...
Recon Listopad 16, 2015 Autor tematu Udostępnij Listopad 16, 2015 Algorytm raczej nie będzie wybitnie skomplikowany, ale może faktycznie warto by było pomyśleć o takiej prostej klawiaturze i wyświetlaczu najbanalniejszym, który poprosi o wszystkie dane po kolei i uruchomi proces. Link do komentarza Share on other sites More sharing options...
marek1707 Listopad 16, 2015 Udostępnij Listopad 16, 2015 No to masz temat do przemyśleń i pole do popisu 😃 Wracaj z konkretnymi pytaniami lub.. pierwszym schematem. Będziemy bezlitośni 😉 1 Link do komentarza Share on other sites More sharing options...
Recon Grudzień 30, 2015 Autor tematu Udostępnij Grudzień 30, 2015 Hej, dzięki za rady, udało mi się zrobić ten układ, śmiga jak zły. Wykorzystałem wyświetlacz LCD 16x1 i klawiaturę matrycową 4x3 😉 Wszystko można precyzyjnie wpisać i nie trzeba było dodatkowych timerów, wszystko na Wait śmiga 🙂 Testowane ze stoperem kilka godzin już i przez kilka dni. Jako, że sukces w 100%, to chciałbym to popchnąć dalej - mianowicie cały ten ogromny loop załączał by się pod wpływem bodźca - różnicy ciśnień między dwoma przetwornikami ciśnienia, które pracują w trybie 4...20mA. Tutaj potrzebuję również porady, żeby wiedzieć jak się zabrać do roboty. Praca w takiej pętli wymaga rezystora pomiarowego precyzyjnego, który będzie zbierał różnicę napięć. I teraz, różnicę napięć podpinam sobie między jakiś pin A a masę GND mikrokontrolera? A potem odpowiednią komendą robię odczyt napięcia? Druga sprawa - jak zasilić taki czujnik? 5V z mirokontrolera to za mało. Mam też stabilizowane 24V którym zasilam sterowane przez ULN2803 przekaźniki, może w ten sposób? Tylko wtedy pytanie czy czujnik może mieć osobną masę z zasilaczem mikrokontrolera? [ Dodano: 31-12-2015, 12:51 ] Pomocy 😋 podajcie człowiekowi wędkę 😃 żeby co złowił ! __________ Komentarz dodany przez: Treker Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »