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

Projekte mit dem Keyestudio – Solar Tracking Kit for Arduino

Posted on 1. April 202229. April 2023 by Stefan Draeger

In diesem Beitrag möchte ich dir ein paar Projekte mit den Sensoren & Aktoren des „Keyestudio – Solar Tracking Kit for Arduino“ zeigen.

Projekte mit dem "Keyestudio Solar Tracking DIY Kit for Arduino"
Projekte mit dem „Keyestudio Solar Tracking DIY Kit for Arduino“

Das Kit habe ich dir bereits im Beitrag Vorstellung – Keyestudio Solar Tracking DIY Kit for Arduino vorgestellt und gezeigt wie du diesen aufbaust.

  • Bezug des Solar Tracking Kit
  • Enthaltene Sensoren & Aktoren im Solar Tracking Kit
  • Beispiele aus dem Handbuch
  • Programmieren in der Arduino IDE
    • Einrichten / Kopieren der benötigten Bibliotheken
    • Projekte
      • Lichtsensoren auswerten
      • 5 mm LED Modul
        • Pinout des LED-Moduls
      • Beispiel – Blinken
      • Beispiel – Fade Effekt
      • Beispiel – Taster & LED
      • Beispiel – Taster Status merken
      • Beispiel – Piezo Buzzer
      • Beispiel – DHT11 Sensor & LCD-Display
        • Aufbau der Schaltung
        • Programm
  • Video

Bezug des Solar Tracking Kit

Das mir vorliegende Keyestudio – Solar Tracking DIY Kit for Arduino habe ich von der Firma Eckstein Komponente erhalten, du findest dieses im Online-Shop für knapp 95 € inkl. Versandkosten.

Enthaltene Sensoren & Aktoren im Solar Tracking Kit

In dem Kit sind folgende Sensoren enthalten:

  • DHT11,
  • analoger Lichtsensor,
  • vier Fotowiderstände

Des Weiteren sind nachfolgende Aktoren enthalten:

  • zwei Servomotoren,
  • einen Piezo Buzzer,
  • einen Taster,
  • ein LCD Display, sowie
  • eine LED

Durch die vorkonfektionierten Kabel ist die Verbindung mit dem Mikrocontroller recht einfach, man muss lediglich nur darauf achten, dass, das Kabel richtig herum aufgesteckt wird.

Beispiele aus dem Handbuch

In dem Handbuch, welches du unter https://ecksteinimg.de/Datasheet/Keyestudio/KS0530/KS0530.pdf herunterladen kannst, findest du 9 kleine bis mittlere Projekte, welche du mit diesem Kit durchführen kannst. Dazu muss das Set so weit du dieses schon aufgebaut hast, wieder etwas zurückbauen.

  • LED blinken,
  • Helligkeit der LED setzen,
  • Taster,
  • Piezo Buzzer,
  • LCD-Display,
  • Ambient Lichtsensor,
  • DHT11 Sensor (Temperatur & rel. Luftfeuchtigkeit),
  • BH1750 digitaler Lichtintensität Modul,
  • Servomotoren

Programmieren in der Arduino IDE

Zum Programmieren der Projekte verwende ich die Arduino IDE, diese kannst du kostenfrei unter https://www.arduino.cc/en/software für MacOS, Linux & Windows herunterladen und installieren.

Splashscreen der Arduino IDE Vers. 1.8.10
Splashscreen der Arduino IDE Vers. 1.8.10

Wie man die Arduino IDE installiert, habe ich dir bereits in separaten Beiträgen gezeigt.

  • Arduino IDE auf Linux installieren
  • Arduino IDE installieren

Der Beitrag für MacOS steht noch aus, da mir hier die ein passendes Gerät mit MacOS fehlt.

Einrichten / Kopieren der benötigten Bibliotheken

Für den DHT11, Lichtsensor, Servomotor & dem LCD-Display benötigen wir zusätzlich Bibliotheken, welche wir entweder über den internen Bibliotheksverwalter installieren können oder wir kopieren diese in das „libraries“ Verzeichnis der Arduino IDE.

Du findest die Pfadangabe unter Datei > Voreinstellungen im Feld „Sketchbook-Speicherort“.

Ablageort für Sketche & Bibliotheken in der Arduino IDE

Alternativ kannst du auch in einem gespeicherten Sketch die Tastenkombination „Strg+k“ betätigen, hier sollte sich der Explorer öffnen und du solltest lediglich eine Ebene nach oben navigieren müssen.

Projekte

Nachdem die Arduino IDE installiert und die benötigten Bibliotheken eingerichtet wurden können wir mit den ersten Projekten beginnen.

