Show Posts
Pages: [1] 2 3 ... 7
1  International / Deutsch / Re: Daten aus .txt an arduino senden on: June 22, 2012, 08:32:12 am
Halo, ohne das naeher getestet zu haben: unter Linux sollte das ziemlich einfach gehen indem man direkt auf die Schnittstelle schreibt:
echo transfer.txt > /dev/ttyUSB0

Das ganze dann in ein Skript, dann in ein cronjob... Und fertig ist

Die Einstellungen fuer die Kommnikation sind dabei dann glaube ich die, die als letztes verwendet wurden.

Unter Win gibt es sicher einen ähnlichen Weg. Eventuell kann man auch ein serielles Kommunikationsproramm per Kommandozeile ansprechen.
2  International / Deutsch / Re: Pooltemperatur messen und ins Internet übertragen on: February 03, 2012, 06:30:19 am
Hallo, als Sensoren wuerde ich auch den Dallas OneWire Sensor nehmen.
Fuer die Funkuebertragung wuerde ich XBee shields nehmen, nicht gerade billig, aber bei mir haben erste Tests gezeigt, dass das verdammt gut funktioniert.
http://www.seeedstudio.com/depot/xbee%C3%82%C2%AE-rf-modules-znet-25-1-mw-chip-antenna-p-226.html?cPath=139_142

Naja dann muss der zweite Arduino noch mit Ethernet versehen werden und dort ein Webserver laufen.

Ich wollte so was aehnliches auf dieser Basis bauen, mein Projekt habe ich fallen lassen (nicht weil ich es nicht fertig bekommen habe, sondern weil ich eine viel genialere Loesung fuer mich etabliert habe.)

Ich weiss wir sind hier im Arduino Forum, jedoch moechte ich kurz folgende Sachen nennen, denn das ist eine Plug and Play Variante, in 15 Minuten fertig, und nicht viel teurer.

