INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ablaufsteuerung ohne delay - tageszeitabhängige Dimmer- Funktion
18.08.2014, 13:17 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2014 13:52 von MaHa1976.)
Beitrag #9
RE: tageszeitabhängige Funktion
Habs zusammen gebastelt.... :-)

hier mal das Ergebnis- die Dunktion ist so nur für eine LED umgesetzt... im Setup ist noch der volle Umfang beschrieben- ich mache das mal alles bewußt so in kleinen Schritten, damit der nächste Anfänger vielleicht leichter rein kommt...

int Poti = 0; // Fotowiderstand am Analog 0
int ledPin1 = 3; // LED am Digital 3
int ledPin2 = 5;
int ledPin3 = 7; // LED am Digital 3
int ledPin4 = 10;
int ledPin5 = 12;
int ButtonPin = 2;
int Taste = 0;
int ValuePot = 0; // Variable für Spannung am Analog In
int Empfindlichkeit1 = 180;
int Empfindlichkeit2 = 140;
int Empfindlichkeit3 = 90;
int Empfindlichkeit4 = 60;
int Empfindlichkeit5 = 40;
// über diesen Wert kann die Empfindlichkeit eingestellt werden
// wird der Wert erhöht, so schaltet die LED erst ein, wenn es dunkler wird
// und umgekehrt

void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ButtonPin, INPUT);
}

void loop() {

ValuePot = analogRead(Poti); // Abfrage am Analog Eingang
// ValuePot kann einen Wert von 0 - 1023 annehmen.
Taste = digitalRead(ButtonPin); // der digitale Eingang (Pin2) wird abgefragt
// ist der Schalter geschlossen ist Button = HIGH
// ist der Schalter offen ist der Button = LOW

if ((Taste == HIGH) && (ValuePot >= Empfindlichkeit1)) {

digitalWrite (ledPin4, HIGH);
delay (10000);
}
else {
digitalWrite (ledPin4, LOW);
}

}

so funktioniert es jetzt mit dem hoch-faden, wenn beide Bedingungen erfüllt sind.... allerdings bleibt die LED dann nicht auf high, sondern geht immer wieder auf LOW und faded neu hoch.


int Poti = 0;
int ledPin1 = 3;
int ledPin2 = 5;
int ledPin3 = 7;
int ledPin4 = 10;
int ledPin5 = 12;
int ButtonPin = 2;
int Taste = 0;
int ValuePot = 0;
int Empfindlichkeit1 = 180;
int Empfindlichkeit2 = 140;
int Empfindlichkeit3 = 90;
int Empfindlichkeit4 = 60;
int Empfindlichkeit5 = 40;

void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ButtonPin, INPUT);
}

void loop() {

ValuePot = analogRead(Poti);
Taste = digitalRead(ButtonPin);
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5)

if ((Taste == HIGH) && (ValuePot >= Empfindlichkeit1)) {
analogWrite(ledPin4, fadeValue);
delay(30);
}
else{
analogWrite(ledPin4, 50);
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 15:56 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2014 10:49 von MaHa1976.)
Beitrag #10
RE: tageszeitabhängige Funktion
Habs :-D

nun fehlt nur noch, dass ein externes Signal, was dann über Funk von der Zentrale kommt, die max. Helligkeit bestimmt, idealerweise auch das Fadingtempo... nun habe ich die Funkmodule noch nicht- hab also keine Ahnung was die an Information ausgeben...

Aber mal prinzipiell- wenn ich 2 verschiedene Programmabläufe (oder mehr) vom Signal der Zentrale abhängig machen möchte, würde ich doch die Zeile "if....." noch ergänzen zu:
if ((Taste == HIGH) && (ValuePot >= Empfindlichkeit1) && (Zentrale = 1) {.... Lichtszenario1....
dann den ProgrammCode für Szenario 1

danach dann entsprechend den Code für Szenario 2 etc. für den Fall, dass dann ide Zentrale = 2 ist....

richtig?

Code:
int Poti = 0;
int ledPin1 = 3;
int ledPin2 = 5;
int ledPin3 = 7;
int ledPin4 = 10;
int ledPin5 = 12;
int ButtonPin = 2;
int Taste = 0;
int ValuePot = 0;
int Empfindlichkeit1 = 180;
int Empfindlichkeit2 = 140;
int Empfindlichkeit3 = 90;
int Empfindlichkeit4 = 60;
int Empfindlichkeit5 = 40;

void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ButtonPin, INPUT);
}

