Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Prosty stroboskop LED - ATtiny13 [C]

motocross.team 08 Cze 2010 01:18 4676 0
  • Witam wszystkich !

    Jakiś czas temu zrobiłem kumplowi na zaliczenie stroboskop na led'ach i zauważyłem, że jest kilka osób zainteresowanych tym małym ale jakże cieszącym urządzeniem więc postanowiłem wam udostępnić. Niestety nie będę się rozpisywał jak co i gdzie bo to prosty układzik w razie jakichkolwiek pytań z chęcią odpowiem. Przepraszam za brak zdjęć i filmu ale ja już układu nie mam a i działanie każdy chyba może sobie wyobrazić.

    Code:

    /**********************     
    ***                  ***   
    ***  STROBOSKOP LED  ***
    ***                  ***
     *********************/

    // autor: Patryk Pytel

    // GŁÓWNA BIBLIOTEKA I DEFINICJA CZĘSTOTLIWOŚCI
    #include <avr/io.h>
    #define F_CPU 4800000UL

    // BIBLIOTEKI DODATKOWE
    #include <util/delay.h>

    // DEFINICJE
    #define LED_ON PORTB &= ~(0x01)      
    #define LED_OFF PORTB |= 0x01

    unsigned int napiecie;      // Zmienna do przechowywania wyniku pomiaru napięcia
    unsigned int czas;         // Zmienna do przechowywania czasu

    void Inicjalizacja(void)
    {
       // Konfiguracja portów
       DDRB = 0x01; 
       PORTB |= _BV(0x01);

       // Konfiguracja ADC   

       // wybranie źródła napięcia - ADC3
       ADMUX |= _BV(MUX0);      
       ADMUX |= _BV(MUX1);
       
       // Wyrównanie do lewej (odczyt 8 starszych bitów z ADCH)
       ADMUX |= _BV(ADLAR);
       
       // Zezwolenie na konwersję   
       ADCSRA |= _BV(ADEN);
          
       // Wybranie częstotliwo¶ci dla taktowania przetwornika  (1/128 częstotliwosci zegara kontrolera)
       ADCSRA |= _BV(ADPS0);   
       ADCSRA |= _BV(ADPS1);
       ADCSRA |= _BV(ADPS2);
    }

    int main(void)
    {
       Inicjalizacja();  // Inicjalizacja kontrolera   

       while(1)
       {
          ADCSRA |= _BV(ADSC);         // Rozpoczęcie przetwarzania
       
          while(bit_is_set(ADCSRA,ADSC))   // Oczekiwanie na zakończenie przetwarzania   
          {};
          
          napiecie = ADCH; // Wpisanie wyniku pomiaru do zmiennej "napiecie"
          
          napiecie = napiecie<<(2); // Mnożenie * 4
          
          czas = napiecie; // Wpisanie wartości zmiennej "napięcie" do zmiennej "czas"
          
          LED_ON;
          _delay_ms(10); // czas błysku
          LED_OFF;
          _delay_ms(czas);
       }
    }
    Komentarze są trochę śmieszne ale kumplowi bardziej się takie podobały(z innych nic nie rozumiał - leń).

    Układ zbudowany jest na wciąż popularnym chociaż już nie zalecanym uC firmy atmel mianowicie ATtiny13 ponieważ taki w zupełności do tego wystarcza. Częstotliwość błysku ustawia się za pomocą potencjometru w tym wypadku montażowego (można wstawić taki z mini pokrętłem) wiem wiem, że to nie do końca praktyczne ale dla mnie liczy się miniaturyzacja kosztów i rozmiarów a jak już wspominałem ten układ był dla kumpla. Czas błysku można zmienić w programie ja sobie go obrałem "na oko" i już tak zostało. Po ustawieniu dużej częstotliwości błysków stroboskop śmiało może zmienić się w latarkę.

    Koszty konstrukcji są niewielkie(strzelam z cenami):
    - 9xLed (jakieś super jasne ;D) - 7zł
    - ATtiny13 - 4zł
    - 7805 - 1zł
    - BC327 - 0,4zł
    - rezystory - 0,5zł
    - kondensatory - 1zł
    - potencjometr montażowy - 0,5zł
    - podstawka - 0,5zł
    - płytka - trudno określić poniżej 1zł
    - robota - bezcenna
    Razem może jakieś: 15zł

    W załączniku macie pliki z Eagle tzn. schemat i płytkę oraz cały program napisany w C, Makefile, hex'a (ogólnie wszystkie pliki z WinAVR) jakby ktoś chciał sobie sprawdzić i na szybko coś pozmieniać. Na schemacie są narysowane tylko 4 diody(nie chciało mi się wstawiać) ale w rzeczywistości na płytce jest ich 9.
    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • PCBway