Lichtsensoren auswerten

Bevor wir das Kit wieder zerlegen, wollen wir jedoch zunächst einmal die analogen Fotowiderstände auslesen und in einem Liniendiagramm visualisieren.

serieller Plotter in der Arduino IDE
serieller Plotter in der Arduino IDE

Hier gibt es von der Arduino IDE ein cooles Feature was sich „serial Plotter“ nennt. Diesen habe ich dir bereits im Beitrag neue Funktionen der Arduino IDE Version 1.8.10 (Release Sept. 2019) vorgestellt.

//Fotowiderstände an den
//analogen Pin A0..A3
#define ldr1 A0
#define ldr2 A1
#define ldr3 A2
#define ldr4 A3

void setup() {
  //begin der seriellen Kommunikation mit 9600 baud
  Serial.begin(9600);
}

void loop() {
  //lesen der Sensorwerte
  int ldrValue1 = analogRead(ldr1);
  int ldrValue2 = analogRead(ldr2);
  int ldrValue3 = analogRead(ldr3);
  int ldrValue4 = analogRead(ldr4);

  //Legende
  String line1 = "LDR1 LDR2 LDR3 LDR4";
  //Werte
  String line2 = String(ldrValue1, DEC) + " " + String(ldrValue2, DEC) + " " + String(ldrValue3, DEC) + " " + String(ldrValue4, DEC);

  //Ausgeben der Legende
  Serial.println(line1);
  //Ausgeben der Werte
  Serial.println(line2);
  //eine Pause von 25ms.
  delay(25);
}

Im seriellen Plotter erkennt man nun vier Sinuskurven mit den Werten der Fotowiderstände.

5 mm LED Modul

Dem Kit liegt ein Modul mit einer gelben LED bei, welche nicht verbaut ist.

5 mm LED Modul
5 mm LED Modul
Pinout des LED-Moduls

Das LED-Modul hat 3 Pins, welche wie folgt mit dem Mikrocontroller verbunden werden:

5mm LED ModulKeyestudio UNO R3
Sdigitaler PWM Pin D3
V3.3 V oder 5V
GGND
Pinout des 5 mm LED Moduls

In nachfolgenden schließe ich das Modul an den digitalen PWM Pin an.

Keyestudio UNO R3 mit 5 mm LED Modul
Keyestudio UNO R3 mit 5 mm LED Modul

In diesem und nachfolgende Beispiele verwende ich denselben Mikrocontroller vom Typ Keyestudio UNO R3 welchen ich bereits im Beitrag Arduino UNO kompatibles Board von Keyestudio vorgestellt habe. Damit spare ich mir zumindest den Mikrocontroller vom Kit zu schrauben.

Beispiel – Blinken

Fangen wir mit einem einfachen Beispiel an, dem Blinken einer LED. Dazu müssen wir die LED in einem Intervall Ein & Ausschalten.

#define led 3

const int PAUSE = 500;

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

void loop() {
  digitalWrite(led, HIGH);
  delay(PAUSE);
  digitalWrite(led, LOW);
  delay(PAUSE);
}

Beispiel – Fade Effekt

Von einem Fade Effekt spricht man, wenn eine Leuchtdiode langsam auf und ab leuchtet, dieses erreicht man, indem ein analoger Wert von 0 bis 254 als PWM Signal gesendet wird.

Dabei wird die LED in einem sehr kurzen Intervall ein und ausgeschaltet, da das menschliche Auge sehr träge ist, erkennen wir dieses als eine dunkle oder helle LED an.

#define led 3

const int PAUSE = 20;

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

void loop() {
  for (int i = 0; i < 255; i++) {
    analogWrite(led, i);
    delay(PAUSE);
  }
}

Beispiel – Taster & LED

Über einen Taster können wir nun die LED ein / ausschalten. Das geht sowohl auch das der Status erhalten bleibt d.h. beim ersten Tastendruck wird die LED aktiviert und beim zweiten wieder deaktiviert, ebenso können wir natürlich auch die LED bei gedrücktem Taster aktivieren und beim Loslassen wieder deaktivieren.

Button / Taster Modul
Button / Taster Modul
#define led 3
#define taster 5

void setup() {
  pinMode(led, OUTPUT);
  pinMode(taster, INPUT);
}

void loop() {
  if (digitalRead(taster) == LOW) {
    digitalWrite(led, HIGH);
  } else {
    digitalWrite(led, LOW);
  }
}

Beispiel – Taster Status merken