void loop() {
  
ValuePot = analogRead(Poti);
Taste = digitalRead(ButtonPin);

if ((Taste == HIGH) && (ValuePot >= Empfindlichkeit1)) {

for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) {
    analogWrite(ledPin4, fadeValue);
    delay(30);}
delay (3000);
for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) {
    analogWrite(ledPin4, fadeValue);
    delay(30);
}}}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 16:35
Beitrag #11
RE: tageszeitabhängige Funktion
Code:
Zentrale == 1
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 18:43
Beitrag #12
RE: tageszeitabhängige Funktion
äh, klar... ;-) danke für den Hinweis...

das heißt ich bin auf dem richtigen Weg? Cool...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 19:27
Beitrag #13
RE: tageszeitabhängige Funktion
Hi,
auch auf verschlungenen Pfaden kann man zum Ziel gelangen...
Eins der nächsten Probleme, das Du bekommen wirst, ist dass während des "Fadens" und der 3 Sekunden, die die LED an ist, nichts anderes geht. Außerdem wirst Du ja das Licht eingeschaltet lassen wollen, bis der Schalter wieder auf "LOW" geht.
Meiner Meinung nach solltest Du Dich als nächstes damit befassen, wie Du obiges Programm hinbekommst ohne ein einziges (!) delay(). Suche dafür mal nach "blink without delay". Erst wenn Du wirklich 125%ig verstanden hast, wie das funktioniert, dann solltest Du weitermachen. (Du willst ja wahrscheinlich nicht unter der einen Lampe warten wollen, bis sie mit Hochdimmen fertig ist, bevor Du unter die nächste läufst...)
Als nächstes solltest Du Dich mit dem Thema "Arrays" befassen. Sonst wird Dein Coding schnell unhandlich und jede Änderung wird sehr aufwändig werden. (Außer Du hast mit jeder Lampe etwas prinzipiell unterschiedliches vor.)
Dann sollte wahrscheinlich die Behandlung für eine Sensor/Lampe/Taster (oder wie auch immer) -Kombination in einer eigenen Funktion ablaufen.
...das mal so als meine Ideen, aber es geht bestimmt auch anders.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 20:44
Beitrag #14
RE: tageszeitabhängige Funktion
naja, das mit dem delay fürs Fading ist schon so ähnlich gewollt... ich bekomme ja ein kurzes Signal vom Bewegungssensor, was dann wieder abfällt... es soll also eigentlich hoch gedimmt werden wenn am Eingang high anliegt... erst wenn der Eingang auf low geht soll verzögert das Licht runter dimmern...

Aber richtig... ein Problem ist mir schon aufgefallen- wenn ich mit einer Steuerung mehrere Leuchten verzögert hoch - und runter dimme, klappt es durch die delays nicht....

aber ich bin ja schon mal stolz auf die bisherigen Erfolge... langsam lerne ich die "Sprache"... :-D
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 20:52
Beitrag #15
RE: tageszeitabhängige Funktion
(18.08.2014 20:44)MaHa1976 schrieb:  naja, das mit dem delay fürs Fading ist schon so ähnlich gewollt...
Das ist mir schon klar, aber Du musst das so hinbekommen, dass das Programm während des "delay" die Chance hat, noch was anderes zu machen. Ich meinte damit nicht, dass Du nicht dimmen/faden darfst. Schau Dir wirklich mal das "blink without delay" an.
(Ich will damit nicht Deine bisherigen Erfolge schmälern, sondern nur den meiner Meinung nach sinnvollen weiteren Weg aufzeigen.)
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 21:01
Beitrag #16
RE: tageszeitabhängige Funktion
Weiß ich doch- hab das schon so verstanden ;-)

Ich schau es mir grad schon an... verstehe es aber noch nicht...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Hilfe beim Problem mit dem Delay raspido 11 2.857 14.06.2015 22:31
Letzter Beitrag: raspido
Wink Pulse Sensor Amped ohne Processing Sandmannn 16 3.731 18.02.2015 17:05
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste