Hallo, bin Anfänger ![]()
habe die 'kleine' Aufgabe eine LED von hell nach dunkel und zurück leuchten zu lassen, das ganze eingebunden in ein relativ kleines Projekt.
Das mit dem Hell/Dunkel geht alleine wunderbar, nimm ich diesen Code aber ins Projekt blinkt die LED nur.
Vermutlich wird die Schleife mit dem +1 bzw -1 nicht abgearbeitet.
Kann jemand helfen?
Ist der Code notwendig oder hat schon so jemand ein Tipp?
Das Programm soll eine Schranke steuern.
Bei Tastendruck (Pin 4) 3 Sekunden warten, dann Schranke für 5 Sekunden auf (Servo an 8), diese 5 Sekunden werden mit Countdown an 7-Segment LED runtergezählt. Dann Schranke zu.
Während Schranke zu (Standard) soll LED (9) immer von hell auf dunkel auf hell leuchten.
Alles funktioniert - nur das mit der LED nicht, diese blinkt nur :-(
int ledPin = 9;
#include <Servo.h>
Servo meinservo;
void setup()
{
meinservo.attach(8);
pinMode(4, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
//pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
// fade in from min to max in increments of 5 points:
for (int fadeValue = 0; fadeValue <= 255; fadeValue += 5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
// fade out from max to min in increments of 5 points:
for (int fadeValue = 255; fadeValue >= 0; fadeValue -= 5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
if (digitalRead(4) == HIGH)
{
analogWrite(ledPin, 0);
delay(3000);
meinservo.write(90);
Neun();
delay(500);
Acht();
delay(500);
Sieben();
delay(500);
Sechs();
delay(500);
Fuenf();
delay(500);
Vier();
delay(500);
Drei();
delay(500);
Zwei();
delay(500);
Eins();
delay(500);
Null();
delay(500);
Aus();
delay(1);
meinservo.write(0);
}
else
{
meinservo.write(0);
}
}
// Unterprogramme für Countdown
void Neun(){
digitalWrite(13,HIGH); //OR
digitalWrite(12,HIGH); //OM
digitalWrite(11,HIGH); //OL
digitalWrite(10,HIGH); //M
digitalWrite(7,HIGH); //UR
digitalWrite(6,HIGH); //UM
}
void Acht(){
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH); //UL
}
void Sieben(){
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW); //UL
}
void Sechs(){
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH); //UL
}
void Fuenf(){
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,LOW); //UL
}
void Vier(){
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW); //UL
}
void Drei(){
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,LOW); //UL
}
void Zwei(){
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
digitalWrite(7,LOW);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH); //UL
}
void Eins(){
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW); //UL
}
void Null(){
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH); //UL
}
void Aus(){
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW); //UL
}
→ 