M5Stamp Pico Mate #2: Ampelschaltung

In diesem kurzen Beitrag möchte ich dir zeigen, wie du eine Ampelschaltung am M5Stamp Pico Mate programmieren kannst.

M5Stamp Pico Mate - Ampelschaltung
M5Stamp Pico Mate – Ampelschaltung

Den verwendeten Mikrocontroller – M5Stamp Pico Mate, habe ich dir bereits in den nachfolgenden Beiträgen vorgestellt.

Benötigte Ressourcen

Für dieses kleine Projekt verwende ich:

Du kannst statt der 10 mm LEDs kannst du auch ein Ampel-Modul oder einfache 5 mm LEDs verwenden.

10 mm LEDs & Ampel-Modul
10 mm LEDs & Ampel-Modul

Aufbau der Schaltung

Für die Schaltung benötigen wir lediglich 3 LEDs sowie 3 Vorwiderstände mit 220 Ohm.

LEDPin am M5Stamp Pico Mate
rote LED, AnodeG18
gelbe LED, AnodeG19
grüne LED, AnodeG21

Die Kathoden der LEDs habe ich direkt mit GND des Mikrocontrollers verbunden.

Wenn du das verlinkte Ampel-Modul verwendest, sparst du dir zwei Breadboardkabel für den Minuspol der LEDs, ansonsten hat dieses keine weiteren Vorteile.

Programmieren in der Arduino IDE

Wie man eine LED am Mikrocontroller programmiert habe ich dir bereits in diversen Beiträgen gezeigt und für den M5Stamp Pico sind keine besonderen Befehle notwendig und somit ist der Quellcode recht einfach gehalten.

//rote LED am GP18 angeschlossen
#define ledRot 18

//gelbe LED GP19 angeschlossen
#define ledGelb 19

//gruen LED GP21 angeschlossen
#define ledGruen 21

//Wert für die Pause zwischen den 
//einzelnen Signalen der Ampel
const int PAUSE = 750;

void setup() {
  //Pin der roten LED als Ausgang definieren
  pinMode(ledRot, OUTPUT);
  //Pin der gelben LED als Ausgang definieren
  pinMode(ledGelb, OUTPUT);
  //Pin der gruenen LED als Ausgang definieren
  pinMode(ledGruen, OUTPUT);
}

void loop() {
  //nur die gruene LED aktiv
  trafficLights(0, 0, 1);
  //eine Pause einlegen
  delay(PAUSE);
  //nur die gelbe LED aktiv
  trafficLights(0, 1, 0);
  //eine Pause einlegen
  delay(PAUSE);
  //nur die rote LED aktiv
  trafficLights(1, 0, 0);
  //eine Pause einlegen
  delay(PAUSE);
  //die rote & gelbe LED aktiv
  trafficLights(1, 1, 0);
  //eine Pause einlegen
  delay(PAUSE);
}

//aktivieren der LEDs
void trafficLights(int statusRedLed, int statusYelloLed, int statusGreenLed){
  digitalWrite(ledRot, statusRedLed);
  digitalWrite(ledGelb, statusYelloLed);
  digitalWrite(ledGruen, statusGreenLed);
}

Hier nun das Video zum oben gezeigten Code:

Ein Kommentar

Kommentar hinterlassen

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