Skocz do zawartości

Sterownik łańcucha CHOINKOWEGO


Pomocna odpowiedź

Przed wszystkim schemat. Czy naprawdę chcesz to robić na 2051? Sposób sterowania tranzystorami jest dopasowany do specyficznej struktury portów procesora 51, ale bez problemu można przejść na AVR. Masz kompilator C i programator do 89C2051? Chcesz bawić się z nieustannym wyjmowaniem procka z podstawki? Z czego chcesz to zasilać?

Sam program wydaje się trywialny. Przecież to tylko wypisywanie jakichś wartości na port i czekanie. Jeżeli dane zgromadzisz w jednej dużej tablicy, to całość sprowadzi się do pobierania z niej bajtu, wysyłania go na port, pobrania długości czasu, odczekania go i tak w kółko. Tylko od Twojej pracowitości i zaangażowania będzie zależeć jakie efekty, jak długie i jak skomplikowane tam wpiszesz.

Na jakim poziomie znasz C, tj. w czym konkretnie możemy pomóc?

EDIT: A może warto pójść odrobinę dalej? Ostatnio coraz bardziej popularne są diodki sterowane protokołem szeregowym:

http://www.tme.eu/pl/details/ws2812b-b/diody-led-smd-kolorowe/worldsemi-co-ltd/ws2812b-black/

Cztery druty z tego dwa idą równolegle do wszystkich (to zasilanie) a pozostałem dwa wyprowadzenia to wejście i wyjście. Wyjście jednej łączysz do wejścia następnej i masz dowolnej długości łańcuch w którym możesz załączać każdą diodkę niezależnie. Nie tylko załączać, ale też zmieniać jej kolor i jasność. To jest dopiero iluminacja, pomyśl o tym 🙂 Kabli dużo mniej a procesor steruje tylko jednym pinem - wejściem pierwszej diodki. Do prostych efektów wystarczy malutkie ATtiny.

Link to post
Share on other sites

Myślę, że schemat warto zmienić / rozbudować itp.

Na co warto zastąpić Atmege - AT89C2051 ?

Warto na ATMETA8, czy na coś nowszego ?

Programator na koniec podepnę przez złącze ISP przez porty MISO,SCK, RST, GND, MOSI, VCC.

Przerysowałem schemat w EagleCADsoft ale miałem problem z przerysowaniem szyn zbiorczych diod 1N4148 z tranzystorami. Schemat zamieszczam poniżej.

IMG_566db2e1bb8122846.png

Największy problem to oczywiście soft, ale początek już mam.

Nie wiem jak przypisać wciśnięcie guzika poszczególnej akcji świecenia.

Jak to zrobić ? Na wskaźnikach ?

#define F_CPU 1000000L 
#include <avr/io.h> 
#include <util/delay.h> 

int main(void) 
{ 
/* Obsługa przycisku na porcie C */ 
DDRC = 0x01; /* 0x01 binarnie 000 001 */ 

/* Wszystkie linie portu D będą wyjściami */ 
DDRD = 0xFF; /* 0xFF binarnie 1111 1111 */ 

/* Początek nieskończonej pętli */ 
while(1) 
{ 
PORTD = 0xaa; /* 0xaa binarnie 1010 1010 */ 
/* opóźnienie 0.33 sek. */ 
_delay_ms(330); 
PORTD = 0x55; /* 0x55 binarnie 0101 0101 */ 
/* opóźnienie 0.33 sek. */ 
_delay_ms(330); 
} 
}

sterownik oświetlenia choinki.zip

Link to post
Share on other sites

Z programem na pewno Koledzy pomogą. Nie wiem po co w sterowniku choinkowym jakieś przyciski, ale jeśli chcesz sterować zestawami efektów, no to musisz coś tam podłączyć. Może zacznij od czegoś prostszego: stwórz tablicę, do niej wpisz na stałe jakieś wzorce i napisz funkcję wysyłąjącą to na port. Przecież nie będziesz całego programu wypełniał instrukcjami

PORTD = cośtam;

delay(cośtaminnego);

prawda? Zrób to od razu porządnie.

