Przejdź do treści

nRF52840 – nowoczesny układ SoC dla IoT i systemów bezprzewodowych

  • przez

nRF52840 to zaawansowany układ typu SoC (System-on-Chip) firmy Nordic Semiconductor, zaprojektowany z myślą o aplikacjach IoT, urządzeniach niskomocowych oraz komunikacji bezprzewodowej. Jest to jeden z najpopularniejszych układów wykorzystywanych w projektach Bluetooth Low Energy (BLE), Thread, Zigbee oraz USB.

Charakterystyka techniczna

  • Procesor: ARM Cortex-M4F (64 MHz, FPU)

  • Pamięć Flash: 1 MB

  • RAM: 256 KB

  • Łączność:

    • Bluetooth 5 / BLE (Long Range, Mesh)

    • Thread

    • Zigbee

    • NFC

    • USB 2.0 (device)

  • Niskie zużycie energii (tryby sleep)


Zalety nRF52840

✅ 1. Wieloprotokołowość

Układ obsługuje wiele standardów komunikacji bezprzewodowej, co pozwala używać go w różnych projektach bez zmiany sprzętu.

✅ 2. Duża ilość pamięci

1 MB Flash i 256 KB RAM umożliwiają tworzenie rozbudowanych aplikacji, w tym z aktualizacją OTA.

✅ 3. Niskie zużycie energii

Idealny do urządzeń bateryjnych – sensorów, beaconów, wearables.

✅ 4. Obsługa USB

Może działać jako urządzenie USB (np. klawiatura, mysz, CDC).

✅ 5. Dobre wsparcie narzędziowe

  • Arduino IDE

  • Nordic SDK / nRF Connect SDK

  • Zephyr RTOS


Wady nRF52840

❌ 1. Wyższa cena

Droższy niż prostsze mikrokontrolery (np. ATmega328P, ESP8266).

❌ 2. Większa złożoność

Konfiguracja BLE i stosów sieciowych jest trudniejsza dla początkujących.

❌ 3. Brak Wi-Fi

W przeciwieństwie do ESP32 nie posiada natywnej obsługi Wi-Fi.

❌ 4. Wymaga dobrej anteny

Źle zaprojektowana antena może znacząco pogorszyć zasięg.


Zastosowania

  • Inteligentne czujniki IoT

  • Smart home

  • Urządzenia BLE (beacony, wearables)

  • Przemysłowe systemy monitoringu

  • Urządzenia USB HID


Przykład prostego kodu w Arduino IDE (miganie diodą LED)

Poniższy przykład działa na płytkach takich jak Adafruit Feather nRF52840 lub nRF52840 Dongle (po zainstalowaniu odpowiedniego pakietu płytek w Arduino IDE).

🔧 Kod: Blink LED

// Przykład dla nRF52840
// Miganie wbudowaną diodą LED

const int ledPin = LED_BUILTIN;

void setup() {
pinMode(ledPin, OUTPUT);
}

void loop() {
digitalWrite(ledPin, HIGH); // LED ON
delay(500); // 500 ms
digitalWrite(ledPin, LOW); // LED OFF
delay(500); // 500 ms
}

📌 Uwaga:

W niektórych płytkach LED jest aktywna w stanie LOW – jeśli dioda nie świeci, zamień HIGH z LOW.

1️⃣ Przykład prostego BLE (Bluetooth Low Energy)

Poniższy przykład pokazuje, jak uruchomić urządzenie BLE, które wysyła nazwę i pozwala się wykryć (BLE Peripheral). Kod jest prosty i nadaje się na start.

Wymagania

  • Płytka z nRF52840 (np. Adafruit Feather nRF52840)

  • Arduino IDE

  • Biblioteka ArduinoBLE lub Adafruit Bluefruit nRF52

🔧 Przykład BLE – reklamowanie urządzenia

 
#include <ArduinoBLE.h>
void setup() {
Serial.begin(9600);
while (!Serial);

if (!BLE.begin()) {
Serial.println("Nie udało się uruchomić BLE!");
while (1);
}

BLE.setLocalName("nRF52840-BLE");
BLE.setDeviceName("nRF52840");
BLE.advertise();

Serial.println("Urządzenie BLE jest widoczne");
}

void loop() {
// brak logiki – tylko reklamowanie BLE
}

📱 Po wgraniu kodu możesz:

  • użyć aplikacji nRF Connect (Android / iOS)

  • zeskanować urządzenia BLE

  • zobaczyć „nRF52840-BLE


2️⃣ Porównanie nRF52840 vs ESP32

Cecha nRF52840 ESP32
Producent Nordic Semiconductor Espressif
CPU ARM Cortex-M4F Xtensa Dual-Core
Taktowanie 64 MHz do 240 MHz
Flash / RAM 1 MB / 256 KB ~4 MB / 520 KB
BLE ✅ Bluetooth 5 (bardzo stabilne) ✅ Bluetooth Classic + BLE
Wi-Fi ❌ brak ✅ 2.4 GHz
Zużycie energii ⭐⭐⭐⭐⭐ bardzo niskie ⭐⭐⭐ wyższe
USB ✅ natywne ❌ brak
Cena wyższa niższa
IoT bateryjne ⭐⭐⭐⭐⭐ ⭐⭐⭐
Smart Home ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐

🔍 Kiedy wybrać który układ?

Wybierz nRF52840, gdy:

  • projekt jest bateryjny

  • potrzebujesz stabilnego BLE

  • zależy Ci na niskim poborze prądu

  • tworzysz urządzenie profesjonalne / przemysłowe

Wybierz ESP32, gdy:

  • potrzebujesz Wi-Fi

  • robisz projekt hobbystyczny

  • ważna jest cena

  • chcesz prosty start


3️⃣ Konfiguracja Arduino IDE dla nRF52840

🔹 Krok 1: Zainstaluj Arduino IDE

Pobierz najnowszą wersję z oficjalnej strony Arduino.


🔹 Krok 2: Dodaj pakiet płytek nRF52840

  1. Plik → Preferencje

  2. W polu Dodatkowe adresy URL menedżera płytek wklej:

 
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
  1. Kliknij OK


🔹 Krok 3: Zainstaluj płytki

  1. Narzędzia → Płytka → Menedżer płytek

  2. Wyszukaj Adafruit nRF52

  3. Zainstaluj pakiet


🔹 Krok 4: Wybierz płytkę

Narzędzia → Płytka, np.:

  • Adafruit Feather nRF52840

  • nRF52840 Dongle

Ustaw:

  • Port COM

  • Programmer: CMSIS-DAP (jeśli dostępny)


🔹 Krok 5: Test – Blink

Wgraj prosty program z miganiem LED, aby sprawdzić konfigurację.

 


Podsumowanie

nRF52840 to bardzo wydajny i energooszczędny układ, idealny do nowoczesnych projektów IoT i BLE. Choć wymaga większej wiedzy niż klasyczne Arduino, oferuje ogromne możliwości i profesjonalną jakość.

Follow us on Facebook!