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:
//konfiguracja licznika TIM2 TIM_TimeBaseStructure.TIM_Period = 9999; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //konfiguracja sygnału taktujacego TIM2 TIM_TIxExternalClockConfig (TIM2, TIM_TIxExternalCLK1Source_TI1,TIM_ICPolarity_Rising, 0x0); //wlaczenie licznika TIM_Cmd(TIM2, ENABLE); //pobranie informacji o częstotliwosci RCC_GetClocksFreq(&RCC_Clocks); //konfiguracja SysTick SysTick_Config(RCC_Clocks.SYSCLK_Frequency/100);
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:
//aktualizacja informacji, filtr - Clear tmp = FreqClear; Clear3=(tmp % 10) + 0x30;//jednosci tmp = tmp /10; Clear2=(tmp % 10) + 0x30;//dziesiatki tmp = tmp / 10; Clear1=(tmp % 10) + 0x30;//setki tmp = tmp / 10; Clear0=(tmp % 10) + 0x30;//tysiace
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:
void SysTick_Handler(void)
{
extern uint16_t licznik;
extern uint16_t FreqRed;
extern uint16_t FreqGreen;
extern uint16_t FreqBlue;
extern uint16_t FreqClear;
switch(licznik)
{
case 7 :
//odczyt wartosci licznika
FreqGreen = TIM_GetCounter(TIM2);
//przypisanie nowej wartosci do zmiennej
licznik = 0;
break;
case 6 :
//zmiana wybranego filtru swiatla ukladu TCS3200D
TCS3200_DISABLE;
TCS3200_Green;
TCS3200_ENABLE;
//przypisanie nowej wartosci do zmiennej
licznik = 7;
break;
case 5 :
//odczyt wartosci licznika
FreqClear = TIM_GetCounter(TIM2);
//przypisanie nowej wartosci do zmiennej
licznik = 6;
break;
case 4 :
//zmiana wybranego filtru swiatla ukladu TCS3200D
TCS3200_DISABLE;
TCS3200_Clear;
TCS3200_ENABLE;
//przypisanie nowej wartosci do zmiennej
licznik = 5;
break;
case 3 :
//odczyt wartosci licznika
FreqRed = TIM_GetCounter(TIM2);
//przypisanie nowej wartosci do zmiennej
licznik = 4;
break;
case 2 :
//zmiana wybranego filtru swiatla ukladu TCS3200D
TCS3200_DISABLE;
TCS3200_Red;
TCS3200_ENABLE;
//przypisanie nowej wartosci do zmiennej
licznik = 3;
break;
case 1 :
//odczyt wartosci licznika
FreqBlue = TIM_GetCounter(TIM2);
//przypisanie nowej wartosci do zmiennej
licznik = 2;
break;
default :
//zmiana wybranego filtru swiatla ukladu TCS3200D
TCS3200_DISABLE;
TCS3200_Blue;
TCS3200_ENABLE;
//przypisanie nowej wartosci do zmiennej
licznik = 1;
break;
}
TIM_SetCounter(TIM2,0);
}


Cztery dekady Vision Engineering Germany – precyzja, innowacje i ergonomiczna mikroskopia od 1986 roku
Taśma poliimidowa (Kapton®) w elektronice: zastosowania i właściwości
Nowe technologie akumulatorowe przyspieszą elektryfikację pojazdów terenowych 

![https://www.youtube.com/watch?v=gHcP8AajoN4 Szymon Robak oprowadza po katowickim Laboratorium Badań Kompatybilności Elektromagnetycznej w Sieć Badawcza Łukasiewicz - Instytucie Sztucznej Inteligencji i Cyberbezpieczeństwa. Zapraszamy na film! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/06/Szymon-Robak-tytulowe.png)
![https://www.youtube.com/watch?v=BgxJVTwYJ-s Zapraszamy do obejrzenia filmu i wysłuchania krótkich wypowiedzi prelegentów Hardware Forum 2026 i organizatorów majowej konferencji dla inżynierów z branży elektronicznej: Konrad Bruliński z Lemontech, prof. Krzysztof Kulpa z Politechniki Warszawskiej, Zbigniew Huber z FLC, Ewa Załupska z firmy KROK, Jerzy Kozieł z MPTECH, Grzegorz Potyralski z VIGO Photonics, dr Krzysztof Czuba z Politechniki Warszawskiej, Anna Beata Kalisz Hedegaard z Quantum Security Defence, Adrian Cichosz z Elhurt Dystrybucja Anna Kamińska z Creotech Quantum, oraz Łukasz Jaeszke i Adam Jaeszke z TEK.day [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/05/tytulowe-film-1.png)


