Show Posts
Pages: 1 ... 17 18 [19] 20 21 ... 24
271  International / Deutsch / Re: Ich blicke nicht mehr durch on: February 25, 2012, 01:08:31 pm
danke dir, werde ich gleich mal überprüfen und ändern.
272  International / Deutsch / Re: Ich blicke nicht mehr durch on: February 25, 2012, 09:46:43 am
Hier das ganze Programm ist noch nicht fertig, da ich verzweifelt den Fehler suche.
Alle Prints sind zum Fehler eingrenzen, komme aber nicht weiter weil das Programm
was völlig unnormales macht.


Code:
/*Treppen Beleuchtung*/
#define IRunten A0 // IR-Melder unten
#define IRoben A1 // IR-Melder oben

int LED_Pins[] = {22,24,26,28,30,32,34,36,23,25,27,29,31,33,35,37}; //Beleuchtung der einzelnen Stufen am Mega
long startzeit;
int flag_up,flag_down, merker;
int status_unten, status_oben, last_unten, last_oben;
int grenzw_unten = 200, grenzw_oben = 220; //Grenzwerte der IR-Dioden
int laufzeit=500;
int LED_Anzahl = sizeof(LED_Pins)/sizeof(int); // Anzahl der LEDs
void setup(){

  Serial.begin(9600);
 
 pinMode(IRoben, INPUT);
 pinMode(IRunten, INPUT);
 for (int i = 0; i < LED_Anzahl; i++){
  pinMode(LED_Pins[i],OUTPUT);
 }
}
void up_on(){// LEDs an von unten nach oben------------------------------------------------------------
 flag_up = 1; flag_down = 0;

Serial.println("up_on");


 for (int i = 0; i < LED_Anzahl; i++){
  digitalWrite(LED_Pins[i],HIGH); delay(laufzeit);}
}
void up_off(){// LEDs aus von unten nach oben------------------------------------------------------------
 flag_up = 0; flag_down = 0;
 
 Serial.println("....................................................");
 
 for (int i = 0; i < LED_Anzahl; i++){
  digitalWrite(LED_Pins[i],LOW); delay(laufzeit);}
}
void down_on(){// LEDs an von oben nach unten------------------------------------------------------------
 flag_down = 1; flag_up = 0;
 for (int i = LED_Anzahl-1; i >= 0; i--){
  digitalWrite(LED_Pins[i],HIGH); delay(laufzeit);}
}
void down_off(){// LEDs aus von oben nach unten------------------------------------------------------------
 flag_down = 0; flag_up = 0;

Serial.println("down_off");

 for (int i = LED_Anzahl-1; i >= 0; i--){
   digitalWrite(LED_Pins[i],LOW); delay(laufzeit);}
}

void loop(){
last_unten = status_unten;
last_oben = status_oben;
if (analogRead(IRunten) > grenzw_unten) status_unten = 1; else status_unten = 0;
if (analogRead(IRoben) > grenzw_oben) status_oben = 1; else status_oben = 0;


Serial.print(analogRead(IRunten));
Serial.print("-----");
Serial.print(last_unten);
Serial.print("-----");

Serial.print(status_unten);
Serial.print("-----");
Serial.println(analogRead(IRoben));

if(last_unten == 0 && status_unten == 1 ){ // IR unten regisitriert jemanden


Serial.println("Jetzt");


 merker = true; // wird benötigt wenn Zeit abgelaufen ist, dann von oben nach unten oder unten nach oben
 if (flag_up == 0){
   startzeit = millis();
   up_on();
 }
 
   else
    down_off();
 }

/*
if(!last_oben && status_oben){ // IR oben registriert jemanden
 startzeit = millis(); merker = false;
 if (!flag_down) down_on(); else up_off();
}
*/

if (millis() - startzeit > 20000){// nach 20 sec wird ausgeschaltet
 // merker zeigt letzte PIR- Auslösung an, unten true, oben false
 if(merker) down_off(); else up_off();
 }
}

273  International / Deutsch / Ich blicke nicht mehr durch on: February 25, 2012, 08:31:21 am
Hallo ich habe hier ein Stück geschrieben, wo ich nicht mehr verstehe was passiert:
Vielleicht hab ich im Moment auch ein Brett vor dem Kopf.
Hat was mit ner Treppenlichsteuerung zu tun aber darum gehts nicht.
Wer kann mir erklären, wieso die Prozudur down_off() ausgeführt wird (erkennbar durch ein Serial.print in der Prozedur)
ohne das das "Jetzt" ausgegeben wird.
Das kann doch gar nicht sein oder???????????????????


