Skocz do zawartości

Piny A0-A5 i Arduino Mega zamiast Uno do kursu


harryhrm

Pomocna odpowiedź

Mam pytanie teoretyczne.

Chce zrobić sobie led cube, najpierw prosty 3x3x3 i jak wyjdzie zrobię drugi większy.

I teraz pytanie czy jeśli zabraknie mi pinów I/O to czy działałyby diody podpięte pod piny A0-A5?

I drugie pytanie czy jeśli kupiłbym Arduino Mega zamiast uno to będą występować jakieś niezgodności w późniejszej części kursu, czy mogę śmiało nabyć ten model?

Sterowanie diodami w miarę ogarnąłem i myślę że dam rade zrobić led cube, a przynajmniej będę próbował, Arduino Mega byłoby lepsze w rozpatrywaniu dłuższego czasu po zakończeniu kursu(ze względu na potrzebną dużą ilość pinów do większego led cube).

Link do komentarza
Share on other sites

Mogą wystąpić niezgodności. Nikt Ci tego nie zagwarantuje, choćby z powodu innej numeracji pinów i innego przyporządkowania peryferiów do linii I/O wewnątrz procesora.

Tak, piny "analogowe" są równoprawnymi liniami portów. Nie dotyczy to linii A6, A7 w mega8/328.

Dlaczego w ogóle miałoby zabraknąć pinów? Ludzie już dawno wymyślili sposoby takiego ich wykorzystywania by nie brakło. Poczynając od prostego multipleksowania, poprzez zewnętrzne dekodery/drivery po rejestry przesuwające czy inteligentne LEDy. Przecież chyba nie podłączasz każdej diody do osobnego pinu? A kostkę 8x8x8 pociągnie i zwykłe UNO.

Link do komentarza
Share on other sites

Sorki dopiero zaczynam i nie ogarniam o co w tym chodzi 🙁 masz może jakiegoś linka gdzie multipleksowanie jest zrozumiale opisane? jak na tą chwilę moge poprostu sterować kolumną(pionową) oraz wierszem i linijką piętra. Tylko wtedy wychodzi sporo tych pinów (ilość na jednej ściance razy 3).

Link do komentarza
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

Najpierw sprawdze jaka jest granica na jakiej ludzkie oko nie zauważa migania, żeby nie przekroczyć tej granicy.

Potem zlutuje led cube, anody w kolumny a katody w piętra. Na przykładzie 4x4x4 podłącze do arduino 16 kolumn i 4 piętra albo 4 segmenty 1x4x4 i 4 piętra oraz microswitche do zmiany programu animacji. Obstawiam że jedna klatka animacji bd trwała 100ms (ale jeszcze nie jestem pewien) i w tym czasie bd migał naprzemian diodami które chce żeby sie świeciły w takiej częstotliwości żeby nie było widać, że migają tylko, żeby dawały złudzenie ciągłego świecenia.

Chyba będzie działać. A jak nie, będe coś kombinował w trakcie budowy.

Jeśli coś jest źle to mnie poprawcie.

Link do komentarza
Share on other sites

Organizacja kostki to nie wszystko. Jak sobie wyobrażasz sterowanie tych diodek? Wprost z portów procesora? Jeżeli nie kupisz bardzo dobrych, 1mA LEDów to może być kłopot. Jak zrozumiałem będziesz miał 16 wyjść od jednej strony (np. katody diodek) i 4 wyjścia od drugiej (anody). To daje 4 plastry po 4x4 diody. W każdym plastrze będzie świeciło 16 diod na raz z wypełnieniem 1/4. Jeżeli każdą diodę będziesz pędził z wyjścia procesora, musi on wysterować do zera (bo katody) 16 diodek jednocześnie. Zakładając prąd sumaryczny 100mA, masz 6mA na diodkę. Ponieważ każda z nich będzie świeciła tylko przez 1/4 czasu to będzie się wydawało, że dostaje 1.5mA prądu. Dlatego diodki muszą być dobre (jasne). Natomiast po stronie anod masz wszystkie końcówki plastra spięte w jedną linię, która musi dostarczyć 100mA prądu od plusa. Nie zrobisz tego na pinie procesora - musisz użyć tranzystora pnp lub PMOS.

