ZL27ARM: detekcja kolorów za pomocą czujnika TCS3200

Sygnał wyjściowy czujnika TCS3200D ma postać przebiegu prostokątnego o stałym wypełnieniu i zmiennej częstotliwości. Do pomiaru częstotliwości użyto TIMER2 mikrokontrolera, który sprawdzany jest sekwencyjnie w odpowiednim czasie wyznaczonym przez SYSTICK w celu odczytania liczby impulsów przypadających na  jednostkę czasu, a tym samym wyznaczenia wartości składowych światła. Konfiguracja liczników TIM2 oraz SYSTICK przebiega jak poniżej:

Po wykonaniu konfiguracji timerów oraz wyświetlacza LCD program w nieskończonej pętli przekształca dane dla odpowiedniego filtru koloru pobrane z licznika TIM2 w obsłudze przerwania SYSTICK na 4 jednocyfrowe cyfry w kodzie ASCII. Przykładowy kod dla zmiany liczby czterocyfrowej na 4 liczby jednocyfrowe w ASCII:

Zmienna FreqClear, podobnie jak FreqRed, FreqGreen oraz FreqBlue, jest aktualizowana w obsłudze przerwania licznika SYSTICK. W przerwaniu tym jest programowo zmieniany filtr koloru czujnika i po ściśle określonym czasie wyznaczonym przez SYSTICK następuje odczytanie wartości TIM2 oraz jego wyzerowanie, następnie rozpoczęcie pomiaru dla innego filtru koloru. Przy każdym wykonaniu przerwania mierzona jest inna składowa, ostatni pomiar tyczy się składowej światła dla filtru green po czym od początku sprawdzane są dane z TCS3200D dla filtru niebieskiego, czerwonego, przeźroczystego oraz zielonego:

Do pobrania

O autorze