Ja jednak chciałem o układzie. Nie wiem, czy rozumiesz co narysowałeś. Układ z AVT miał sterownik diodek zrobiony w formie źródeł prądowych po to, by łańcuchy LEDów (w kolektorze każdego tranzystora było tych diodek szeregowo wiele) świeciły w miarę równo przy rozładowywaniu akumulatora. Czy Ty chcesz zrobić tak samo, czy ta cecha jest Ci w ogóle potrzebna? Może będziesz to napędzał z sieci przez zasilacz?

Na schemacie są inne błędy, ale najpierw skupmy się na podstawowej idei: jakie zasilanie (ile V i skąd brane), ile diodek LED w każdym kolektorze.

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

Utknąłem ; / Nie mam pomysłu jak rozwinąć program i przebudować schemat (mój przerysowany powinien mieć błędy w porównaniu z schematem z artykułu.)

Proszę o wsparcie : )

Link to post
Share on other sites

Spoko, nikt Ci nie każe rysować od razu poprawnego schematu. Pytałem o Twoje pomysły na funkcjonalność. Odpowiedz na kilka prostych pytań. Z tego dopiero wyniknie jak ma schemat wyglądać. I ruchy, bo Święta za pasem a choinki czekają na każdym większym placu. Przynajmniej tu gdzie mieszkam.

Ile wszystkich razem diodek przewidujesz? Jak widziałeś na schemacie, diodki połączone są w sekcje. W jednej sekcji może być mnóstwo diodek a liczba sekcji praktycznie jest nieograniczona. Oczywiście im więcej diodek w sekcji tym wyższym napięciem musisz dysponować, bo LEDy są połączone szeregowo. Im więcej sekcji tym więcej jest potrzebnych wyjść procesora, driverów (tranzystorów) i tym więcej kabli idzie w łańcuchu na choince. Trzeba zachować umiar. Do prostego efektu wędrującego światła wystarczą 3-4 sekcje. Zapalasz 1-2-3-4 albo w tył 4-3-2-1 i masz przesuwające się punkty. Osiem sekcji to 9 przewodów w łańcuchu, ale i poszaleć można. Wybierz coś. Jeżeli główny zasilacz będzie 12V, to w każdej sekcji możesz mieć z 4-5 diodek - trzeba liczyć po 2-3V na diodkę w zależności od koloru plus musi zostać z 0.5V na tranzystor i min 1V na rezystor szeregowy lub inną metodę stabilizacji prądu. Przy takich niewielkich napięciach łańcuch będzie mizerny: 8 sekcji x 5 diodek daje 40 punktów świetlnych. Może zasilacz 24V? Zdecyduj.

Dopiero jak to będzie ustalone (liczba diodek i sekcji, źródło zasilania), można narysować driver i całą resztę.

Jeżeli chcesz wykorzystać stabilizację prądu z projektu AVR, musisz trochę zmienić sposób sterowania portów. Wyłączanie sekcji będzie odbywać się poprzez wysyłanie zera na pin wyjściowy portu a załączanie musi polegać na przeprogramowaniu odpowiedniego pinu tego portu na wejście. Dzięki temu napięcie na bazie tranzystora ustala się automatycznie w zależności od napięcia na oporniku pomiarowym w emiterze. Narysuję Ci to, ale najpierw Twoje odpowiedzi. Programem na razie się nie przejmuj - powinno zostać kilka wieczorów na jego dopracowywanie.

Link to post
Share on other sites

Myślałem bardziej - nie o łańcuchu tylko o choince na pocztówce ; ) której bombki zastąpię diodami LED fi3 i 5mm, więc ze źródła prądowego można zrezygnować.

To była koncepcja jak zwielokrotnić ilość diod w układzie.

Zasilanie z sieci potem przez zasilacz 9V DC (lub przez baterię 9V) i przez stabilizator 7805 podaje 5V na układ.

Przycisk wstawiłem do zmiany sekwencji świecenia.

Myślę o 2-3 sekcjach maksymalnie.

Widziałem już podobne rozwiązania na układzie LM555, ale na Atmedze zrobić - to ciekawy przykład do nauki programowania w C++

Link to post
Share on other sites