Code:
void loop(){
last_unten = status_unten;
last_oben = status_oben;
if (analogRead(IRunten) > grenzw_unten) status_unten = 1; else status_unten = 0;
if (analogRead(IRoben) > grenzw_oben) status_oben = 1; else status_oben = 0;

if(last_unten == 0 && status_unten == 1 ){ // IR unten regisitriert jemanden

Serial.println("Jetzt");

 merker = true; // wird benötigt wenn Zeit abgelaufen ist, dann von oben nach unten oder unten nach oben
 if (flag_up == 0){
   startzeit = millis();
   up_on();
 }
   else
    down_off();
 }
}
274  International / Deutsch / Re: int in float on: February 21, 2012, 12:57:31 pm
ehrlich gesagt, wie Gawin sich hier mit seinen Antworten aufführt.
Ich könnte ihm helfen, aber von mir bekommt er keine Antwort.
Stellt ja alle anderen als dumm hin.
Nur er nicht, dann soll er es doch selber machen.
275  International / Deutsch / Re: 10 Halogen Lampen a12 Volt 20 Watt einzeln ansteuern on: February 20, 2012, 02:52:06 am
Hallo Simon,
die taugen nicht wirklich, bringt zu wenig Licht, ich hab schon einiges probiert.
Gib mal bei ebay "MR16 LED 9W" ein da wirst du Ersatz für Halogenbirnen finden.
Kannst aber auch 4W, 6W oder 8W eingeben, gibts in allen Größen.
Die werden sehr häufig im 10er Pack angeboten, wenn du Glück hast kriegst du die für 25,- €
incl. Versand aus Deutschland.
gruß
Bernward
276  International / Deutsch / Re: Zeit parallel im LCD Display ? on: February 10, 2012, 01:57:20 am
Hallo Goofy,
ich weiß nicht ob ich das jetzt richtig verstehe, aber warum schreibst du nicht anstelle von

 if(twarm>=0){
      //wenn twarm positiv, oeffne mischer
      digitalWrite(8, HIGH);
      delay(twarm);
      digitalWrite(8, LOW);
    }

 if(twarm>=0) //wenn twarm positiv, oeffne mischer
      digitalWrite(8, HIGH);
      else
      digitalWrite(8, LOW);
   
277  International / Deutsch / Re: Zeit parallel im LCD Display ? on: February 09, 2012, 11:01:38 am
ich glaube bei der Steuerung ist die Anzeige der Duschlänge noch das kleinste Problem.
Sobald das Absperrventil öffnet setzt du halt über millis() einen Startwert.
Bei jedem Durchlauf des Programms kannst du dann die verstrichene Zeit berechnen
 zeit=(millis()-startwert)/1000 und du erhälst Sekunden, die du im Display ausgeben kannst.
Soweit der Grundgedanke, wenn noch was unklar ist frag.
gruß
278  International / Deutsch / Re: ultraschallsensor < 2cm on: February 09, 2012, 07:32:18 am
also ich hab mal mit Ultraschallsensoren getestet und die zeigten unterhalb des Bereiches Unsinn an,
leider nicht das, was du willst, nämlich < 2cm.
279  International / Deutsch / Re: Zeit parallel im LCD Display ? on: February 09, 2012, 07:30:29 am
geht beides, ich würde es erst einmal mit millis() versuchen, das delay würde ich auf jeden Fall raus nehmen,
denn da hälst du ja nur den Programmablauf an.
Willst du die Laufzeiten der einzelnen Motoren addieren und anzeigen (für jeden Motor) oder was genau soll
angezeigt werden?
280  International / Deutsch / Re: Zeit parallel im LCD Display ? on: February 09, 2012, 05:36:45 am
Da stellt sich zunächst eine grundsätzlich Frage:
hast du ein Uhrmodul wo du die Sekunden abgreifen willst oder aber möchtest du
anhand der Funktion millis() die Zeiten ausgeben.
gruß
281  International / Deutsch / Test mit PIR-Sensoren, wer benötigt welche on: February 08, 2012, 12:25:07 pm
Hallo,
für meine Treppenlichtbeleuchtung hab ich mir aus Hongkong ein paar PIR kommen lassen, siehe hier:
http://www.ebay.de/itm/290558712650?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_3958wt_1139
und
http://www.ebay.de/itm/270786796651?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
Da ich nicht alle benötige würde ich bei Bedarf einige für 3 € incl. Porto abgeben.
Gruß
maverick1509
282  International / Deutsch / Re: Pooltemperatur messen und ins Internet übertragen on: February 03, 2012, 08:09:01 am
Im Rohr messen ist schwierig, ansonsten würde ich die nehmen:
http://www.ebay.de/itm/3m-Digital-DS18B20-Temp-probe-sensor-thermometer-Rohs-/350527452500?pt=DE_Technik_Computerzubeh%C3%B6r_Kabel_Adapter&hash=item519d107554#ht_4022wt_1014

hab ich selbst im Einsatz und bin sehr zufrieden.
Gruß
283  International / Deutsch / Re: Arduino DS1307 Counter on: January 23, 2012, 04:26:00 am
Hallo Uwe,
so wie du würde ich es nicht machen.
Problem ist doch wenn du z.B. um 10.00 Uhr den Arduino startest
macht er zumindest den ersten Tag nicht das was er soll.

Gruß
Bernward
284  International / Deutsch / Re: Arduino DS1307 Counter on: January 23, 2012, 01:57:53 am
Wenn du eine absolute Zahl haben willst dann mach doch
time.hour*60 + time.min
Solange das größer als 510 und kleiner als 1260 ist Relais an sonst aus-
Gruß
Bernward

P.S. geht natürlich auch mit Sekunden time.hour *3600 + time.min*60 + time.sec
285  International / Deutsch / Re: Anfaenger sucht sowas wie ne WAIT funktion on: January 18, 2012, 05:49:01 am
So ganz ist dein Code nicht nachvollziehbar.
Du machst ja 4 mal hintereinander das gleiche wenn ich das richtig sehe,
Step1 und 2 ist das gleiche wie 3 und 4, 5 und 6 sowie 7 und 8.
Das geht bestimmt wesentlich eleganter.
Du willst aber zwischen jedem Step auf ein Ereignis warten??
Ich weiß nicht wie es anderen geht ich versteh es nicht ganz.
Pages: 1 ... 17 18 [19] 20 21 ... 24