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
Arduino Haussteuerung
01.03.2014, 15:55 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2015 09:21 von derdemo.)
Beitrag #9
RE: Arduino Haussteuerung
hallo,
-wir reden von 1 etage mit 10-15 räumen
-das nur ist werte aus dm ds18B20 wusste ich, ich meinte das ich zb 20grad an mein lcd keypadshield einstelle und
bei unter 20 grag die heizung an geht und bei 20 grad wieder aus sozusagen eine regelung
-licht wolte ich durch tastendruck anschalten und durch erneuten tastendruck wieder aus und das ganze über ein potii auch noch dimmbar
-die dht11/22 hab ich schon ins auge gefasst aber wie du sagst nur 20m absetzbar und ich find die sind auch zu groß um irgendwo einzubauen
-wegen der lüftersteuerung mache ich mich noch nicht kaput softwareseitig zu programmieren ist für mich viel schlimmer
weil halt erst neu angefangen hab...
- nur wegen den displays in jeden raum ein arduino , das will ich nicht
reicht denn nicht einer der alles steuert
drum fragte ich ja ob der speicher aufn uno reicht sonnt würde ich mir nen mega holen
- wegen den lcds nehme ich lcd keypad shields wegen den tasten um zu regeln (touch ist mir dann noch zu teuer und zu aufwendig )
-wegen den ethernet, eigentlich wollte ich nur 1 ein ethernet shield verpassen weil ich auch nur 1 arduino nehmen will/wollte...
-wegen den relais ich habe mit den geliebeugelt

http://www.ebay.de/itm/Neu-8-Channel-Kan...4ab7e2b2e7

-sind die denn nicht für den direkten anschluß an den arduino geeignet ?
-die temps werde ich über den oneWire bus realisieren weil ich da nur 1 eingang brauche
-und wegen der verkabelung mach ich mir gar kein kopp... wird schon irgendwie werden :-)
ich werde versuchen alles einzeln zu schreiben und hochladen vielleicht bekomme ich ja nen feedback dadrauf oder hilfen

im prinzip hab ich für das licht jetzt das geschrieben (ist noch nicht fertig)
Code:
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7);


int button1Pin = 2;   //digital 2
int led13Pin =  13;   //digital 13
int button2Pin = A2;  //analog A2
int led12Pin =  12;   //digital 12
int merker1=0;                    
int merker2=0;                    

int buttonState1 = 0;
int buttonState2 = 0;

void setup()
  {
    pinMode(led13Pin, OUTPUT);
    pinMode(led12Pin, OUTPUT);    
    pinMode(button1Pin, INPUT);
    pinMode(button2Pin, INPUT);
    
    lcd.begin(16,2);
    lcd.setCursor(5,0);
    lcd.print("Arduino");
    lcd.setCursor (2,1);
    lcd.print ("Haussteuerung");
    delay (2000);
    lcd.clear();
    
  }

void loop()

{
  lichtwz();             //licht wohnzimmer
  lichtbad();            //licht bad
}

void lichtwz()
{
   buttonState1 = digitalRead(button1Pin);

  if ((buttonState1 == HIGH)&&(merker1==0))
    {  
      digitalWrite(led13Pin, HIGH);
      merker1=1;
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Licht WZ an");
    }
  
  if ((buttonState1 == LOW)&&(merker1==1))
    {  
      merker1=2;
    }
  
  if ((buttonState1 == HIGH)&&(merker1==2))
    {
       digitalWrite(led13Pin, LOW);
       merker1=3;
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("Licht WZ aus");
    }
   if ((buttonState1 == LOW)&&(merker1==3))
    {  
       merker1=0;
    }  }
  
void lichtbad()
    {
   buttonState2 = digitalRead(button2Pin);
    if ((buttonState2 == HIGH)&&(merker2==0))
    {  
      digitalWrite(led12Pin, HIGH);
      merker2=1;
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Licht Bad an");
    }
  
  if ((buttonState2 == LOW)&&(merker2==1))
    {  
      merker2=2;
    }
  
  if ((buttonState2 == HIGH)&&(merker2==2))
    {
       digitalWrite(led12Pin, LOW);
       merker2=3;
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("Licht Bad aus");
    }
   if ((buttonState2 == LOW)&&(merker2==3))
    {  
       merker2=0;
    }
      
    
}

