LuatOS System #1 – LEDs programmieren

In diesem Beitrag möchte ich dir zeigen, wie du LEDs am Mikrocontroller ESP32-C3 mit LuatOS System programmieren kannst.

ESP32-C3 mit LuatOS System - LEDs programmieren
ESP32-C3 mit LuatOS System – LEDs programmieren

Im letzten Beitrag ESP32-C3 mit LuatOS System und im neuen YouTube Video ESP32-C3 mit LuatOS System programmieren habe ich dir gezeigt, wie du ein einfaches „Hello World!“ auf der seriellen Schnittstelle ausgibst.

Hier soll es nun darum gehen, wie du eine LED über die vorhandenen GPIO Pins steuerst.

Mikrocontroller ESP32-C3 mit LuatOS System

In diesem Beitrag verwende ich den bereits vorgestellten ESP32-C3 mit LuatOS System.

Bezug

Den mir vorliegenden Mikrocontroller habe ich recht günstig über aliexpress.com für knapp 4 € inkl. Versandkosten erworben. Derzeit (stand 08.08.2022) habe ich leider keine andere Quelle für einen solchen Mikrocontroller gefunden.

Mikrocontroller ESP32-C3 mit LuatOS System auf aliexpress.com
Mikrocontroller ESP32-C3 mit LuatOS System auf aliexpress.com

Benötigte Ressourcen für den Nachbau

Wenn du die nachfolgenden kleinen Beispiele nachbauen möchtest, dann benötigst du folgende Ressourcen:

  • einen ESP32-C3 mit LuatOS System,
    • ein USB-C Datenkabel,
  • drei, 5 mm, LEDs (rot, gelb, grün),
  • drei 220 Ohm Widerstände,
  • ein 170 Pin Breadboard, sowie
  • diverse Breadboardkabel, 10 cm, männlich-männlich
benötigte Bauteile für diesen Beitrag
Benötigte Bauteile für diesen Beitrag

Tools für die Programmierung und den Upload des Programmes

Des Weiteren benötigst du die Software Visual Studio Code für die Programmierung sowie die LuatTools für den Upload des Programmes.

Pinout des ESP32-C3

Für den Aufbau der Schaltung benötigen noch das Pinout des Mikrocontrollers, welches ich dir hier gerne zeigen möchte.

Pinout des ESP32-C3 von der Wikiseite https://wiki.luatos.com/chips/esp32c3/board.html
Pinout des ESP32-C3 von der Wikiseite https://wiki.luatos.com/chips/esp32c3/board.html

Die Grafik habe ich von der Wiki-Seite https://wiki.luatos.com/chips/esp32c3/board.html entnommen. Auf dieser Seite findest du noch weitere Informationen zu den Pins und Features des Mikrocontrollers.

Auf der Seite https://wiki.luatos.com/_static/bom/esp32c3.html findest du eine interaktive Sicht auf den hier verwendeten Mikrocontroller.

Programmieren einer LED am GPIO Pin des ESP32-C3 mit LuatOS System

Kommen wir jetzt zum eigentlichen Thema, dem Programmieren einer LED am ESP32-C3. Ich gehe in diesem Abschnitt davon aus, dass bei dir die Anwendung Visual Studio Code und die LuatTools installiert und lauffähig sind.

How to connect and code leds via lua at ESP32-C3
Dieses Video ansehen auf YouTube.

In diesem Video erläutere ich dir, wie du die Schaltung aufbaust und programmierst. Dieses Mal in englischer Sprache. Das Ganze war ein Wunsch einiger meiner Follower auf Instagram, ich hoffe somit einige mehr mit meinem Content zu erreichen.

Aufbau der Schaltung

Als Erstes wollen wir eine 5 mm LED an den GPIO0 des Mikrocontrollers anschließen, dafür benötigen wir neben der besagten LED noch einen Vorwiderstand von 220 Ohm, 2 Breadboardkabel sowie ein 170 Pin Breadboard.

Schaltung - 5mm LED am ESP32-C3 mit LuatOS System
Schaltung – 5 mm LED am ESP32-C3 mit LuatOS System

Programmieren in Visual Studio Code

Erstellen wir im zweiten Schritt nun das kleine Programm, um die 5 mm LED zum Blinken zu bringen.

PROJECT = "LED"
VERSION = "0.1"

sys = require("sys")

led = gpio.setup(0,0,gpio.PULLUP)
local state = false
sys.timerLoopStart(function()
    led(state and 0 or 1)
    log.info("led", state)
    state = not state
end,500)

sys.run()

Nachdem wir nun eine LED zum Blinken gebracht haben, schließen wir eine weitere an und steuern diese im gleichen Intervall wie die Erste. Dazu müssen wir lediglich die neue LED initialisieren und in der Timer-Funktion den gleichen Status zuweisen.

PROJECT = "LED blink"
VERSION = "0.1"

sys = require"sys"

led_red = gpio.setup(0,0,gpio.PULLUP)
led_blue = gpio.setup(1,0,gpio.PULLUP)

local state = false

sys.timerLoopStart(function()
   led_red(state and 0 or 1)
   led_blue(state and 0 or 1)
   state = not state
   log.info("led status = ", state)
end, 250)

sys.run()

Abschließen möchte ich damit, die beiden LEDs im wechsel blinken zu lassen, dafür benötigen ein zusätzliches Statusfeld. Dieses Statusfeld initialisieren wir mit „true“ und haben somit unser Wechsel blinken erzeugt.

PROJECT = "LED blink"
VERSION = "0.1"

sys = require"sys"

led_red = gpio.setup(0,0,gpio.PULLUP)
led_blue = gpio.setup(1,0,gpio.PULLUP)

local state_red = false
local state_blue = true

sys.timerLoopStart(function()
   led_red(state_red and 0 or 1)
   led_blue(state_blue and 0 or 1)
   state_red = not state_red
   state_blue = not state_blue
   log.info("red led status = ", state_red)
   log.info("blue led status = ", state_blue)
end, 250)

sys.run()

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.