Podstawy robotyki: Pierwszy program! | Lekcja 2

Kurs_podstawy_robotyki_ikonkaPoniższy artykuł to jedna z części tworzonego na bieżąco kursu, który pomoże Ci opanować podstawy robotyki z wykorzystaniem platformy Arduino. Chcesz przejść do pozostałych lekcji?

Znajdziesz je tutaj: Podstawy robotyki

Blink

Pierwszym programem, który napiszemy, będzie sterowanie wbudowaną diodą na płytce Arduino. Jest to najprostsza rzecz, jaką można za pomocą płytki zrobić. Zaczynają od tego dosłownie wszyscy, więc zacznijmy i my.

Poniżej znajduje się 6 prostych kroków pokazujących, jak zapalić wbudowaną diodę LED w Arduino:

Krok 1

Podłącz Arduino

Podłącz Arduino do komputera za pomocą kabla USB.

Podłączenie Arduino do komputera
Arduino Uno podłączasz do komputera za pomocą przewodu USB typu A.
Krok 2

Otwórz program Arduino IDE

Otwórz program Arduino IDE na swoim komputerze.

Arduino IDE
Adruino IDE domyślanie otwiera się z pustym szkicem.
Krok 3

Otwórz przykładowy kod

Wybierz przykładowy kod "Blink" z menu "Plik"->"Przykłady"->"01.Basics"->"Blink".

Arduino IDE zawiera mnóstwo przykładowych programów.
Arduino Blink
Kod programu Blink
Krok 4

Wybierz płytkę Arduino i port szeregowy

Wybierz odpowiednią płytę Arduino i port szeregowy w menu "Narzędzia". Jeśli nie wiesz pod jakim portem działa Arduino to odepnij kabel USB od komputera, podłącz ponownie i zwróć uwagę, jaki nowy port COM pojawił się na liście. To będzie port Arduino.

Wybór portu arduino
Ilość portów będzie dla każdego komputera inna.
Krok 5

Wgraj kod do Arduino

Wgraj kod do płytki Arduino za pomocą przycisku "Wgraj" na pasku narzędzi.

Wgrywanie programu do Arduino
Wgranie orpogramowania do płytki chwilę potrwa.
Krok 6

Obserwuj wbudowaną diodę LED

Teraz wbudowana na płytce dioda LED powinna migać co 1 sekundę. Jeśli chcesz zmienić częstotliwość migania diody, zmodyfikuj wartość zmiennej "delay" w kodzie.

Animacja diody LED
Do symulacji Arduino użyto narzędzia: wokwi.com

Omówienie kodu

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Funkcja Setup

Funkcja setup() jest wywoływana podczas uruchamiania szkicu. Używana jej do inicjalizacji zmiennych, trybów pinów, rozpoczęcia korzystania z bibliotek, itp. Funkcja setup() będzie uruchamiana tylko raz, po każdym włączeniu zasilania lub zresetowaniu płytki Arduino.

W naszym przykładzie w funkcji setup deklarujemy, że port do którego przypięta jest dioda LED ma być obsługiwany jako „wyjście”.

pinMode(pin, mode)

Gdzie:

  • PIN - numer pinu.
    W przypadku wbudowanej diody jest to pin numer 13 lub zmienna globalna LED_BUILTIN
  • MODE - deklaracja działania portu
    INPUT, OUTPUT, lub INPUT_PULLUP
    • INPUT – port obsługiwany jako wejście danych
    • OUTPUT – port obsługiwany jako wyjście danych
    • INPUT_PULLUP – odwrócenie logiki portu
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

W naszym przykładzie zadeklarowaliśmy, że pin (LED_BUILTIN) wbudowanej diody LED ma być obsługiwany jako wyjście (OUTPUT). To oznacza możemy wydawać polecenia przez ten pin. Niejako wysyłamy informacje przez ten port.

Jeśli ten PIN zadeklarowalibyśmy jako INPUT, to oznacza, że możemy odbierać dane na tym pinie.

Funkcja Loop

Po utworzeniu funkcji setup(), która inicjalizuje i ustawia wartości początkowe, funkcja loop() robi dokładnie to, co sugeruje jej nazwa, czyli zapętla kolejno, pozwalając Twojemu programowi zmieniać się i reagować. Użyj jej do aktywnego sterowania płytką Arduino.

Przykład użycia:

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Idąc kolejno:

  1. Ustawiamy stan wysoki na Pinie LED (włączamy diodę)
  2. Robimy przerwę 1000 milisekund
  3. Ustawiamy stan niski na pinie LED (wyłączamy diodę)
  4. Robimy przerwę 1000 milisekund
 

Całość powtarzamy w nieskończoność.

Korzystając z funkcji digitalWrite ustawiamy dla danego pinu stan wysoki lub niski. Czyli mówiąc potocznie włączamy lub wyłączamy prąd na tym pinie.

digitalWrite(pin, value)

Gdzie:

  • pin - numer pinu.
  • value - deklaracja stanu
    HIGH lub LOW

Funkcja Delay

Wstrzymuje program na czas (w milisekundach) podany jako parametr. W jednej sekundzie jest 1000 milisekund.
Poprzednia lekcja
Następna lekcja

Interesuje Cię praktyczne wykorzystanie robotyki w projektach komercyjnych?
Sprawdź nasze realizacje!

Marek Golan

Założyciel Dogtronica. Specjalista IT z kilkunastoletnim stażem. Miłośnik elektroniki oraz technologii blockchain. Pamięta czasy IE6 jakby to było wczoraj :)

Zostaw komentarz:

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.