🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Funduino-Cube programmieren #1: LEDs – Teil 1

Veröffentlicht am 30. Dezember 202229. April 2023 von Stefan Draeger

In diesem ersten Beitrag möchte ich dir zeigen, wie du die LEDs am Funduino-Cube programmieren kannst.

Funduino-Cube programmieren #1: LEDs
Funduino-Cube programmieren #1: LEDs

Ich habe dir bereits gezeigt wie du LEDs am Arduino programmierst, der Funduino-Cube verfügt über einen Arduino Nano V3 und daher würde dieses nichts Neues werden. Aber dieses Board verfügt über ein paar Aktoren, welche wir nutzen wollen.

Im ersten Teil möchte ich dir zeigen, wie du LEDs mit dem Fotowiderstand (LDR) und dem 3 Achsen Lagesensor steuern kannst.

farbige 8mm LED am Funduino-Cube
farbige 8mm LED am Funduino-Cube
analoger 3 Achsen Lagesensor am Funduino-Cube
analoger 3 Achsen Lagesensor am Funduino-Cube
NeoPixel Bar am Funduino-Cube
NeoPixel Bar am Funduino-Cube
Fotowiderstand (LDR) am Funduino-Cube
Fotowiderstand (LDR) am Funduino-Cube

Ein großer Vorteil des Funduino-Cube ist, dass eine aufwändige und ggf. fehleranfällige Schaltung entfällt, wir können also quasi mit der Programmierung direkt beginnen.

  • Fotowiderstand & LEDs
  • Analoger 3 Achsen Lagesensor & NeoPixel Bar
    • Programmieren

Fotowiderstand & LEDs

Der Fotowiderstand ist am Pin analogen Pin A7 angeschlossen und liefert je nach Helligkeit einen Wert zwischen 0 (für dunkel) und 1023 (für maximale Helligkeit).

Mit diesem Fotowiderstand oder auch LDR genannt können wir nun die drei, farbigen, 8 mm LEDs steuern.

//Fotowiderstand / LDR am analogen Pin A7 angeschlossen
#define ldr A7

//LED rot am digitalen Pin D5 angeschlossen
#define ledRot 5
//LED gelb am digitalen Pin D4 angeschlossen
#define ledGelb 4
//LED gruen am digitalen Pin D3 angeschlossen
#define ledGruen 3

//Array mit den Pins der LEDs
int leds[] = { ledRot, ledGelb, ledGruen };

//Feld zum speichern der zuletzt aktivierten LED
int lastActiveLed = -1;

void setup() {
  //definieren das die Pins der LEDs als Ausgang dienen
  pinMode(ledRot, OUTPUT);
  pinMode(ledGelb, OUTPUT);
  pinMode(ledGruen, OUTPUT);
}

/** 
Zurucksetzen / deaktivieren der LEDs
*/
void reset() {
  digitalWrite(ledRot, LOW);
  digitalWrite(ledGelb, LOW);
  digitalWrite(ledGruen, LOW);
}

void loop() {
  //lesen des aktuellen Wertes des analogen Fotowiderstandes
  int value = analogRead(ldr);
  //mappen des analogen Wertes auf die Anzahl der LEDs
  //ein Array beginnt mit dem Index 0!
  int activeLed = map(value, 0, 1023, 0, 2);
  //Wenn der ermittelte Wert ungleich der zuletzt aktivierten LED ist, dann...
  if (lastActiveLed != activeLed) {
    //ueberschreiben des Wertes
    lastActiveLed = activeLed;
    //deaktivieren aller LEDs
    reset();
    //aktivieren der neuen LED
    digitalWrite(leds[activeLed], HIGH);
  }
}

Wenn wir diesen Code aufspielen, dann können wir mit einer Taschenlampe den Fotowiderstand beleuchten und somit die rote LED zum Leuchten bringen. Wenn wir diesen jedoch abdunkeln, dann leuchtet die grüne LED.

