Skocz do zawartości

Sterownik łańcucha CHOINKOWEGO


Pomocna odpowiedź

Ja tylko zapytam w kwestii formalnej. Chcesz zmieścić 40 LEDów na kartce pocztowej?

[edit]

Hahaha, chyba muszę dokręcić sobie śrubkę w oku, skoro doliczyłem się tam 40 diod...

Link to post
Share on other sites

Zasilanie 3V na pinie PC0 niepotrzebne.

AVCC bezpośrednio do plusa, wiszące GND procesora obowiązkowo do masy. Kondensator 100nF i z 10uF na zasilaniu.

Jeżeli ma to jeszcze grać kolędy, to dospawaj jakiś bipczak/głośniczek.

Moim zdaniem to będzie wszystko.

Kupuj elementy, rób płytkę, nie zapomnij o samej baterii i koszyczku dla niej - nie wolno ich lutować bezpośrednio. Wybierz jakiś dobre, niskoprądowe diodki LED SMD. Pokaż co wybrałeś zanim kupisz.

Czy sama płytka będzie "kartką" z choinką, czy zrobisz rysunek na kartoniku, otworki na diodki a PCB pod spodem? Jakiś wyłącznik? Może jakiś zestyk z drucika włączany otwarciem kartki?

EDIT: Hm, ja widzę 24 LEDy. A diodki 0603 mają 1.6x0.8mm - wszystkie zmieszczą się na samym znaczku pocztowym.

Link to post
Share on other sites

Spróbuje połączyć diody na pajęczynkę lub zrobić płytkę PCB.

Może uda mi się zeskanować pocztówkę i w AutoCADzie rozmieścić precyzyjnie otwory.

Potem zarys płytki z otworami wrzucę do Eagla i dorysuje ścieżki.

Można to zrobić tylko trzeba pilnować się skali inaczej otwory na płytce nie pokryją się z otworami na pocztówce.

Precyzyjna robota a czasu mało ; )

Jakie Marku radzisz kupić rezystory SMD do diod LED?

Czy mogą być 150 Ohm ?

Jaki masz pomysł na użycie głośnika ?

Masz na myśli odtworzenie dźwięku polifonicznego jak z pozytywki ?

Widziałeś już takie rozwiązania ?

Masz na myśli rozwiązanie z hobby.abxyz ?:

http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=7

Link to post
Share on other sites

Zakładając, że wszystkie diodki będą czerwone bo te mają najmniejsze napięcie przewodzenia, masz ok. 1.8-2.0V na diodzie. Zostaje więc ponad 1V na opornik i driver - to całkiem sporo. Jeśli kupisz dobre diodki SMD wielkości 0603 o jasności 70-100mcd to będą bardzo dobrze świecić już przy 1-2mA. Wychodzi opornik w granicach 430R-1k. Najlepiej byłoby to sprawdzić dla konkretnych diodek. Oporniki są tanie, i tak kupuje się zwykle więcej żeby były do następnych projektów. Kup po 50 sztuk np. 220, 330, 470, 510, 680, 820R i 1k najbardziej popularnej wielkości 0805. Wlutujesz LEDy, jednej dobierzesz opornik a potem takie same zapodasz reszcie. Wiele też zależy od warunków oświetleniowych. Nie powinny razić w oczy po zmroku, ale powinno być je widać w dzień. Nie wymyślisz tego bez eksperymentu. Przykładowa diodka:

http://www.tme.eu/pl/details/kp-1608surck/diody-led-smd-kolorowe/kingbright-electronic/

Przy 3V będzie bardzo trudno zmusić zielone, żółte a tym bardziej niebieskie czy białe do dobrego świecenia. Możesz spróbować, ale wtedy nie zostaje praktycznie żaden margines na rezystor i stabilizacja prądu praktycznie nie działa. Jeśli przy 3.1V będzie dobrze, przy 2.8V już będą ledwo widoczne.

Jeśli w swoim ulubionym sklepie znajdziesz jakiś mały, płaski i w miarę wysokoomowy głośnik dynamiczny (min. 32Ω) lub jakiś mały przetwornik piezo to możesz go kupić i podłączyć. Najlepiej do portu będącego wyjściem PWM timera. Generacja częstotliwości na takim wyjściu nie kosztuje w ogóle mocy obliczeniowej. Programujesz timer kolejnymi podzielnikami z jakiejś tablicy i masz prostą pozytywkę. Dźwięk polifoniczny to już wyższa szkoła jazdy, ale to też daje się robić. Będziesz miał długie zimowe wieczory żeby odpalić coś nastrojowego 🙂

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