ich steuere einen taster an
-die eine seite des tasters an plus
-die andere seite des tasters über ein 10k ohm (muss ich trotzdem noch softwareseitig debouncen oer reicht das so) widerstand an minus
und hienter dem wiederstand weg zum pin digital 2
-der taster wird als schalter betrieben und schaltet pin 13 HIGH
-an den pin 13 (jetzt plus da er HIGH ist gehe ich an ein poti,
minus noch angeschlossen und vom abgehenden mittelkontakt (spannungsteiler)
gehe ich über ein errechneten wiederstand zur led und dann zu minus
-fazit led wird übert aster geschalten und kann per poti beliebeig gedimmmt werden .
-das lcd zeigt mir den aktuellen stauts an, entwerder led an oder led aus
funktioniert auch erstmal soweit

-jetzt habe ich festgestell der taster der an digital pin 2 hängt wenn ich den abmache
und an digital pin 3 schließe auch der zustand von pin 2 geändert wird (die led von pin 13 angeht und das lcd led an anzeigt)
bei den analogen passiert genau das gleiche, irgendwie stören die sich gegeseitig
ich verstehe nur noch nicht warum das so ist hatt jemand eine erklärung bzw nen tip ???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.03.2014, 19:09
Beitrag #10
RE: Arduino Haussteuerung
Hallo eddy,
Zitat:wir reden von 1 etage mit 10-15 räumen
Weißt du schon wie du die verkabeln willst? Stern, Bus? In jedem Fall brauchst du abgeschirmtes Kabel, weniger wegen der Entfernungen, eher wegen der vielen Meßstellen.
Zitat:und bei unter 20 grag die heizung an geht und bei 20 grad wieder aus sozusagen eine regelung.
So einfach geht das nicht, da dann die Heizung unter Umständen ständig am schalten ist. Stichwort Hysterese, guck mal hier im Formum danach.
Zitat:licht wolte ich durch tastendruck anschalten und durch erneuten tastendruck wieder aus und das ganze über ein potii auch noch dimmbar
Die Tasterei ist nicht wirklich ein Problem. beim Dimmen wirds schon komplexer.
Um die Lampen ein-/auszuschalten würde eine Relaisschaltung reichen, soll gedimmt werden, brauchst du einen Treiber (sprich eine Lastschaltung), die direkt die Verbraucher ansteuert.. Weiterhin müsstest du dich mit dem Thema PWM / Pulsweitenmodulation beschäftigen.
Zitat: nur wegen den displays in jeden raum ein arduino , das will ich nicht
reicht denn nicht einer der alles steuert
Naja du hattest geschrieben, dass du in jedem Raum ein Display haben möchtest.
Ein Display an sich ist erstmal dumm, es zeigt an was man ihm gibt. Daher eher kein Display ohne Arduino. Oikay, man könnte die Displays über einen I2C - Bus laufen lassen, der ist aber nur auf kurzen Distanzen einsetzbar, ansonsten brauchst du wieder Schaltungstechnik um mehr rauszuholen. Naja und Strom brauchen die Teile auch.
Das Relaisshield geht in Ordnung, benutze ich auch ohne Probleme. Allerdings braucht es pro Relais eben ein Pin am Arduino.
Zitat:drum fragte ich ja ob der speicher aufn uno reicht sonnt würde ich mir nen mega holen
Wie ich das so sehe wirst du schon wegen der Speicherfrage auf einen Mega gehen müssen. LCD+Ethernet+Sensoren+Aktoren da kommt eine Menge Programmcode zusammen.
Zitat:(touch ist mir dann noch zu teuer und zu aufwendig )
Ist Ansichtssache. Vorausgesetzt man bekommt die Verkabelung der Sensoren hin, ist ein zentraler Mega + aufgestecktem Touch mit Sicherheit billiger als ein zentraler Mega + x mal LCD dezentral.

Den Code schaue ich mir später an. Wäre gut wenn du zukünftig deinen Code mit dem "#" - Symbol reinstellst. Liest sich besser.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2014, 00:41
Beitrag #11
RE: Arduino Haussteuerung
-wenn es möglich ist würde ich es gern im ring verkabeln um eine defekte stelle auszuschließen
ist das möglich ?
wenn das nicht geht würde ich dei sternverdrahtung bevorzugen weil da halt im fehlerfall
auch nur ein modul ausseigt und nicht alles
da ich an kabel/leitungen relativ günstig rankomme würde ich netzwerkkabel reinziehen wollen
so cat 6-7 wobei ich auf cat 6 tendiere weil ich denke das das von der schirmung schon voll ausreichend ist
und bei cat 7 der schirm nur dichter geflochten ist
-hysterese für die temp steuerung ist nen guter tip danke werde ich mich drum kümmern wenn ich mit den licht fertig bin
und mich an die temperaturen ran mache ...
-mit den relais leuchtet auch ein da die nur durchschalten können
hatt denn veilleicht jemand ein tip für nen treiber den ich nutzen könnte bzw welcher gut währe ?
-so nen lcd kepad schild währe schon was feines in jeden raum um halt raumspezifische daten
"vorort" einstellen zu können temp feuchte ....
I2C hab ich schon gelesen das dass von der reichweite nicht der hammer ist.
und wenn ich wirklich alle räume mit displays ausstatten will brauche ich ja nen haufen ein und ausgänge
oder kann man die auch irgendwie zusammenfassen wie bei den temperaturen ?
-das mit den relaisschlid sehe ich jetzt noch nicht so porblematisch und bei nen arduino mega hatt mann ja auch genügend
pins und wenn nicht reicht können ja dann in dem fall die schieberegister zum einsatz kommen
-wegen bedeken der datenmenge werde mir bei gelegenheit schon mal nen mega bestellen
-das ist mit sicherheit richtig das es billiger ist ein mega mit ein touch display auszustatten
als mit 10-15 lcd keypads aber mann hatt halt nur eine bedienstelle bis aufs handy und lappi
aber die programmierung ist bestimmt auch schwieriger las bei en normalen lcd keypad
(hab noch nicht nch eiene touch panel geguckt weil das bis gerade für mich nochnicht zur debatte stand )
-auf der anderen seite wie oft stellt mann dann noch die temp ein wenn mann mann seine
richtige temp zur behaglichkeit gefunden hat
und bei er raumfeucht guckt eh nie wieder jemand hin weil man es einfach so hinnimmt
und die einstellung lässt ...
schönen abend noch mfg. eddy kett
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2014, 09:23
Beitrag #12
RE: Arduino Haussteuerung
(01.03.2014 15:55)eddykett schrieb:  -jetzt habe ich festgestell der taster der an digital pin 2 hängt wenn ich den abmache
und an digital pin 3 schließe auch der zustand von pin 2 geändert wird (die led von pin 13 angeht und das lcd led an anzeigt)
bei den analogen passiert genau das gleiche, irgendwie stören die sich gegeseitig
ich verstehe nur noch nicht warum das so ist hatt jemand eine erklärung bzw nen tip ???
Hi,
das sieht doch schon ziemlich gut aus.

Offene Eingänge können irgendwelche Einkopplungen oder Störungen einfangen. Wenn die Dinger nicht eindeutig auf HIGH oder LOW liegen, dann messen sie irgendwas. Bei Deiner Taster-Schaltung hast Du ja schon einen Pulldown-Widerstand eingebaut, deshalb ist da wohl nichts passiert. Das kann man auch bei komplett offenen Eingängen machen. (Muss man aber nicht, da er ja kaum benutzt wird wenn er komplett offen ist.)
Alternativ geht auch das:
Code:
pinMode(2, INPUT_PULLUP)
Das schaltet dann im Microcontroller intern einen Pullup-Widerstand ein. D.h. dass der Eingang wenn er offen ist auf HIGH liegt. Allerdings kannst Du an einen so konfigurierten Eingang Deiner Tasterschaltung nicht mehr anschließen, da der Taster auch gegen HIGH schaltet, also würde der Eingang immer HIGH anzeigen.
D.h. Dein Schalter müsste dann (ohne weiteren Widerstand) gegen LOW (GND) schalten und hätte negative Logik (an=LOW, aus=HIGH). Du könntest Dir aber den eigenen Widerstand sparen.
(...soweit ich das alles verstehe.)

Mit Entprellen hat das alles allerdings (IMHO) nichts zu tun. Auch mit dem Widerstand kann es vorkommen, dass der Taster bei 1x drücken mehrere Impulse "sendet". Das liegt einfach daran, dass es im Grenzbereich zwischen "fast geschlossen" und "geschlossen" vorkommen kann, dass Strom fließt und dann mal wieder nicht.
Wenn Du hardwareseitig entprellen willst, dann brauchst Du irgendwo einen Kondensator. Softwareseitig muss man bei einem Statuswechsel (HIGH->LOW oder auch umgekehrt) mal kurz ein paar Millisekunden warten und dann nochmal nachsehen, ob der neue Status immer noch gesetzt ist. Ich denke mal, dass das diese bounce-Lib macht.

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
02.03.2014, 11:46
Beitrag #13
RE: Arduino Haussteuerung
hallo,
die nicht belegten ausgänge auf low zu schalten hatt geklappt ;-) danke
könnte da jetzt das programm erweitern auf 10 taster aber das mache ich zu schluss
weil ich erst mal mit der grundprogrammierung fertig werden will.
und kopieren und einfügen könnte jeder für sich auch individuell machen
da ich nicht weis wieviel räume jemand zuhause hatt ...

