Knihovny v Arduinu jsou předpřipravené balíčky kódu, které usnadňují práci s různými senzory, moduly nebo složitějšími funkcemi. Díky tomu nemusíme psát všechno od nuly, knihovna se postará o složitější části programu, např. komunikaci se senzorem.
Knihovny také zpravidla obsahují příklady použití (Examples). Najdeme je přes menu File -> Examples -> Název knihovny . Z příkladů můžeme snadno pochopit, jak pracovat s danou knihovnou.
DHT11 je jednoduché digitální čidlo, které měří teplotu a vlhkost. Připojuje se k Arduinu 3 piny: VCC, GND, DATA. Má plastové pouzdro s otvory pro proudění vzduchu a uvnitř obsahuje:
*Zdroj obrázků: https://howtomechatronics.com/tutorials/arduino/dht11-dht22-sensors-temperature-and-humidity-tutorial-using-arduino/ *
Příklad kódu s knihovnou DHTlib by Rob Tillaart:
#include <dht.h> // Include library
dht sensor; // Creates a DHT object
int outPin = 2; // Defines pin number to which the sensor is connected
void setup() {
Serial.begin(9600);
}
void loop() {
int readData = sensor.read11(outPin); // Starts the conversion
float temp = sensor.temperature; // Read temperature
float humid = sensor.humidity; // Read humidity
Serial.print("Temperature = ");
Serial.print(temp);
Serial.print("°C ");
Serial.print("Humidity = ");
Serial.print(humid);
Serial.println("% ");
Serial.println("");
delay(2000); // wait two seconds
}
I2C (Inter-Integrated Circuit) je sériová sběrnice, která umožňuje komunikaci mezi více zařízeními (senzory, displeje, moduly) pomocí pouze dvou vodičů:
Výhody I2C s Arduinem
Zdroj obrázku: https://www.hibit.dev/posts/102/communication-protocols-uart-i2c-and-spi
Zdroj obrázku: https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/
#include <LiquidCrystal_I2C.h>
Načte knihovnu pro ovládání LCD displeje s I2C adaptérem.
LiquidCrystal_I2C lcd(0x27, 16, 2);
Vytvoří objekt lcd s adresou 0x27. 16, 2 znamená, že displej má 16 sloupců a 2 řádky.
lcd.begin();
Inicializuje displej — připraví ho na použití.
lcd.clear();
Vyčistí obsah displeje.
lcd.setCursor(0,1);
Nastaví kurzor na 1. sloupec (indexuje se od 0) a 2. řádek.
lcd.print("Hello world!");
Vypíše text “Hello world!” od zadané pozice kurzoru.