Jak można rozbudować układ o - wskaźnik wysterowania mocy na Atmedze ?

Mam na myśli załączanie diod LED w takt muzyki.

Mógłbym dodać do schematu gniazdo audio stereo do którego podałbym dźwięk z wyjścia karty dźwiękowej lub odtwarzacza mp3.

Podobne rozwiązanie znalazłem w zestawie Jabel J-28. Przesyłam poniżej.

Czy można tak bezpośrednio podpiąć się do portu np. PB0 kanał lewy; PB1 kanał prawy; ?

J-029N.pdf

Link to post
Share on other sites

Hm, to będzie chyba najbardziej skomplikowana kartka świąteczna jaką widziałem.

Tak, oczywiście, możesz podpiąć dwa takie układy do dwóch wejść przetwornika AC. Daj diody Schottky lub (jeśli znajdziesz) germanowe, bo wyjścia "line audio" nie dają zbyt dużego napięcia. Może na słuchawkowych jest lepiej. Zwykłe diody krzemowe załatwią większość sygnału i nici z pomiarów. Myślę, że wskaźnik wysterowania powinien mieć jednak zasilanie sieciowe lub choćby dwa-trzy paluszki AA, bo z baterii pastylkowej to długo nie pociągnie. O ile w przypadku wyświetlania wzroków na LEDach procesor właściwie nie ma nic do roboty, można go puścić z zegara 1MHz a i tak większość czasu będzie spędzał w stanie IDLE to przy pomiarach sygnału audio - choćby nawet tylko jego obwiedni - musi się trochę postarać. Żeby wskaźnik wyglądał i zachowywał się "naturalnie", trzeba będzie dobrze dobrać stałe czasowe: albo elementów RC przy diodach albo filtrów cyfrowych wbudowanych w program.

Moim zdaniem kondensator wejściowy C1 powinien być odwrotnie a w najlepszym wypadku powinien być niepolarny, np. ceramiczny. Przecież podczas ujemnych połówek sygnału ładuje się przez diodę D1 tak, że plus napięcia jest po prawej stronie. Podczas dodatnich połówek rozładowuje się przez D2.

Atmega8 ma wewnętrzne Vref=2.56V. Gdyby okazało się, że Twój sygnał otrzymywany z detektora jest bardzo słaby (np. 0.5V) to kiepsko będzie się mierzył, bo wykorzystasz tylko 1/5 zakresu dynamiki przetwornika. Może zrób na płytce zwykły dzielnik napięcia (przy stabilnym zasilaniu sieciowym) lub referencję 1.2V (przy pływającej baterii 3V) i podłącz to do VREF procesora.

EDIT: Jeżeli w którymś momencie nie zamrozisz założeń do tego projektu, to nie wyrobisz się nawet na przyszłe Święta. Nie takie przedsięwzięcia upadały z tak prostego powodu.

Proponuję dywagacje o wskaźnikach wysterowania przenieść na jakieś małe Arduino, które... kupisz sobie na Gwiazdkę? Lub na małą płyteczkę z detektorami, dospawaną po Świętach do kurzącej się kartki z LEDami i choinką.

Link to post
Share on other sites

Potrzebuje wsparcia w przygotowaniu programu do Atmegi : )

Schemat finalny sterownika, zamieszczam poniżej, dodałem głośnik oraz przyciski.

Wszystko jest robione „na szybko” więc wstrzymuje się z zamieszczeniem zdjęć ; )

Pierwszy przycisk PROG1 chce użyć do przełączania wariantów świecenia diod LED.

Drugi przycisk PROG2 do przełączania melodyjek polifonicznych.

Wiem orientacyjnie jak modyfikować warianty świecenia diod LED ale nie jak przełączać się między nimi przyciskiem z możliwością zgaszenia wszystkich. Podobnie jak obsługą głośnika.

Jak przygotować dźwięk polifoniczny ?

Ze znanego kursu XYZ HOBBY ROBOT (link podałem ostatnim razem) -znalazłem przykładowy przykładowy program pozytywka z funkcją jak:

int koziolek[][2]={

523,125,
587,125,
659,250,
698,125,
659,125,
587,250,
523,250,
1047,250,
784,250,
523,250,
1047,250,
784,250,
523,250,
1047,250,
784,1000 };

Ktoś orientuje się jak wyglądają kolęndy w tej samej postaci ?

Kod programu choinki zamieszczam poniżej - Tu proszę Kolegów o wsparcie : )

#define F_CPU 1000000L

#include

#include

int main(void)