debouncen würde ich gern hardwareseitig da ich sowieso dann noch nen shild baue
wo die ganzen tasterkabel drauf gehen (weil ich nicht jedesmal wenn was ist ans bod gehen will
und es lässt sich dann auch besser auflegen, spart platz aufn arduino)

aber jetzt ist meine frage wie groß sollte der kondensator ca sein den ich einsetzen muss ?

währe es für mich einfacher alles auf ein board zu schreiben
oder is es leichter mehrere unos zu nehmen und die miteinander zu verbinden und komunizieren zu lassen ?

eins für die feuchte
eins für die heizung
eins für licht
eins für diverse schaltung
ich stelle mir gerade die programmierung umständlich vor...

gruß martin

ps. kommt denn hier jemand zufälligerweise aus der nähe halle/leipzig
bei den ich auch mal für nen paar fragen und erklärung rum komen könnte
wenn ich nicht weilter komme ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2014, 12:27 (Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2014 12:28 von Thorsten Pferdekämper.)
Beitrag #14
RE: Arduino Haussteuerung
(02.03.2014 11:46)eddykett schrieb:  debouncen...
aber jetzt ist meine frage wie groß sollte der kondensator ca sein den ich einsetzen muss ?
Keine Ahnung, ich weiß nur, dass bei hardwareseitiger Entprellung normalerweise irgendwo ein Kondensator hin muss. Ich würde sowas immer mit Software machen, ist (für mich) einfacher.

