logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[C/C++] Losowe kolory diody RGB.

28 Lis 2011 22:09 3752 14
  • #1 10195180
    Konto nie istnieje
    Konto nie istnieje  
  • #2 10195567
    mungo
    Poziom 19  
    A na przykład generator 3 liczb losowych z zakresu 0-255 (RGB)?? Tutaj coś o liczbach losowych na uP link
  • #3 10196480
    szelus
    Poziom 34  
    Jeżeli kolory z tabeli to prościej. Tablicujesz wszystkie, wymagane kolory i generujesz losowy indeks do tabeli korzystając np. z funkcji rand.
  • #4 10196495
    mungo
    Poziom 19  
    Raczej na mikrokontrolery niema tak po prostu biblioteki time i zwykłego rand() wyżej podałem link do liczb losowych na mikroprocesory.
  • #6 10202499
    Konto nie istnieje
    Konto nie istnieje  
  • #7 10202801
    INTOUCH
    Poziom 30  
    Ciekawe czy wiszący w powietrzu komparator da radę wystarczająco szybko dla twoich celów genrować losowe ziarno?

    Jeśli robisz RBG na dyskoteki to proponuję do generacji ziarna losowego wybrać sygnał audio (np. mikrofon).
  • #8 10202957
    xamrex
    Poziom 28  
    INTOUCH napisał:
    Jeśli robisz RBG na dyskoteki to proponuję do generacji ziarna losowego wybrać sygnał audio (np. mikrofon).


    I powiedz mi do czego ma podłączyć ten mikrofon???!!
    Do ADC? którego nie ma ?

    Dodano po 30 [sekundy]:

    Może po prostu prościej byłoby użyć jakiegoś uc z ADC.. a nie bawić się skąd wziąć ziarno..
  • #9 10203272
    Konto nie istnieje
    Konto nie istnieje  
  • #10 10203396
    INTOUCH
    Poziom 30  
    Przykład:"Mikrokontrolery AVR w praktyce" J. Doliński Ćwiczenie 6 strona 351.

    Pytanie tylko czy do założonych przez autora celów Komparator analogowy wystarczy.

    Cytat:

    Antares95
    Chciałbym napisać program który będzie wybierał losowy kolor i będzie płynnie do niego przechodził z obecnego,...

    Żeby ludzkie oko zauważyło jakieś zmiany generacja liczby losowej nie może odbywać się zbyt szybko.
    Najprościej bez kombinacji wykorzystać przetwornik ADC. Ale też trzeba go umieć wykorzystać sensownie.
    Jeszcze jedno wcale nie upieram się że do tego celu musi być wykorzystany komparator analogowy i ATtinny2313. Osobiście też doradzam mikrokontroler z ADC. Jeśli Antares95 będzie bardzo uparty żeby wykorzystać ATtinny2313 bo ma go w zakupionym przez siebie zestawie rozwojowym (ewaluacyjnym, starter development kit, ... jak zwał tak zwał) to mówi się trudno.
    Jeśli jest na tyle zaawansowany, żeby od podstaw zaprojektować płytkę z Megą8 lub wyżej, to osobiście zalecam mu zakup wyżej wymienionych mikrokontrolerów.
    ATMega8 jest niewiele większy od ATtinny2313 i posiada wszystko co trzeba.

    Uwaga!!!.
    Przykłady w książce są napisane dla nieprodukowanego mikrokontrolera.
    Przykłady są napisane dla mocno nieaktualnej wersji kompilatora C AVR-GCC3.2, dlatego też radzę nie przepisywać na głupa bo program może się nie skompilować.
    ATtinny2313 to następca opisywanego w tej książce AT903213.
  • #11 10204609
    szelus
    Poziom 34  
    A po co losowe ziarno? Czy to jest jakiś problem, że po każdym włączeniu układ będzie generował tą samą, pseudolosową sekwencję kolorów? Przecież i tak nikt tego nie zapamięta.
  • #12 10204892
    Konto nie istnieje
    Konto nie istnieje  
  • #13 10205030
    dondu
    Moderator na urlopie...
    Antares95 napisał:
    No nic będę musiał chyba zastosować pomysł ze stałym ziarnem.
    Dziękuję za pomoc.

    Zawsze można iść w kierunku "ciemnej strony mocy" :) czyli:

    Spróbuj ustawić jako wejście pin znajdujący się obok najbardziej "zakłóceniogennych" pinów twojego projektu, i zaprojektuj do niego ścieżkę, która będzie zbierać zakłócenia. W ten sposób otrzymasz jednobitowy generator losowy, który można składać w bajt (co jakiś czas) i otrzymując liczbę losową, podobnie jak zaprezentowałem to w kodzie tutaj: http://mikrokontrolery.blogspot.com/2011/04/generator-liczb-losowych.html
    (przepraszam, że artykuł jeszcze nie jest dokończony - zapomniałem o nim :oops: )

    Niestety przy takim wymuszaniu zakłóceń na niespolaryzowanym pinie istnieje ryzyko, że może to przynieść oprócz wartości dodanej (źródło szumu), także wartość ujemną, czyli problem z poprawnym działaniem mikrokontrolera. Tutaj zostaje tylko droga eksperymentalna.

    Ciekawi mnie, czy uda Ci się tak rozwiązać problem - napisz o rezultatach jeżeli w tym kierunku pójdziesz.
  • #15 10222570
    Konto nie istnieje
    Poziom 1  
REKLAMA