Na pocztówkę to bierzesz małe diodki SMD zadowalające sie 1mA prądu, podłączasz takich kilka równolegle do jednego pinu a całość zasilasz z 3V baterii pastylkowej np. CR2032. Sekcji możesz zrobić kilka, nawet 12 jeśli weźmiesz na tyle duży procesor i masz ponad 20 diodek. Rozmieszczasz je na choince i tyle. Żadnych tranzystorów i stabilizatorów, żadnych zasilaczy (chyba, że kartka ma stać na biurku do Nowego Roku) itp. Rysuj schemat.

Link to post
Share on other sites

Masz rację Marku : )

Zmodyfikowałem schemat.

Wstawiłem diody LED SMD 0805 zielone/żółte/czerwone.

To dobry pomysł aby przerobić zasilanie na 3V przez baterię CR2032.

Atmel będzie działać ?

A tak przy okazji jaki jest nowy odpowiednik Atmegi 8 ? xmega 8 ?

W schemacie nie mam pewności czy dobrze dobrałem rezystory przy ledach i tranzystor BC847 (SMD) ?

sterownik oświetlenia choinki.zip

Link to post
Share on other sites

Marek zasugerował małe LEDy prawdopodobnie by pozbyć się tranzystorów. Pisał o łączeniu równoległym, a u Ciebie szeregowo. No i co to za pytanie o xmega jako odpowiednika atmegi? To inna rodzina uC.

A Atmel działa od wielu lat i ma się całkiem dobrze jako firma.

Link to post
Share on other sites
A tak przy okazji jaki jest nowy odpowiednik Atmegi 8 ? xmega 8 ?

W tym segmencie to najbardziej aktualnie chyba 328.

Jest w Arduino więc tony bibliotek, ogólnie taki ciut lepszy model ósemki.

Link to post
Share on other sites

Z 3V nie możesz zasilać szeregowo więcej jak jednej diody, bo napięcie przewodzenia czerwonych to 2.1V a wszystkie inne kolory mają już tylko więcej. Jeśli chcesz mieć trzy LEDy w sekcji napędzanej z jednego pinu procesora, to dajesz każdej z tych trzech opornik szeregowy, takie 3 diodo-oporniki łączysz równolegle. Czyli anody LEDów przez oporniki do plusa zasilania a trzy katody do tego samego pinu portu. Żadnych tranzystorów. Czasem dopuszczalne są rozwiązania w których diody LED łączy się równolegle bezpośrednio (anoda do anody, katoda do katody) i wtedy wystarcza jeden wspólny opornik, ale to dobrze działa tylko na diodach wysokiej jakości, z tej samej partii produkcyjnej. Myślę, że koszt oporników nie jest krytyczny i możesz zrobić po oporniku na każdą diodę.

Kwarcu nie potrzebujesz, wywal go.

Przycisk podłączasz wprost do pinu portu bez żadnych kondensatorków i oporników. Procesor ma takie możliwości, że poradzi sobie z obsługą przycisku bez żadnego wsparcia RC. To ma być prosty układ.

Gdzie jest złącze programatora? A może zdecydowałeś, że procesor w obudowie DIP będziesz przekładał z układu do podstawki programującej? Czasem tak niektórzy robią, ale tutaj scalak w SO lub TQFP ma przewagę małych wymiarów, w szczególności grubości.

Rysuj kolejny schemat 🙂

EDIT: Ależ szybcy jesteście. Czuwaj! 🙂

Link to post
Share on other sites

Zgoda : )

Trochę inaczej zrobiłem jak Marek radził.

Posiłkowałem się rozwiązaniem ledowej choinki z zestawu AVT 1555.

Przesyłam go w załączniku ale pod 3V trzeba go jeszcze przebudować.

Co konkretnie radzicie zmienić w schemacie ?

Macie racje o połączeniu równoległym diod : ) Przerysowałem rozwiązanie na szybko.

Co jeszcze warto przebudować ?

AVT1555.pdf

Link to post
Share on other sites

Nie wrzucaj tu kolejnych obcych schematów. Nie musisz się na niczym wzorować. Pracuj nad jednym, swoim, poprawiając co trzeba. Przeczytaj uważnie co napisałem i w tym ostatnim schemacie zrób o co prosiłem. Tylko tyle.

Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.