(02.03.2014 11:46)eddykett schrieb:  könnte da jetzt das programm erweitern auf 10 taster aber das mache ich zu schluss
weil ich erst mal mit der grundprogrammierung fertig werden will.
und kopieren und einfügen
Schau Dir mal in der Arduino-Referenz das Thema "Array" an...

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
02.03.2014, 18:22
Beitrag #15
RE: Arduino Haussteuerung
Hallo eddy,

Zitat:-wenn es möglich ist würde ich es gern im ring verkabeln um eine defekte stelle auszuschließen ist das möglich ?
Ring ist bei 1Wire sowieso nicht vorgesehen. Bei den Längen wird es dann wohl ein (sehr) langes Kabel mit einem Abschlußwiderstand am Ende. Allerdings ist auch da bei ca. 200 m Schluß (eigene Erfahrung mit Kat-5 Kabel). Kat-6/7 ist nicht erforderlich bzw. bringt kaum Verbesseungen.
LCD/Keypad dezentral ist auch nicht so billig. Entweder du nimmst LCD ohne Keypad und baust dir selbst die Keypads mit Spannungsteilern und gehst mit einem Pin dann zum Arduino. Würde aber alleine für die Keypads schon mal 10 bis 15 Analoge-Pins bedeuten (selbst der Mega hat nur 16 davon). LCDs gibts zwar auch seriell getrieben, die brauchen aber eben auch zwei Datenleitungen. Von Seiten Software könntest du es mit der SoftSerial Lib versuchen. Damit solltest du genügend RX/TX Pins zur Verfügung haben. Und beachten: jedes serielle Display braucht seine eigenen RX/TX-Pins und damit Leitungsadern.
Zitat:aber die programmierung ist bestimmt auch schwieriger las bei en normalen lcd keypad
Eher nicht , wenn mans einmal kapiert hat.
Zitat:debounce - aber jetzt ist meine frage wie groß sollte der kondensator ca sein den ich einsetzen muss ?
Guck mal hier: http://3.bp.blogspot.com/-1uGl36sI67M/T8...bounce.PNG

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2014, 19:25 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2015 09:21 von derdemo.)
Beitrag #16
RE: Arduino Haussteuerung
hallo,
dann werde ich es in stern verkabeln
wenn cat 5 reicht ist doch super und längen bis zu 200m werde ich denke nicht brauchen

naja ich hab mein keypad für 12 euro glaub ich bekommen das ist io vom preis her
und wenn ich da 10 stück kauf finde ich das auch noch ok

wengen der analogen pins hab ich mir auch schon gedanken gemacht
wenn es nich so schwierig ist werde ich 2 megas kaufen
auf den einen die displays laufen lassen
und auf den anderen den rest

aber hab es noch nie gesehen wie das geht
und wie umfangreich das dann ist
wenn der aufwand zu groß wird mache ich halt doch nen zentrales display oder max 2 displays