Przemyśl to sobie, policz oporniki szeregowe i pokaż propozycję schematu. Tu nie ma co się zastanawiać, bo sterowanie matrycami LED ludzie ćwiczą od dawna i cały temat jest rozkminiony na wszelkie sposoby.

Teoretycznie, by nie widzieć mrugania powinieneś odświeżać każdą diodę z prędkością 30-50Hz. Zakładając fajne 60Hz i 4 plastry, musisz je przełączać z częstotliwością 240Hz. Spokojnie możesz zrobić dużo więcej. Napisz funkcję obsługi przerwania wyświetlającą jeden plaster i wołaną co 4ms z timera. Będzie potrzebowała 2 bajtów danych (stan 16 diodek) a w sumie "ekran" stanu kostki zużyje 8 bajtów czyli 64 bity. Jak już zrobisz wyświetlanie multipleksowane pracujące w tle, Twój główny program może zająć się efektami i animacją.

I jeszcze żeby Cię pocieszyć: są specjalne scalaki do sterowania matryc LED. Jeden taki potrafi sterować np. 64 diodkami samodzielnie. Ma wszystkie drivery, czasem sterowanie jasnością (wszystkich razem) i podłączasz go przez prosty i szybki port SPI. Zwykle służą do zabawy w płaskie obrazki 8x8, ale nic nie stoi na przeszkodzie by diodki połączyć w kostkę 3D. Gdybyś kupił np. taki zestaw:

http://botland.com.pl/wyswietlacze-led/1887-matryca-led-8x8-sterownik-max7219-mala-32x32mm.html

i użył tego MAXa (a resztę wyrzucił?), miałbyś z głowy całe multipleksowanie, drivery itp.

A gdybyś kupił ich więcej:

http://www.tme.eu/pl/katalog/#search=max7219&s_field=accuracy&s_order=DESC&id_category=100421&page=1

możesz zacząć robić większe kostki z bloków 4x4x4 🙂 Wszystkie razem sterowane tylko trzema drutami z procesora 🙂

Link do komentarza
Share on other sites

Anody pięter miałem zamiar sterować tranzystorami, gdybym podłączał 16 kolumn osobno to nie byłoby problemu emu, jedynie opornik na zbicie napięcia z 5V na 2,5V. W przypadku sterowania załym plastrem przypuszczałem też sterowanie przez tranzystor chyba, że znajde takie super diody które świecą przy 2,5mA.

Musze dobrze przetrawić co napisałeś, bo od razu nie ogarniam wszystkiego.

[ Dodano: 22-03-2016, 20:42 ]

Może złoże to poprostu na podstawie tego http://akademia.nettigo.pl/cube/ i napisze swój program... do tego dorzucę microswitche do zmiany animacji

Link do komentarza
Share on other sites

Nie widzimy tu żadnego pytania. I także pozdrawiamy.

Harryhrm: Wymyślenie tego samemu nie jest trudne. Projekt który wskazałeś zupełnie nie przejmuje się możliwościami procesora. 16 diodek z jednego pinu to nie jest dobry pomysł - jak to zwykle bywa: ktoś słyszał że piszczy ale nie wiedział w której trawie. Czy jakoś tak. A porty procka mają dużo lepszą wydajność prądową w stronę masy, więc bezpośrednio powinny sterować katodami 16 diodek. 4 anody przez tranzystory i gotowe 🙂 Narysuj schemat a wszystko stanie się prostsze i będzie o czym rozmawiać. Program też jest naprawdę prosty, sam zobaczysz. Pisząc go od zera będziesz całkowicie nad nim panował. Będziesz mógł zrobić np. sterowanie przez port szeregowy z komputera, animacje losowe lub włączane o zadanej godzinie itd.

Link do komentarza
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.