Przejdź do głównej treści

Sterowanie Arduino komendami AT

Sterowanie Arduino komendami AT

Jakiś czas temu w ramach hobby napisałem ciekawy program pozwalający na sterowanie Arduino z poziomu terminala portu COM za pomocą komend AT, co pozwala na realizację wielu ciekawych funkcjonalności. Arduino może służyć na przykład jako system diagnostyczny, sterować pracą jakichś urządzeń a całe Arduino może być sterowane przez port COM za pomocą komend AT przez odpowiednio napisaną aplikację.

Co to jest Arduino i dlaczego warto go używać?

Arduino to popularna platforma open-source, która umożliwia tworzenie projektów elektronicznych zarówno początkującym, jak i zaawansowanym użytkownikom. Dzięki prostemu w użyciu interfejsowi, szerokiemu wsparciu społeczności i dostępności różnorodnych komponentów, Arduino stało się jednym z najczęściej wybieranych narzędzi w świecie elektroniki i programowania.

Zastosowania Arduino

Arduino znajduje zastosowanie w wielu dziedzinach, takich jak:

  • Automatyka domowa: Tworzenie inteligentnych systemów sterowania oświetleniem, ogrzewaniem czy alarmami.
  • Robotyka: Budowa robotów i pojazdów autonomicznych.
  • Internet Rzeczy (IoT): Łączenie urządzeń z siecią, aby umożliwić zdalne monitorowanie i sterowanie.
  • Edukacja: Nauka podstaw elektroniki i programowania w szkołach i na kursach.

Zalety korzystania z Arduino

  1. Łatwość obsługi: Arduino oferuje intuicyjny interfejs programowania oraz możliwość podłączenia różnych modułów bez skomplikowanego lutowania.
  2. Niskie koszty: Płytki Arduino oraz kompatybilne akcesoria są stosunkowo tanie i dostępne w wielu sklepach.
  3. Wsparcie społeczności: Ogromna liczba tutoriali, forów i przykładów projektów sprawia, że łatwo znaleźć pomoc w razie problemów.
  4. Modularność: Możliwość korzystania z szerokiego wyboru czujników, modułów komunikacyjnych i sterowników.

Popularne modele Arduino

  • Arduino Uno: Idealne dla początkujących, dzięki prostocie i uniwersalności.
  • Arduino Nano: Kompaktowy rozmiar sprawia, że świetnie sprawdza się w mniejszych projektach.
  • Arduino Mega: Doskonały wybór dla zaawansowanych projektów wymagających większej liczby pinów wejścia/wyjścia.
  • Arduino Leonardo: Oferuje zaawansowaną obsługę USB, co umożliwia tworzenie unikalnych urządzeń wejściowych.

Lista komend do sterowania Arduino przez port COM.

AT I drukuj ID ogólne
AT Z resetuj terminal
AT AM0 wyłącz tryb auto pin
AT AM1 włącz tryb auto pin
AT D ustaw wszystkie na domyślne
AT E0 wyłącz echo
AT E1 włącz echo
AT L0 wyłącz przesuw linii
AT L1 włącz przesuw linii
AT LA wczytaj wartości wyjścia analogowego z EEPROM
AT LD wczytaj wartości wyjścia cyfrowego z EEPROM
AT LS wczytaj zapisane ustawienia z pamięci EEPROM
AT M0 wyłącz pamięć
AT M1 włącz pamięć
AT MA monitoruj wszystkie wejścia analogowe
AT MD wyłącz monitor wejścia analogowego
AT MI XX monitoruj XX wejście analogowe, XX musi być 00..05
AT MM X ustaw tryb monitora analogowego, A = odczyt analogowy, D = odczyt cyfrowy, V = odczyt napięcia analogowego
AT OP X ustaw preskaler nadpróbkowania, X musi być 0..7
AT OR XX ustaw rozdzielczość ADC nadpróbkowania, XX musi być 0A..10
AT PD XY ustaw Dzielnik timera PWM, X=0 (D5, D6), 1 (D9, D10), 2 (D3, D11), X=0..1 => Y=1..5 i X=2 => Y=1..7
AT PR wydrukuj analogowe napięcie odniesienia napięcia
AT PS wydrukuj ustawienia
AT SA zapisz analogową wartość wyjściową na wyjściu PWM w pamięci EEPROM
AT SD zapisz cyfrową wartość wyjściową w pamięci EEPROM
AT SI TTTT ustaw interwał monitora analogowego w ms, TTTT = 0001..FFFF
AT SM XX Y ustaw tryb pinu XX (szesnastkowy numer pinu) jako Y, gdzie Y to I = wejście, O = wyjście, P = podciągnięcie wejścia
AT SR X ustaw analogowe napięcie odniesienia, D = domyślne 5 V, I = wewnętrzne 1,1 V, E = zewnętrzne przy użyciu pinu ARef
AT SV XXXX ustaw zewnętrzną analogową wartość napięcia odniesienia, automatyczne ustawienie zewnętrznego napięcia odniesienia, użyj pinu ARef
AT SS zapisz ustawienia w pamięci EEPROM

00 XX odczyt wejścia analogowego (gdzie XX mieści się w przedziale 00..05 dla Arduino Uno), przykład: 00 00 odczytuje wejście analogowe A0
01 XX odczytuje napięcie wejścia analogowego (gdzie XX mieści się w przedziale 00..05 dla Uno), przykład: 01 00 odczytuje napięcie wejścia analogowego A0
02 XX odczytuje wejście analogowe jako wartość cyfrową
10 XX odczytuje wejście cyfrowe (XX musi mieścić się w przedziale 02..0D dla Uno R3)
11 XX odczytuje stan pinu cyfrowego
13 XX Y TT odczytuje czas trwania impulsu z wejścia cyfrowego XX, Y jest stanem, TT jest limitem czasu w sekundach, XX = 02..0D, Y = 0 lub 1, TT = 00..FF
20 XX 0 zapisuje wartość LOW na wyjściu cyfrowym (XX musi mieścić się w przedziale 02..0D dla Uno R3)
20 XX 1 zapisuje wartość HIGH na wyjściu cyfrowym (XX musi mieścić się w przedziale 02..0D dla Uno R3)
21 XX YY zapisz wyjście analogowe, XX musi być wyjściem PWM jako heksadecymalne, YY musi być 00..FF
30 XX YYYY generuj falę prostokątną na wyjściu PWM XX, YYYY to częstotliwość jako wartość heksadecymalna
31 XX YYYY ZZZZ generuj falę prostokątną na wyjściu PWM XX, YYYY to częstotliwość jako wartość heksadecymalna, ZZZZ to czas generacji w msec jako heksadecymalne
32 XX wyłącz generowanie tonu na wyjściu PWM XX

Ten zestaw komend pozwala na realizację wielu ciekawych funkcjonalności. Kod był testowany pod Arduino Uno R3. Projekt jest do pobrania z github pod poniższym linkiem.

https://github.com/dariuszrorat/at-command-interpreter

15 listopada 2024 9

Kategorie

Tagi

Ocena wpisu

Dziękujemy!
()

Poprzedni wpis

Używam plików cookie

Moja strona wykorzystuje niezbędne pliki cookie i local storage, które są konieczne do prawidłowego działania strony i świadczenia usług. Możesz dowiedzieć się więcej w mojej polityce prywatności.