Wir können uns den letzten Status in einer Variablen merken und somit einen simplen Ein/Aus Schalter programmieren.

Zusätzlich habe ich hier die Bibliothek Bounce2 eingesetzt, was das Prellen eines Tasters unterdrückt. Was das Prellen eines Tasters ist und wie du dieses unterdrücken kannst, habe ich dir im Beitrag Arduino Lektion 87: Taster entprellen gezeigt.

#include <Bounce2.h>

#define led 3
#define taster 5

Bounce btnBounce = Bounce(taster, 50);

bool ledState = false;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(taster, INPUT);
}

void loop() {
  btnBounce.update();
  
  if (btnBounce.fell()) {
    ledState = !ledState;
  }

  if (ledState) {
    digitalWrite(led, HIGH);
  } else {
    digitalWrite(led, LOW);
  }
}

Beispiel – Piezo Buzzer

Über den Piezo Buzzer kannst du einfache Töne, aber auch kleine Melodien abspielen. Hier nutzt du die Funktionen:

tone(pin, frequenz, dauer);
tone(pin, frequenz);
noTone(pin);

Im Beitrag Arduino Projekt: LED Weihnachtsbaum habe ich einen solchen kleinen Buzzer verwendet, um das Weihnachtslied „Jingle Bells“ abzuspielen.

Auf dem GitHub Repository https://gist.github.com/baojie/4522173 findest du das Arduino Sketch für die Melodie von „Twinkle twinkle little Star“. Dieses Sketch funktioniert 1:1 auch für uns.

Hier nun beispielhaft ein kleines Programm, welches einen Ton mit einer Frequenz von 800 Hz wiedergibt.

#define piezoBuzzer 2

void setup() {
  pinMode(piezoBuzzer, 2);
}

void loop() {
  tone(piezoBuzzer, 800);
  delay(500);
  noTone(piezoBuzzer);
  delay(500);  
}

Beispiel – DHT11 Sensor & LCD-Display

Den digitalen Sensor DHT11 habe ich dir bereits im Beitrag für den Arduino mehrfach vorgestellt. Wie zbsp. in:

  • Arduino Lektion 6: Sensor DHT11, Temperatur und relative Luftfeuchtigkeit messen
  • 1,77 Zoll TFT Display am Arduino UNO R3
  • Vergleich der Sensoren, AM2320, DHT11 und DHT22

Der DHT11 Sensor ist nicht ganz so genau, aber ist mithilfe einer kleinen Bibliothek recht einfach zu programmieren.

DHT11 Sensor
DHT11 Sensor

Die Daten des DHT11 Sensors möchte ich auf dem LCD-Display anzeigen lassen. Auf dem 2×20 Zeichen großen Display ist für die Werte Temperatur & rel. Luftfeuchtigkeit genügend Platz.

Das LCD-Display wird per I²C angeschlossen, was der Keyestudio UNO R3 recht einfach gestaltet, da die Pins gesondert nach außen geführt sind.

I²C Pins am Keyestudio UNO R3
I²C Pins am Keyestudio UNO R3
Aufbau der Schaltung

Das LCD-Display & der DHT11 Sensor wird wie folgt mit dem Mikrocontroller verbunden:

Sensor / AktorMikrocontroller
DHT11
Sdigitaler Pin D3
V5V
GGND
LCD-Display
GNDGND
VCCVCC
SDASDA, analoger Pin A4
SCLSCL, analoger Pin A5
Schaltung - DHT11 Sensor & LCD-Display am Keyestudio UNO R3
Schaltung – DHT11 Sensor & LCD-Display am Keyestudio UNO R3
Programm
#include <dht11.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); 

dht11 DHT;

#define DHT11PIN 3

void setup() {
  Serial.begin(9600);
  lcd.init();
}

void loop() {
  delay(2000);

  DHT.read(DHT11PIN);

  float hum = DHT.humidity;
  float tempC = DHT.temperature;

  Serial.println(hum);
  Serial.println(tempC);

  lcd.backlight();  //set backlight

  lcd.setCursor(0, 0); //set Cursor at(0,0)
  lcd.print("Temp.: "+ String(tempC, 1) + " C");

  lcd.setCursor(0, 1); //set Cursor at(0,0)
  lcd.print("Luftf.: "+ String(hum, 1) + " %");
}

Der obige Code erzeugt auf dem LCD-Display die Ausgabe der Temperatur in Grad Celsius sowie die rel. Luftfeuchtigkeit.

Keyestudio UNO R3 - DHT11 Sensor & LCD-Display
Keyestudio UNO R3 – DHT11 Sensor & LCD-Display

Video

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}