ich war schon wieder etwas voreilig und habe das hier geschrieben
weil ich durchzufall beim stöbern auf eine seite gestoßen bin
wo das schon etwas vorbereitet war
ich hab es für mich angeglichen und versucht mit komentaren zu beschreiben was da passiert
um es anderen usern zu vereinfachen (die es nutzen,durchblicken und ändern wollen)
ps. ich hoffe es ist richtig und verständlich erklärt zu haben
Code:
#include <LiquidCrystal.h>
#include <Menu.h>
#include <MenuItem.h>
#include <Wire.h>
// display einbinden
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// menü objekte erstellen
Menu myMenu;

// menuitems erstellen
//                Name          nummer Vor  zurück hoch  runter
MenuItem item001("   Willkommen", 001, 101, 001,   001,  001);
MenuItem item101("Wohnzimmer "  , 101, 102, 001,   033,  201);
MenuItem item102("Licht "       , 102, 102, 101,   102,  102);
MenuItem item201("Kueche"       , 201, 201, 001,   101,  301);
MenuItem item301("Bad"          , 301, 301, 001,   201,  401);
MenuItem item401("Flur"         , 401, 401, 001,   301,  501);
MenuItem item501("Esszimmer"    , 501, 501, 001,   401,  601);
MenuItem item601("Arbeitszimmer", 601, 601, 001,   501,  701);
MenuItem item701("Schlafzimmer" , 701, 701, 001,   601,  033);
MenuItem item033("Led Test"     , 033, 033, 001,   701,  101);


int readButton; //
int select;

void ledTest(){
  digitalWrite(13, HIGH);        //pin 13 anschalten
  delay(3000);                   // für 3 sek
  digitalWrite(13, LOW);         //pin 13 ausschalten
}


void setup(){
  lcd.begin(16, 2);               //display starten
  lcd.setCursor(5,0);             //cursor 5te spalte der 1 zeile setzen
  lcd.print ("Arduino");          //arduino schreiben
  lcd.setCursor(2,1);             //cursor 2te spalte der 2 zeile setzen
  lcd.print ("Haussteuerung");    //haussteuerung schreiben
  delay (2000);                   //für 2 sek stehen lassen
  
  //display zum menü hinzufügen
  myMenu.addLCD(&lcd);
  
  // items zum menü hinzufügen
  myMenu.addItem(item001);
  myMenu.addItem(item101);
  myMenu.addItem(item102);
  myMenu.addItem(item201);
  myMenu.addItem(item301);
  myMenu.addItem(item401);
  myMenu.addItem(item501);
  myMenu.addItem(item601);
  myMenu.addItem(item701);
  myMenu.addItem(item033);
  
  myMenu.begin(001); // menü starten mit (001=wilkommen)
  
  pinMode(13, OUTPUT); // pin 13 als ausgang freigeben
}

void loop(){
  readButton = analogRead(0); // wert von eine gedrückten taster lesen
  
  // prüfen welcher taster gedückt ist
  if(readButton < 50){
    myMenu.goForward();
  }
  if(readButton > 50 && readButton < 195){
    myMenu.goUp();
  }
  if(readButton > 195 && readButton < 380){
    myMenu.goDown();
  }
  if(readButton > 380 && readButton < 555){
    myMenu.goBack();
  }
  
  // prüfen ob der select taster gedrückt wurde
  if(readButton > 555 && readButton < 790){
    select = myMenu.select(); //prüfen ob eine funktion vorhanden ist
                          
    switch(select){
      case 033:       //wurde ein funktion gefunden diese starten
        ledTest();    //void ledtest läuft jetzt ab
        break;
        
      default:
        break;
    }
  }
  readButton = 1000;

}

und jetzt hab ich wieder fragen ;-)
-wegen des besseren lesens muss ich da vor jede programzeile eine # schreiben ?
-ist das menü überhaupt geeignet für mein gesammtvorhaben??
-wenn ja
wie binde ich jetzt am besten mein beleuchtungssketch hier ein um erst mal zu testen ob es geht ??
-wenn nicht wie erstelle ich eins das geeignet ist ?
-mit den array hab ich mal geguckt aber bin mir noch nicht schlüssig wie ich das auf die beleuchtung beziehen soll
bzw funktioniert das dann auch mit den menü ?

ich danke schon mal
mfg. eddykett
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Neuling: Zugeklappten Laptop mit Arduino aufwecken + Kiste aufklappen? Ikearegal 2 2.531 02.02.2014 07:59
Letzter Beitrag: Ikearegal

Gehe zu:


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