Ich meine FH20 und FHEM.
Man koennte eine Fritzbox nehmen oder eben ein TuxRadio (http://shop.busware.de/product_info.php/cPath/1/products_id/58) ,
dann eine "Antenne"
http://shop.busware.de/product_info.php/cPath/1/products_id/29
Und dann eben Funksensoren:
http://www.elv.de/Funk-Temperatur-Luftfeuchteau%C3%9Fensensor-S-300-TH-fuuml;r-z-B-ELV-WS-200300,-ELV-WS-300-PC,-USB-WDE1-und-IPWE-1/x.aspx/cid_74/detail_10/detail2_20690/flv_/bereich_/marke_

Mit der Ausstattung hast Du sofort ein Logging, Darstellung per Website, diverse Trenddarstellungen, Einwahl per VPN..
eben durch die Software (http://fhem.de).

Keine Frage, es ist eine tolles Projekt das mit Arduino zu versuchen. Ich habe aber nur maessige Erfahrungen mit Arduino - Webserver . Funktioniert hat es, aber es gab gewaltige Performance Engpaesse (nun ja, ist bei 16MHZ auch kein Wunder)
3  International / Deutsch / Re: 24V Eingänge mit Arduino schalten (optokoppler, Transistor, MOSFET) on: January 17, 2012, 06:16:44 pm
Hallo Vielen Dank fuer die Antwort. ich habe Herrn Rinck aus Rotenburg uebrigens schon einige Male persoenlich getroffen. Ach ja und die USE32 Multiplexer sind aehm ja eher unzuverlaessig. Ich selbst habe bestimmt 10 davon in dreiwoechentlichen Abstand zur Garantie eingeschickt.... Also ehrlich, wenn ich koennte ich wuerde verzichten. Letztlich muss fuer den arduino multiplexer ein arduino prgramm geschrieben werden,was ich ja sowieso gern vertiefen moechte. Sollte der MP gut funktionieren habe ich eine tolle Vorlage fuer weitere Projekte. ein erhoehter Zeitaufwand beim ersten Mal ist dabei fuer mich kein Problem. Ich moechte hier 25 Temperaturen mit onewire erfassen und per arduino in 16 digitale EIngaenge rein-schiessen. Solch ein Multiplexer ist wahrscheinlich eher ungebaeuchlich, da muss man dann eeh selber bauen.
Trotzdem Vielen Dank
4  International / Deutsch / Re: 24V Eingänge mit Arduino schalten (optokoppler, Transistor, MOSFET) on: January 16, 2012, 04:43:58 pm

Der A2981 oder UDN2981 ist das was Du brauchst. Dieser zieht den Ausgang auf + Versogungsspannung. http://www.allegromicro.com/en/Products/Motor-Driver-And-Interface-ICs/High-and-Low-Side-Drivers/UDx2981-2.aspx


Perfekt, das sieht exakt nachdem aus was ich suchte.
Noch einmal Vielen Dank.
5  International / Deutsch / Re: 24V Eingänge mit Arduino schalten (optokoppler, Transistor, MOSFET) on: January 16, 2012, 03:34:21 pm
Vielen Dank fuer die Antwort. Das waere ja ne tolle Sache mit dem ULN 2803, aber mal ne Frage wie mache ich das, bekommt der ULN2803 24 VDC Spannung der Arduino gibt dann 5 V in den Eingang das wars, ohne Widerstaende oder so?

Massen koennen zusammengelegt werden. Es Muessten pulldown Widerstaende in der SPS Eingangsseite sein.

Zuverlaessigkeit, ganz klar, die wird dadurch nicht hoeher, und selbstgebastelte Multiplexer tun ihr uebriges. Hier stehen jetzt die Investition von 1200 Eur gegen 200 mit 2 Arduino Megas  gegenueber und den entsprechenden DIs ... Da muss ich das einfach mal machen....
Selbst ein Holzhammer Watchdog, der alle 12h die Arduinos neu durchstartet waere denkbar.


Mich wuerde mal interessieren was die geringere Zuverlaessigkeit bedeutet, bzw. wo sie anfaengt.

Ist ein einfacher Arduino auch schon "unzuverlaessig"? Oder wird das durch das hinzufuegen von Komponenten zum Board (was in einem individualaufbau ja dann erstmal keiner getestet hat) dann entsprechend anfaelliger gegen Stoerungen. Der Atmega selber sollte doch aber mit einem ordentlich gebauten Programm fuer sich allein schon erstmal zuverlaessig arbeiten, oder macht man da auch schon Abstriche...

Vielen Dank erstmal fuer die Hinweise.
6  International / Deutsch / 24V Eingänge mit Arduino schalten (optokoppler, Transistor, MOSFET) on: January 16, 2012, 12:16:43 pm
Arduino soll Eingaenge an Industriesteuerung schalten (Optokoppler?)
Hallo, ich möchte den Arduino als Multiplexer für eine SPS verwenden. Der Arduino soll also mit seinen Ausgängen die Eingänge der Steuerung schalten. Jedoch werden dort 0-24V DC erwartet, max. 1mA. Kann ich dafür einen Optokoppler einsetzen? Oder ist das mit einen Darlington Array im DIL Gehäuse zu lösen? Interessant wäre ein Lösungsvorschlag, der möglichst wenige externe Bauelemente enthält...
Vorab Vielen Dank
7  International / Deutsch / Re: i-Gerät + Ethernet Shield + manueller Wahlschalter + Lüftungsanlage = Projekt? on: December 06, 2011, 01:05:34 pm
Hallo ganz kurz zu zweitens, ich wuerde 4 einfache 5V Relais und einen ULN2003
nehmen. Siehe hier.

http://www.arduino.cc/playground/Deutsch/Relais

Natuerlich kann man das mit Optokopplern machen, jedoch muesstest Du sehr genau die nachgesetzte Schaltung kennen. Der Drehschalter schaltet doch genau 4 kontakte , das wuerde ich mit den Relais realisieren. Das funktioniert mit Sicherheit sofort. Die Gefahr dass dabei Schaden entsteht ist recht gering.
Gruss InsideMan
8  International / Deutsch / Re: i-Gerät + Ethernet Shield + manueller Wahlschalter + Lüftungsanlage = Projekt? on: November 09, 2011, 08:01:58 am
Hallo, also ich denke das sollte sich alles verwirklichen lassen.

Die Eingangsspannungen sollten 0-5V sein, also benoetigst Du fuer die Eingaenge einen Spannungsteiler so dass max. 5 Volt ankommen. Fuer die Ausgaenge nimmst Du dann einen PWM-0-10V Wandler, da gibt es einige Schaltungsvorschlaege auf diversen Webseiten.

Also als erstes Checken ob alle Eingaenge fuer alle Funktionen ausreichen (oder gleich nen Mega).
Dann wuerde ich das in passende Einzelaufgaben aufteilen. Nicht fuer alles braucht man ein Shield, bei SDCard reichen ja 4 draehte zu einem Sockel. oder ein seeedstudio Stalker hat dann schon RTC und SDCard onboard...

Dann wuerde ich kleine Einzelaufgaben daraus machen und Stueck fuer Stueck abarbeiten.

Good Luck
9  International / Deutsch / Re: Projekt: Messungen- Temp+RH on: September 23, 2011, 04:08:25 pm
haette ne Idee!
Sie haben POST (PM)
10  International / Deutsch / Re: Ansteuerung eines 3-Wege-Mischers für eine Fußbodenheizung on: August 25, 2011, 08:39:18 am
Ohh das mit der while Schleife ist wirklich ne gute Loesung, da kann man sich das mit dem Flag ja sparen.. Nicht schlecht
11  International / Deutsch / Re: Ansteuerung eines 3-Wege-Mischers für eine Fußbodenheizung on: August 24, 2011, 12:10:44 pm
Hallo, also in Deinem Programm steckt irgendwo der Wurm drin.

Schau mal hier, wenn ich das nachvollziehe geht das schon mal nicht richtig:
Ich sage mal was ich sehe, vielleicht kannst Du es nachvollziehen und merkst was da nicht stimmt.

also
MischenA wird auf einen Wert gesetyt sagen wir mal 100000


           if (MischenA - MischenB > 2000){
              digitalWrite(Mischer_ZU, LOW);
              MischenB = (millis());

Dann kommt der oben genannte Durchlauf, plötzlich wird MischenB mit dem aktuellen millis beschrieben, (später) also 105000, jetzt fragst Du MischanA (100000) - MischenB (105000) > 2000 , wie gesagt der kann nie grösser 2000 werden, da MischenB ja später mit millis beschrieben wird.

Ich glaube das muss ganz anders gemacht werden, hier mal ein ungeprüften schnipsel, habe kein Arduino da:

Du musst dran denken, alle Programmteile sind so zu konstruieren, da sie ja immer durchlaufen werden, das Programm bleibt ja nicht mehr stehen wie bei delay. Also die Erkärung zu meinem snippet:

einmalig wird millis auf mischenA geschrieben (also ein Merker muss aus sein, schreiben, merker einschalten fertig). Dann wird verglichen ob der Merker aktiv ist, und geschaut ob 2 Sekunden um sind, wenn ja, dann merker aus, und die gewuenschte Aktion ausführen. Es muss noch ein Flag angelegt werden (hier flag wait 2 seconds also eine bool Variable mit diesem Namen)
Ich hoffe das hilft etwas weiter.

         if (ZustandZU = HIGH & FLAGW2S=FALSE) {
           MischenA=millis()
           FLAGW2S=TRUE;
         }
         
         if (ZustandZU = HIGH & FLAGW2S=TRUE) {
         
           if (MischenA - millis() > 2000){
              digitalWrite(Mischer_ZU, LOW);
              FLAGW2S=TRUE;

12  International / Deutsch / Re: Ansteuerung eines 3-Wege-Mischers für eine Fußbodenheizung on: August 24, 2011, 11:22:52 am
Hallo, ich habe auch nur mal kurz überflogen, aber folgendes sieht wirklich komisch aus:

  MischenB = (millis());

Also Mischen B wird nur mit den normalen Millis beschrieben, wenn er in der Schleife hängt.

Und jetzt diese Stelle:

MischenA - MischenB > 2000

Wenn ich schauen will, ob ich schon laenger 2 sekunden an dieser Stelle bin, dann muesste es ja heissen
MischenA - millis() > 2000

Ich glaube an dieser Stelle muesste nachgebessert werden. Ich schaue gleich mal in Ruhe drüber.


Hallo Leute,

ich habe mal wieder ein Brett vor dem Kopf und brauche Eure Hilfe:

Am Anfang diese Threads hat mir "Komputer.de" seine Version der Mischersteuerung gepostet. Danke dafür nochmal an dieser Stelle.

Ich wollte nun die "Delays" mit millis() oder metro oder timer ersetzen und bekomme es einfach nicht hin.

Also im Loop wird die Vorlauftemperatur ermittelt und mit der Solltemperatur verglichen. Nun soll zur Anpassung der Mischer kurz (für 2 Sek) auf- oder zufahren. Dann soll aber 10 Sek gewartet werden, bis wieder neu verglichen wird, weil die Temperatur sich nicht so schnell ändert. Das ist eigentlich alles, aber wenn 2 millis-Funktionen in den if-Verkettungen hängen, geht es nicht mehr.
Könnt Ihr mal schauen, was ich falsch gemacht habe?

Code:
/* Erster Versuch Mischersteuerung  20101025 mb[ALT-Q]komputer.de   */
#include <OneWire.h>
#include <DallasTemperature.h>
// DS1820 an PIN 2
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#define Mischer_AUF 8
#define Mischer_ZU 9
/********************************************************************************/
// Solltemperatur
int tempsoll = 21;
// Hysterese
int hyst = 2;
unsigned long MischenA, MischenB;   
unsigned long WartenA,WartenB;
int ZustandAUF = LOW;
int ZustandZU = LOW;

/********************************************************************************/

void setup() {               
  pinMode(Mischer_AUF, OUTPUT); //Mischer auf
  pinMode(Mischer_ZU, OUTPUT); //Mischer zu
  digitalWrite(Mischer_AUF, ZustandAUF);
  digitalWrite(Mischer_ZU, ZustandZU);
  // start serial port
  Serial.begin(9600);
  sensors.begin(); 
}

void loop() {
  sensors.requestTemperatures();
  int tempist = sensors.getTempCByIndex(0);
  Serial.print("Ist Temp: ");
  Serial.println(tempist);
 
  /////////////////////////
        WartenA = millis();    //Warten bis wieder verglichen werden soll
        MischenA= millis();    //die Dauer, die der Mischer Strom bekommt, um zu korrigieren
        if (WartenA - WartenB > 10000){
          if (tempist > (tempsoll + hyst)) {    // Mischer zu - Temperatur runter
                  Serial.println("tempist zu hoch, also Mischer ZU ");
             ZustandZU = HIGH;
             digitalWrite(Mischer_ZU, ZustandZU);
                  Serial.println(digitalRead(Mischer_ZU));
          if (ZustandZU = HIGH){
           if (MischenA - MischenB > 2000){
              digitalWrite(Mischer_ZU, LOW);
              MischenB = (millis());
            }
            }
        WartenB = millis(); 
       }
     }
   }
         

Danke schon mal im Voraus

Andreas

13  International / Deutsch / Re: Ansteuerung eines 3-Wege-Mischers für eine Fußbodenheizung on: August 22, 2011, 03:03:44 am
Wenn du einzelne rechnungen machst, brauchst du gar keine Klammern. Versuch das doch mal, das sollte mit Sicherheit funktionieren! Sorry ich habe keinen Arduino hier, erst ab Freitag, dann teste ichs mal!
14  International / Deutsch / Re: Ansteuerung eines 3-Wege-Mischers für eine Fußbodenheizung on: August 21, 2011, 03:48:16 pm

also at=at1/-35 dann erhalte ich null!

Schau am besten nochmal genau welche Variablentypen Du nimmst

http://arduino.cc/en/Reference/HomePage

Also eine Division darf kein integer sein, logisch oder?

Ich glaube double oder float waeren geignet. Teste also einfach ob Der Wert der bei einer Rechnung von einer Variable gefasst werden kann, wenn also -0.5 rauskommen soll, dann kannst Du meines Erachtens schreiben:

at1=-0.5
lprint at1

wenn das dort wieder korrekt ausgegeben wird sollte es klappen.

Ich entschuldige mich fuer meine unscharfen antworten, habe keinen Arduino hier, und kann nur mutmassen, (naechste woche habe ich wieder Zugriff auf einen, dann koennte ich es testen )
15  International / Deutsch / Re: Ansteuerung eines 3-Wege-Mischers für eine Fußbodenheizung on: August 21, 2011, 09:16:35 am
Ich vermute mal jede Variable nimmt letztlich etwas Speicher in Anspruch, da ist sicher dann irgendwann mal Ende, aber 50 solcher Variablen sind problemlos moeglich, sprich ich bin mir ziemlich sicher das es da keine Ressourcenprobleme gibt, weil zu viele Variablen angelegt sind!
Viel Erfolg
Pages: [1] 2 3 ... 7