Ogólnie uważam że ktoś nieznający się na programowaniu powinien właśnie użyć PLC. Taka zabawka, gdzie ludzie siedzieli i zrealizowali całe urządzenie by użytkownik nie przewrócił się z swojego rowerka (a przynajmniej, by nie dostał w twarz związanym z problem działania np mikrokontrolera).
Ostatnio uruchamiałem HC-06 i niestety dużo było materiałów pod arduino. No cóż jeden działający przykład rozlał się po internecie i stał się jakimś typowym examplem jak to należy robić... Przykład strasznie krzywy:
https://www.instructables.com/id/AT-command-mode-of-HC-05-Bluetooth-module/
No ale powiedzmy, przykład nie ma być wydajny, ale poważnie na odczyt i pisanie w pętli i jeszcze ifami?
Dorzućmy jeszcze do tego nie znaną implementację odczytywania i pisania po serialu. Jeśli to też jest rozwiązane na jakimś poolingu to mamy najbardziej niewydajną implementację jaka jest możliwa.
Dla przykładu moja implementacja (z wykorzystaniem przerwań oraz DMA) powoduje odczyt danych (nie ważne jak długich) w ciągu około 50 cykli (obsługa przerwania) a wysyłanie 470 cykli (znów nie ważne jak dużo danych i to jeszcze można zmniejszyć bo używam HAL od ST).
Chodzi mi o to, że to wszystko dobrze wygląda w trywialnych przypadkach, ale te rozwiązania w bardziej złożonych systemach (np PLC) nie sprawdzą się, bo są napisane tak aby działały na wszystkich sprzętach jakie wspiera arduino a nie tak aby jak najlepiej działały i wykorzystywały bajery mające przyśpieszyć pracę programu.