Analoger 3 Achsen Lagesensor & NeoPixel Bar

Den 3 Achsen Lagesensor können wir über die 3 nachfolgenden analogen Pins auslesen.

3 Achsen LagesensorAnschluss am Arduino Nano
XA1
YA2
ZA3

Die 8fach NeoPixel Bar ist am digitalen Pin D8 angeschlossen.

Für den NeoPixel benötigen wir zum Programmieren noch eine Bibliothek, hier verwende ich ich die Adafruit NeoPixel Bibliothek welche du entweder vom GitHub Repository adafruit / Adafruit_NeoPixel als ZIP-Datei herunterladen oder ganz bequem über den Bibliotheksverwalter der Arduino IDE.

Der Weg über den Bibliotheksverwalter der Arduino IDE ist deutlich einfacher, denn dort braucht man nur nach „Adafruit NeoPixel“ suchen und an dem entsprechenden Eintrag die Schaltfläche „INSTALL“ klicken.

Programmieren

Nachfolgend möchte ich dir zeigen, wie du die Lage Y auslesen kannst und je nach Lage der Platine eine LED aktivierst.

#include <Adafruit_NeoPixel.h>

//Der Pin der Y-Achse des 3 Achsen Lagesensors
//ist am analogen Pin A2 angeschlossen
#define yAchse A2

//NeoPixel Bar am digitalen Pin D11 angeschlossen
#define neoPixel 11

//Anzahl der NeoPixel
const int NUM_PIXEL = 8;

Adafruit_NeoPixel bar = Adafruit_NeoPixel(NUM_PIXEL, neoPixel, NEO_GRB + NEO_KHZ800);

//Positionen des Lagesensors, diese können variieren und sollten vorher geprüft werden
const int ZERO_POS = 326;
const int MAX_POS = 400;
const int MIN_POS = 262;

//Wert für die Farbe rot
uint32_t red = bar.Color(255, 0, 0);
//RGB Wert für die Farbe schwarz
uint32_t black = bar.Color(0, 0, 0);

void setup() {
  //beginn der kommunikation mit der RGB NeoPixel Bar
  bar.begin();
  //die Helligkeit setzen 0 dunkel -> 255 ganz hell
  bar.setBrightness(100);
  //anzeigen der Pixelfarben
  bar.show();
}

void loop() {
  // lesen des aktuellen Wertes der Y-Achse
  int yAxisValue = analogRead(yAchse);
  //Feld zum speichern des Wertes für die zu aktivierende LED
  int activeLED = 0;
  //Wenn der Wert kleiner als 326 ist, dann..
  if (yAxisValue < 326) {
    //mappen des Wert von 326 bis zum niedrigsten von 262 auf die ersten 4 LEDs
    activeLED = map(yAxisValue, 326, 262, 4, 0);
  } else {
    //mappen des Wert von 326 bis zu den höchsten von 400 auf die letzten 4 LEDs
    activeLED = map(yAxisValue, 326, 400, 4, 8);
  }

  //Schleife über alle LEDs
  for (int i = 0; i < NUM_PIXEL; i++) {
    //Feld für die Farbe
    uint32_t color;
    //Wenn der aktuelle Zähler gleich der zu aktivierenden LED ist,dann...
    if (i == activeLED) {
      //Farbe rot zuweisen
      color = red;
    } else {
      //ansonsten, Farbe schwarz zuweisen
      color = black;
    }
    //setzen der Farbe an der LED mit dem Index i
    bar.setPixelColor(i, color);
  }
  //anzeigen aller LEDs
  bar.show();
  //kleine Pause von 25 ms.
  delay(125);
}

Wenn wir diesen Code auf den Funduino-Cube bzw. dem verbauten Arduino Nano überspielen, dann können wir mit dem Bewegen der Platine über die y-Achse die LEDs auf der NeoPixel Bar aktivieren bzw. bewegen.

Schreibe einen Kommentar Antworten abbrechen

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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
x
x