Przykład użycia zestawu P-NUCLEO-IKA02A1 do obsługi elektrochemicznych czujników gazów

Artykuł prezentuje prosty przykład wykorzystania zestawu deweloperskiego P-NUCLEO-IKA02A1 zaprojektowanego do rozwoju aplikacji wykorzystujących elektrochemiczne czujniki gazów. Przygotowany program odczytuje i przelicza odczytane z przetwornika analogowo-cyfrowego wartości do odpowiednich zmiennych. Dane można wyświetlić później na ekranie LCD lub przesłać dalej, np. przez port szeregowy.

Zdj. 1. Połączony zestaw P-NUCLEO-IKA02A1

Zestaw składa się z płytki rozwojowej NUCLEO-L053R8 z mikrokontrolerem z rodziny STM32L0 oraz nakładki przeznaczonej do obsługi elektrochemicznych czujników gazu. Nakładka wyposażona jest we wzmacniacze operacyjne TSU111, czujnik temperatury STLM20 oraz czujnik tlenku węgla Figaro TGS5141. Ten ostatni można wymienić na inny czujnik gazu. Na płytce znajdują się pady lutownicze, do których pasują sensory z footprintami: PCD13,5, PCD17, Mini oraz TGS5141.

Do zaprogramowania mikrokontrolera STM32 wykorzystano standardowe, darmowe narzędzia polecane przez firmę STMicroelectronics – STM32CubeMX oraz środowisko System Workbench for STM32. Płytka do obsługi czujników komunikuje się z mikrokontrolerem za pośrednictwem trzech sygnałów analogowych. Fabrycznie na płytce sygnały są zwarte do następujących pinów:

Sygnał Pin płytki do obsługi czujników
Pin mikrokontrolera STM32L053
Czujnik CO A3 PB0
Napięcie referencyjne A2 PA4
Czujnik temperatury A5 PC0

W razie potrzeby, zmieniając położenie zworek SMD, można podłączyć w.w. sygnały do innych pinów złącza. Więcej szczegółów można znaleźć w instrukcji do zestawu.

Szczegółowy opis narzędzia CubeMX znajduje się w artykule:

STM32Cube graficzny konfigurator STM32

Aby móc wyliczyć stężenie CO oraz dokonać kompensacji temperaturowej należy odebrać wartość wszystkich trzech napięć. W związku z tym, w zakładce Pinout, należy powyższe piny mikrokontrolera ustawić jako wejścia analogowe. W tym celu należy włączyć kanały przetwornika ADC: czwarty, ósmy i dziesiąty. Można do zrobić włączając na liście ADC opcje IN4, IN8, IN10. Ustawienia pinów przedstawia poniższy obraz:

Rys. 2. STM32Cube – zakładka Pinout

W zakładce Configuration należy ustawić konfigurację peryferiów, w tym przypadku przetwornika analogowo-cyfrowego. Opcje, które można ustawić to m.in. Clock Prescaler na Asynchronous clock mode divided by 8, Resolution na ADC 12-bit resolution, oraz Sampling Time na 160.5 Cycles. Poniżej znajduje się obraz demonstrujący pełną konfigurację użytą w przykładzie:

Rys. 3. STM32Cube – konfiguracja przetwornika ADC