{

/* Obsługa przycisków na porcie C */

/* PROG1 - LEDs; PROG2 - Buzzer; */

DDRC = 0x03; /* 0x03 binarnie 000 011 */

/* Wszystkie linie portu D będą wyjściami */

DDRD = 0xFF; /* 0xFF binarnie 1111 1111 */

/* Początek nieskończonej pętli */

while(1)

{

/* miejsce obsługę przyciska PROG1 - LEDY */

/*1-miganie diod LED na przemian zielone - czerwone na zmianę*/

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);

/*2-gaśnięcie połowy diod LED i zapalenie na przemian */

PORTD = 0x0f; /* Ładuje do PORTD wartość 0x0f*/

/* opóźnienie 1 sek. */

_delay_ms(1000);

PORTD |= 0xf0; /* ustawia bity nr. 4..7 */

_delay_ms(1000);

PORTD &= 0xaa; /* zeruje bity nr. 0,2,4,6 */

_delay_ms(1000);

PORTD ^= 0x0f; /* "odwraca" bity nr. 0..3 */

_delay_ms(1000);

PORTD = 0x00;

/* opóźnienie 2 sek. */

_delay_ms(2000);

/*3 - warian 2 na odwrót*/

PORTD = 0x0f; /* Ładuje do PORTD wartość 0x0f*/

/* opóźnienie 1 sek. */

_delay_ms(1000);

PORTD ^= 0x0f; /* "odwraca" bity nr. 0..3 */

_delay_ms(1000);

PORTD |= 0xf0; /* ustawia bity nr. 4..7 */

_delay_ms(1000);

PORTD &= 0xaa; /* zeruje bity nr. 0,2,4,6 */

_delay_ms(1000);

PORTD = 0x00;

/* opóźnienie 2 sek. */

_delay_ms(2000);

/*4 - miejsce na inny wariant świecenia diod LED*/

/* miejsce obsługę przyciska PROG2 - Buzzer */

int kolenda1[][2]={

};

int kolenda2[][2]={

};

int kolenda3[][2]={

};

}

}

__________

Komentarz dodany przez: Treker

Programy umieszczamy w tagach . Popraw to proszę!

Link to post
Share on other sites

Dobrze, że układ polutowałeś bo czasu zostało mało. Szkoda, że nie wrzuciłeś ostatecznej wersji schematu przed wzięciem lutownicy do ręki. Na szczęście poprawki nie są duże:

1. Wciąż brakuje kondensatorów na zasilaniu. Miedzy linią 3V a masą powinny być jakieś pojemności. Tego wymagają wszystkie układy cyfrowe, bo pobierają prąd bardzo krótkimi impulsami w czasie których bateria nie zapewni utrzymania poziomu zasilania. Minimum to 100nF tuż przy nóżkach procesora, ale przy tak słabej baterii to mały elektrolit 10-47uF też nie zawadzi.

2. AVCC musi być dołączone do +3V - to też jest zasilanie procesora, nie może wisieć w powietrzu.

3. Jeżeli dobrze znalazłem, to SG1 jest elementem piezo. Takie coś wygina się od przyłożonego napięcia a w układzie jest właściwie kondensatorem i nie przewodzi prądu stałego. A teraz wyobraź sobie, że zamiast SG1 włączyłeś kondensator 2nF - bo tyle to zwykle ma. Ładujesz go przez załączenie tranzystora i.. co dalej? Tranzystor się wyłącza a napięcie na buzzerku pozostaje, ugięcie się nie zmienia więc i fali akustycznej nie ma. Ten układ nie nadaje się do takiego głośniczka. Już lepszym rozwiązaniem będzie podpięcie SG1 wprost do pinu procesora, może przez opornik 22-33R. I to do takiego pinu, gdzie masz wyjście timera, np. PB1(OC1A). ICP nie jest wyjściem timera.

O programie następnym razem. Pomyśl w międzyczasie jak mógłbyś uruchomić na procesorze dwa współbieżne procesy: jeden co jakiś czas przełączający diodki a drugi co inny czas zmieniający częstotliwość dźwięków. Jedna główna pętla odpada. No i będziesz potrzebował prostych aranżacji znanych kolęd - znajdź coś na pianino, np. jakieś wprawki dla dzieci. Dowiedz się jakie częstotliwości odpowiadają którym dźwiękom w gamie chromatycznej powiedzmy w zakresie trzech oktaw. Tego wszystkiego będziesz potrzebował do stworzenia prostego, wbudowanego instrumentu grającego melodyjki 🙂

----------------------------------

EDIT (28-12-2015): Czy odkładasz projekt do następnych Świąt? A może kartka wielkanocna? 🙂

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.