C-Programm für LED-Stufenregelung

Hallo,

ich bin neu in der Welt der C-Programmierung und habe ein kleines LED-Projekt für das ich mich zur zeit sehr interessiere.

Ich möchte gerne mein Arduino UNO so programmieren, dass man mit einem Taster die LED ein- und ausschalten und diese in 3 Stufen in der Leistung variieren kann.

Wenn LED aus

  • Taster 5sek drücken = LED 100% an
  • Taster 1x drücken = LED 66,66% an
  • Taster noch 1x drücken = LED 33,33% an
  • Taster noch 1x drücken = LED 33,33% an
  • Taster noch 1x drücken = LED 100% an
  • Taster 5sek drücken = LED 0% an --> diese Funktion soll in jeder Stufe möglich sein.

Ich hoffe, dass mir einer helfen kann...

Das ist mein bisher vorhandenes Programm.

int LED = 9;      // pin für LED
int BUTTON = 7;   // pin des pushbutton

int val = 0;            // stores state of input (pin 7)
int old_val = 0;        // stores previous value of val
int state = 0;          // state of LED (0 is off, 1 ist EIN)

int brightness = 255;   // LED soll mit 100% beginnen
unsigned long startTime = 5000;  // Programm soll nach 5sek des Tasters starten 

void setup() {
pinMode(LED,OUTPUT);    // LED ist output
pinMode(BUTTON,INPUT);  // BUTTON ist Input

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
So ist er auch auf portablen Geräten lesbar. Das kannst Du auch noch nachträglich ändern.

Dein Sketch ist unvollständig.

Gruß Tommy

Hallo Tommy,

ja das ist richtig. Der Sketch ist unvollständig, da ich hier wissentlich hänge und nicht weiter komme.

Hallo,

du musst deinen Taster entprellen. Für das Stufenweise durchtasten bauste dir ein switch-case.
Für die Zeitabhängige Variante musste dich mit millis beschäftigen.

Theseus erklärt millis()

GuntherB - BlinkwithoutDelay - Die Nachtwächtererklärung

Doc_Arduino:
Für die Zeitabhängige Variante musste dich mit millis beschäftigen.

Oder die 'Eieruhr' in den MobaTools bemühen :wink:

Hallo,

es gibt wie immer mehrere Möglichkeiten. :slight_smile:

Djonko129:
Hallo Tommy,

ja das ist richtig. Der Sketch ist unvollständig, da ich hier wissentlich hänge und nicht weiter komme.

Das ein Sketch eine loop-Funktion haben muss, solltest Du aber schon herausgefunden haben.
Es wird besser sein, wenn Du Dich erst mal mit den Grundlagen beschäftigst. Die IDE enthält viele sinnvolle Beispiele, um diese zu lernen.

Die anderen Vorschläge für die Weiterführung Deines Lernprozesses hat Du ja bereits bekommen.

Gruß Tommy