Podłączenie czujnika do Arduino – ogólna instrukcja krok po kroku
Podłączenie czujnika do Arduino zależy od jego typu (np. temperatury, odległości, ruchu czy wilgotności), ale większość popularnych modeli łączy się za pomocą pinów VCC (zasilanie 5 V lub 3,3 V), GND (masa) i pinów sygnałowych (np. Data, Trig/Echo). Poniżej znajdziesz ogólny przewodnik z przykładami dla najczęstszych czujników, schematami połączeń, kodem oraz wskazówkami bezpieczeństwa.
Krok 1 – przygotowanie sprzętu i bezpieczeństwa
Przed rozpoczęciem przygotuj elementy i zadbaj o podstawowe zasady bezpieczeństwa:
- zestaw elementów – płytka Arduino Uno (lub podobna), wybrany czujnik, przewody jumper (samcze–samcze lub samcze–żeńskie), ewentualnie rezystor podciągający 4,7 kΩ do protokołu 1-Wire (np. DS18B20);
- bezpieczeństwo – odłącz Arduino od USB/zasilania przed podłączaniem. Nigdy nie podłączaj pinów na włączonym układzie – grozi uszkodzeniem.;
- sprawdzenie specyfikacji – upewnij się, czy czujnik wymaga 5 V czy 3,3 V. Arduino Uno udostępnia piny 5 V, 3,3 V, GND oraz wejścia/wyjścia cyfrowe i analogowe.
Krok 2 – identyfikacja pinów czujnika
Większość czujników ma 3–4 piny i pełnią one następujące funkcje:
- VCC/VIN/5V – zasilanie (zazwyczaj do 5 V z Arduino);
- GND – masa (połączenie z pinem GND Arduino);
- dane/sygnał – linia sygnałowa (do pinu cyfrowego lub analogowego, zależnie od czujnika).
Przykłady pinów dla typowych czujników:
| Czujnik | Piny | Uwagi |
|---|---|---|
| DS18B20 (temperatura) | GND, VDD, DQ | Wymaga rezystora 4,7 kΩ między DQ a 5 V |
| HC-SR04 (odległość) | VCC, GND, Trig, Echo | Trig (wyjście), Echo (wejście), zakres pracy: 2–450 cm przy 5 V |
| PIR (ruch) | VCC (+5 V), OUT (dane), GND | Proste 3 piny |
| BME280 (wilgotność/ciśnienie/temperatura) | VIN, GND, SDA (A4), SCL (A5) | Interfejs I2C |
| DHT11 (temperatura/wilgotność) | VCC, Data, GND | Wymaga biblioteki DHT |
Krok 3 – podłączenie: schematy dla popularnych czujników
Użyj płytki stykowej dla wygody i porządku w przewodach. Jeśli czujnik ma otwory lub siatkę akustyczną, skieruj je do przodu względem obiektu pomiaru:
Przykład 1 – czujnik temperatury DS18B20 (1-Wire)
Podłącz według schematu:
- GND – do pinu GND Arduino;
- VDD – do pinu 5 V Arduino;
- DQ – do pinu cyfrowego (np. D2);
- rezystor 4,7 kΩ – między DQ a 5 V (rezystor podciągający);
- wiele czujników – łącz wszystkie linie DQ równolegle do jednego pinu.
Przykład 2 – czujnik odległości HC-SR04 (ultradźwiękowy)
Podłącz według schematu:
- VCC – do 5 V Arduino;
- GND – do GND Arduino;
- Trig – do pinu D7 (wyjście);
- Echo – do pinu D6 (wejście);
- zakres pracy – ok. 2–450 cm przy 5 V.
Przykład 3 – czujnik PIR (ruch)
Podłącz według schematu:
- VCC – do 5 V Arduino;
- OUT – do pinu cyfrowego (np. D2);
- GND – do GND Arduino.
Przykład 4 – czujnik BME280 (I2C)
Podłącz według schematu:
- VIN – do 5 V Arduino;
- GND – do GND Arduino;
- SDA – do A4 Arduino;
- SCL – do A5 Arduino.
Przykład 5 – czujnik DHT11
Podłącz według schematu:
- VCC – do 5 V Arduino;
- Data – do pinu cyfrowego (np. D2);
- GND – do GND Arduino.
Krok 4 – instalacja bibliotek i kod testowy
Zainstaluj wymagane biblioteki i uruchom kod testowy:
- Arduino IDE – uruchom program i podłącz płytkę przez USB;
- biblioteki – w Arduino IDE: Szkic → Dołącz bibliotekę → Zarządzaj bibliotekami;
- DS18B20/DHT11 – zainstaluj OneWire + DallasTemperature lub DHT sensor library;
- BME280 – zainstaluj Adafruit BME280;
- HC-SR04/PIR – mogą działać bez dodatkowych bibliotek.
Przykładowy kod dla HC-SR04 (pomiar odległości):
#define TRIG_PIN 7
#define ECHO_PIN 6
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
digitalWrite(TRIG_PIN, LOW);
}
void loop() {
long time;
double distance;
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
time = pulseIn(ECHO_PIN, HIGH);
distance = time / 58.0; // przeliczenie na cm
Serial.print("Dystans: ");
Serial.print(distance);
Serial.println(" cm");
delay(100);
}
Wgraj szkic (Narzędzia → Płytka → Arduino Uno), a następnie otwórz Monitor szeregowy (Narzędzia → Monitor szeregowy, 9600 baud).
Kod dla PIR (wykrywanie ruchu):
#define PIR_PIN 2
void setup() {
Serial.begin(9600);
pinMode(PIR_PIN, INPUT);
}
void loop() {
if (digitalRead(PIR_PIN) == HIGH) {
Serial.println("Ruch wykryty!");
delay(50);
}
delay(100);
}
Krok 5 – testowanie i rozwiązywanie problemów
Wgraj kod i otwórz Monitor szeregowy – dane powinny pojawiać się co około 1 sekundę.
Jeśli coś nie działa, sprawdź najczęstsze przyczyny i rozwiązania:
- brak odczytu: sprawdź połączenia multimetrem, dodaj rezystor podciągający,
- niestabilne dane: użyj kondensatora 100 µF na zasilaniu, skalibruj PIR (odczekaj ~30 s bez ruchu),
- i2c nie działa: uruchom skaner I2C (biblioteka Wire) – adres BME280 to zwykle 0x76 lub 0x77,
- wiele czujników: użyj magistrali (I2C/1-Wire) – do 10+ DS18B20 na jednym pinie,
- zasilanie: dla wielu urządzeń zastosuj zewnętrzny zasilacz 5 V i wspólną masę (GND).
Dla bardziej zaawansowanych projektów warto użyć Fritzing do tworzenia schematów, a w przypadku czujnika koloru TCS3200 pamiętaj o czterech pinach sygnałowych plus zasilanie.






