W moim projekcie wykorzystuje pin SET do wyboru trybu sleep/work.
Ponieważ po wybudzenie jeśli dobrze pamiętam czujnik jest w trybie active mode, czyli ciągle śle nam dane po aurt, a nie na żądanie (co w moim projekcie było bardziej na rękę) to przestawiam go w tryb passive, zgodnie z dokumentacją:
Nie ma tam za dużo do wyboru, dlatego ja przygotowałem sobie dwie tablice w pamięci programu, już z obliczonym LRC:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tak więc potem ustawienie trybu pasywnego:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Odczyt w trybie pasywnym (na żądanie):
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Sama funkcja uart_pms_cmd_P jest bajecznie prosta:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Co ważne, trzeba wprowadzić pewną korektę wyników pomiarów PM zależnie od wilgotności.
Jeśli chodzi o ramkę otrzymaną z czujnika, to jest ona w dokumentacji opisana. Jeśli chcesz zobaczyć przykładową to mogę w wolnej chwili ściągnąć parę ramek, bo mam jeszcze kilka tych czujników na warsztacie.