Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Arduino MKR Zero

Posted on 27. Februar 202329. April 2023 by Stefan Draeger

In diesem Beitrag möchte ich dir den Arduino MKR Zero vorstellen und zeigen, wie du diesen Mikrocontroller programmieren kannst.

Der Arduino MKR Zero ist der günstigste Mikrocontroller aus der Reihe der Arduino MKRs. Ein wichtiges Merkmal von diesem ist, dass der Mikrocontroller nicht über eine WiFi-Schnittstelle verfügt.

  • Bezug des Arduino MKR Zero
    • Lieferumfang
  • Technische Daten des Arduino MKR Zero
    • Features
  • Aufbau & Pinout
  • Programmieren
    • Verbinden des Mikrocontrollers mit dem PC
    • Programmieren über die Arduino IDE
      • Beispiel mit der RealTimeClock
  • Ausblick

Bezug des Arduino MKR Zero

Den mir vorliegenden Mikrocontroller habe ich im offiziellen Shop von Arduino.cc für knapp 27 € zzgl. 6 € Versandkosten aus Italien per UPS erworben. Obwohl dieses Paket einmal quer durch Europa musste, hat die Lieferung nur 3 Tage gedauert.

Lieferumfang

Zum Lieferumfang gehörte neben dem Mikrocontroller, noch ein paar kleine Aufkleber und ein gefalteter Garantiezettel.

Technische Daten des Arduino MKR Zero

Auf dem Mikrocontroller ist ein Atmel ATSAMD21 verbaut, welcher nachfolgende technische Daten hat.

MikrocontrollerSAMD21 Cortex®-M0+ 32bit low power ARM MCU
USB AnschlussMicro-USB (USB-B)
Betriebsspannung5 V bis 5.5 V
Spannung an GPIOs3.3 V
max. Stromstärke an GPIOs7 mA
LiPo Batterie3.7 V, min. 700 mAh, JST PH Anschluss
Taktgeschwindigkeit48 MHz
Speicher256 KB Flash,
32 KB SRAM
PWM Pins13 (0-8, 10,12, A3, A4)
externe Interrupts10 (0, 1, 4-9, A1, A2)
SchnittstellenUART, I²C, SPI
Abmaße (L x B x H)61,5 mm x 25 mm x 21 mm
Gewicht32 g
Technische Daten des Arduino MKR Zero

Features

Der Mikrocontroller verfügt zusätzlich über:

  • einen SD-Kartenslot für Speicherkarten bis 16 GB,
  • einen JST PH Anschluss für LiPo 3.7 V LiPo Batterien,
  • eine LED für den Zustand ob der LiPo akku geladen wird,
  • einen separaten I²C Anschluss,
  • eine RTC mit 32.768 kHz,
  • eine Built-in LED

Aufbau & Pinout

Wie bei den Mikrocontrollern der originalen Arduino Familie üblich, sind auf den Buchsenleisten die Pins beschriftet, dieses macht die Arbeit mit diesen deutlich besser.

Auf der Seite Arduino MKR ZERO (I2S bus & SD for sound, music & digital audio data) im offiziellen Shop, findest du den schematischen Aufbau, sowie das Pinout.

Programmieren

Der Mikrocontroller lässt sich in der Arduino IDE sowie über Arduino CLI sowie über den Arduino Web Editor programmieren.

Für die Einrichtung des Web Editors benötigst du ein zusätzliches Plugin, welches derzeit nur unter Google Chrome läuft.

Verbinden des Mikrocontrollers mit dem PC

Der Mikrocontroller wird über ein Micro-USB Datenkabel mit dem PC verbunden. Beim erstmaligen Anschluss wird dieser zunächst eingerichtet. Hier erhält man zwei Benachrichtigungen vom Windows System, einmal das der Mikrocontroller erkannt wurde und etwas später, wenn dieser fertig eingerichtet ist.

Im Geräte-Manager unter Windows 10 wird dieser einfach nur als „Serielles USB-Gerät“ angezeigt.

Arduino MKR Zero im Gerätemanager von Windows 10
Arduino MKR Zero im Gerätemanager von Windows 10

Programmieren über die Arduino IDE

Wenn du meinen Blog bereits länger verfolgst, dann wirst du bereits gesehen haben, dass ich in den meisten Projekten die Arduino IDE verwende. Diese Anwendung hat den großen Vorteil, dass sehr viele Mikrocontroller unterstützt werden und wenn man Bibliotheken einbinden möchte oder muss dieses in wenigen Sekunden erledigt ist.

Im Fall des Arduino MKR Zero wird dieser in der Arduino IDE 2.0 korrekt am COM34 erkannt.

Arduino MKR Zero in der Arduino IDE 2.0

Beispiel mit der RealTimeClock

Hier nun ein Beispiel mit der internen RTC des Mikrocontrollers.

Das boolsche Feld „setTime“ wird beim ersten Upload auf true gesetzt, damit werden die Werte für das Datum & die Uhrzeit geschrieben. Wenn dieses erfolgt ist, dann wird beim zweiten Schreiben des Codes auf den Mikrocontroller wird diese Variable auf false gesetzt.

#include <RTCZero.h>

//Objekt initialisieren
RTCZero rtc;

//Felder zum setzen der Uhrzeit
const byte seconds = 0;
const byte minutes = 42;
const byte hours = 19;

//Felder zum setzen des Datums
const byte day = 9;
const byte month = 2;
const byte year = 23;

bool setTime = false;

void setup() {
  Serial.begin(9600);

  //initialisieren der RTC
  rtc.begin();

  if (setTime) {
    // setzen der Uhrzeit
    rtc.setHours(hours);
    rtc.setMinutes(minutes);
    rtc.setSeconds(seconds);

    // setzen des Datums
    rtc.setDay(day);
    rtc.setMonth(month);
    rtc.setYear(year);
  }
}

void loop() {
  //lesen des Tages von der RTC
  print2digits(rtc.getDay());
  Serial.print(".");
  //lesen des Monats von der RTC
  print2digits(rtc.getMonth());
  Serial.print(".");
  //lesen des Jahres von der RTC
  print2digits(rtc.getYear());
  Serial.print(" ");
  //lesen der Stunde von der RTC
  print2digits(rtc.getHours());
  Serial.print(":");
  //lesen der Minuten von der RTC
  print2digits(rtc.getMinutes());
  Serial.print(":");
  //lesen der Sekunden von der RTC
  print2digits(rtc.getSeconds());
  //eine Pause von 500 ms.
  delay(500);
  //ein Zeilenumbruch vor der nächsten Ausgabe
  Serial.println();
}

//schreib eine zweistellige Zahl auf
//der seriellen Schnittstelle
void print2digits(int number) {
  if (number < 10) {
    Serial.print(0);
  }
  Serial.print(number);
}

Wenn der obige Code auf den Mikrocontroller überspielt wurde, dann wird auf der seriellen Schnittstelle das Datum inkl. Uhrzeit ausgegeben.

Ausblick

Der Mikrocontroller wird auf der Shopseite mit dem Text „for sound, music & digital audio data“ beworben, dieses möchte ich als nächstes nun testen und das Projekt aufbauen.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}