Dzień 6
Void
typ zwracany przez funkcję. Void mówi, że dana funkcja nic nie zwraca po zakończeniu swojego działania.
W fukcjach takich jak void setup() lub void loop(), funkcja nie przechowuje żadnych wyników z tych funkcji, bo void.
Co to znaczy?
- w przypadku funkcji setup(), Arduino wykonuje ustawienia, takie jak konfiguracja pinów czy inicjalizacja komunikacji, ale po zakończeniu tej funkcji nie ma potrzeby zwracania jakiejkolwiek wartości, ponieważ jej jedynym celem jest konfiguracja wstępna.
- w przypadku loop(), Arduino wykonuje zawarte w niej instrukcje, po czym zaczyna je od nowa, nie przechowując niczego z poprzedniego przebiegu. Po prostu działanie zostaje zapętlone, w nieskończoność, wykonując kod raz za razem.
void setup() {
//wszystko stąd dzieje się tylko raz
}
void loop() {
//tutaj działania odbywają się w pętli
}
Biblioteki w Arduino
Biblioteki to zestawy funkcji i gotowych programów, które rozwiązują specyficzne zadania. Oznacza to, że zamiast pisać kod od zera, można po prostu zaimportować bibliotekę, która zawiera już wszystkie potrzebne funkcje i gotowe fragmenty kodu.
#include <Twoja_biblioteka.h>
Dodawanie biblioteki
Biblioteki dostępne w Arduino IDE
- Zainstalowane automatycznie: Arduino IDE zawiera wiele preinstalled bibliotek. Są to popularne biblioteki, takie jak obsługa komunikacji szeregowej, PWM, I2C, czy SPI
PWM - Pulse Width Modulation, or PWM, is a technique for getting analog results with digital means. Digital control is used to create a square wave, a signal switched between on and off. This on-off pattern can simulate voltages in between the full Vcc of the board (e.g., 5 V on UNO, 3.3 V on a MKR board) and off (0 Volts) by changing the portion of the time the signal spends on versus the time that the signal spends off. The duration of "on time" is called the pulse width. To get varying analog values, you change, or modulate, that pulse width. If you repeat this on-off pattern fast enough with an LED for example, the result is as if the signal is a steady voltage between 0 and Vcc controlling the brightness of the LED.
I2C - Inter-Integrated Circuit (I2C) Protocol - allows the communication between devices or sensors connected via Two Wire Interface Bus. Allows connecting several peripheral devices, such as sensors, displays, motor drivers, and so on, with only a few wires.
SPI - a library allowing the communication with SPI devices, with the Arduino as the controller device.
- Z opcją instalacji przez Manager Bibliotek: Aby to zrobić należy kliknąć na "Sketch" -> "Include Library" -> "Manage Libraries..." i wyszukaj interesującą Cię bibliotekę.
Alternatywne źródła bibliotek
- Strony takie jak github
- Strony producentów sprzętu elektronicznego
- Fora internetowe/grupy na sm
- Tworzenie własnych bibliotek
Dodawanie alternatywnych bibliotek:
- "Sketch" -> "Include Library" ->Add .Zip library..."
- Wskaż plik .zip z biblioteką lub folder, w którym się znajduje.
Implementacja biblioteki do kodu
Dodając bibliotekę warto sprawdzić jej dokumentację, żeby móz z niej poprawnie korzystać lub przejrzeć internet w celu znalezienia przykładowych wykorzystań bibliotek.
Przykłady:
Wyświetlacz ciekłokrystaliczny - LiquidCrystal
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Hello, World!");
}
Serwomechanizm - Servo
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9);
myServo.write(90); //Ustaw servo na 90 stopni
}
Czytnik DHT - temperatura - DHT
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
dht.begin();
}