| Passwort vergessen?

Allzeit guten Wind wünscht Euch Hermann

Forum | Registrieren | Suche | Regeln | FAQ | Impressum
1 Benutzer online

 

Arduino Regelung
 1 2 3 4
15.02.2016 12:50
plataaaa 
Re: Arduino Regelung

Hi,
Du verwendest ein UNO? da wird der Platz sicherlich knapp, ich habe ein NANO inkl. dem W5100 mini im Einsatz und der Platz war gerade so ausreichend. DS18B20 sind auch bei meiner Steuerung im Einsatz :-) die sind nicht übel. Wenn Du den Kasten für den Aussenbereich einsetzen möchtest, musst Du dringend eine Platine verwenden und alle Bauteile verlöten. Die Stecker werden Dir mit der Zeit oxidieren. Das Umschalten müsstest Du aber dann mit attachInterrupt() machen und hier kannst Du ausschließlich den D2 und D3 verwenden, somit müsstest Du für alle anderen Bauteile auch andere Pins verwenden. An Pin D2 oder D3 könntest Du dann den Taster für das Umschalten anschließen. Das einzige Problem an der ganzen Arduino Lösung ist, dass man das Teil alle 50 Tg. neu starten muss, da ein Überlauf eintritt wegen den millis(). Allerdings möchte ich sowieso die ganze Steuerung bzw. den Kollektor über Nacht mit einer Zeitschaltuhr kpl. ausschalten. ich mach mal ein Bild vom Innenleben die Tage....

15.02.2016 13:43
Highway 

Re: Arduino Regelung

Ja ist ein SainSmart Mega2560 AVR ATmega2560 ATMEGA8U2 With Free USB cable
19€ das geht. Hat der auch das Problem? muss ich noch checken. Das Foto ist noch bei den ersten Tests entstanden, Kabel werden noch gelötet wo es geht. Konnte mit den Kabeln noch Restbestände aufbrauchen
Kannst ja jeden Tag mit einem Relais des einen Wechsler oder Öffner hat selbst neu starten. Relais zieht an Saft weg, Relais fällt ab Saft wieder da Uno läuft an.
Mal sehen wie ich die Uhrzeit synchronisieren kann, evtl übers Netzwerk, dann wäre der eigenständige Neustart um 3Uhr nachts oder so, null Problem.
Zeitstempel sollte schon passen beim speichern der Daten. Stell doch bitte mal deinen Sketch ein, habe alles nur noch ichts für den 18B20 gefunden.
Ich sehe schon so leicht wirds nicht! aber wenn nötig wird gezaubert.

Warum sollte mich die Welt mögen, mir langen meine Freunde, die kommen aus aller Welt!

Highway

15.02.2016 13:55
plataaaa 
Re: Arduino Regelung

Hi,
ja, das Problem haben leider alle Arduino´s das liegt einfach an der Funtkion millis(), die benötige ich, da ich im 15min. Abstand die Temperaturen sende. Eine Funtkion für die Uhrzeit gibt es so auch nicht, da müsstest Du den Quelltext einer Seite auslesen. Würde bestimmt machbar sein, aber mit Aufwand. den Sketch stell ich die nächsten Tage rein, hab diesen gerade nicht greifbar....

15.02.2016 14:53
Highway 

Re: Arduino Regelung

Ha da sollte das doch gehen,
http://www.sunfounder.com/index.php?c=ca...0Arduino%20V2.0
die rtc müsste es auch einzeln geben.
Dann kann ich den Zeitstempel mit schreiben, und über die Minuten auch alle 15Min schreiben. Aber alles noch fiktiv, werde ich aber probieren.
Hauptsache mein Kollektor fährt schon schön Warmluft ein, komisch ist nur das seit ich ihn stehen habe nur Wolken bei mir abhängen.
Hätte villeicht doch erst ein Wasserrad bauen sollen?

Warum sollte mich die Welt mögen, mir langen meine Freunde, die kommen aus aller Welt!

Highway

15.02.2016 15:05
plataaaa 
Re: Arduino Regelung

jep, das scheint zu funktionieren, jedoch kommt das für meine Steuerung nicht mehr in Frage, da ich keine weitere Pins frei habe. LAN-Modul, LCD, LED, Sensoren, Servo und das Relay. Leider alles voll

15.02.2016 15:32
Randvogelsberger 

Re: Arduino Regelung

Moin ihr zwei.

Ich dachte der Arduino läuft von selbst nach 49,6 Tagen an, beginnt selbständig bei Null. --> http://playground.arduino.cc/Learning/BlinkWithoutDelayDe
Hab ich das falsch verstanden?

Der Arduino führt einen eigenständigen Reset durch, läuft dadurch ewig nur die Zeitspanne milis wird die 49,6 Tage nie überschreiten.
Das ist nur problematisch, wenn Du die Zeit seit dem Start aufzeichnen willst. Es werden die milis seit dem Start gezählt.
Daraus einen Zeitstempel zu machen wird schwierig. Deshalb verwendet man dann lieber die RTC oder einen Abgleich aus dem Internet.

Und wenn plataaa keine Ports mehr frei hat -> Internetzeit abrufen.
Aber wenn Du nix aufzeichnen willst, brauchst Du das nicht.

So jedenfalls hab ich das verstanden......

Gruß Andy

15.02.2016 15:51
plataaaa 
Re: Arduino Regelung

jep, hast Du richtig verstanden. das Clock-Modul wäre eine brauchbare Lösung, aber nur dann, wenn man unbedingt die Uhrzeit benötigt. ich speichere einfach im loop die Differenz zweier Variablen befüllt mit millis und somit wäre es egal, ob die besagten Tage erreicht werden oder nicht. Trotzdem werde ich vorsorglich den kpl. Kollektor inkl. der Schaltung über Nacht ausschalten.

16.02.2016 07:34
Highway 

Re: Arduino Regelung

plataaaa,
welches Display hast du? das
I2C LCD1602 mit vier kabeln
http://www.sunfounder.com/index.php?c=ca...0Arduino%20V2.0
oder das
http://www.sunfounder.com/index.php?c=ca...ino&zsid=96
ich habe das ohne den I2C werde mir aber das mit dem I2C Chip besorgen wird im Gehäuse wegen der Kabel übersichtlicher und es bleiben Pins frei.
Je länger man sucht um so mehr findet mann, der Arduino ist schon klasse.

Warum sollte mich die Welt mögen, mir langen meine Freunde, die kommen aus aller Welt!

Highway

08.03.2016 12:38
Highway 

Re: Arduino Regelung

Hi Plataaaa,
kannst du dir mal den Code ansehen wegen des DS18B20, so müsste es gehen, weis nur nicht ob das mit der Reihenfolge der Fühler so stimmt?
Kann es leider erst Donnerstag checken.

#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <Wire.h>
/----------------------------------------------------------------------------/
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(4, 6, 10, 11, 12, 13);

#define ONE_WIRE_BUS 7
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
const int keyPin = 2; //the number of the key pin
int anzeige = 0;

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 178, 25);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
/---------------------------------------------------------------------------/
void setup()
{

// start serial port
Serial.begin(9600);
// Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
lcd.begin(16, 2); // set up the LCD's number of columns and rows:
pinMode(keyPin,INPUT);//initialize the key pin as input
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}

void loop()
{
//----------------------------------- Taster fuer Anzeige ----------------------------------------------------
if(digitalRead(keyPin) ==HIGH )
{
anzege = anzeige +1;//Anzeige umschalten
delay(1500);//Warten damit der Finger wech kommt
}
if(anzeige = 4)
{
anzeige = 0;
}
//----------------------------------- Sensor ----------------------------------------------------
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
//Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
// Serial.println("DONE");
//----------------------------------- LCD ----------------------------------------------------
if(anzeige = 0)
{
lcd.setCursor(15,0); // set the cursor to column 15, line 0
lcd.print("Zulufttemp");
lcd.setCursor(15,1); // set the cursor to column 15, line 1
lcd.print("Temp: ");
lcd.print(sensors.getTempCByIndex(0)); // Print a message to the LCD.
lcd.print(" C");
}
if(anzeige = 1)
{
lcd.setCursor(15,0); // set the cursor to column 15, line 0
lcd.print("Aussentemp");
lcd.setCursor(15,1); // set the cursor to column 15, line 1
lcd.print("Temp: ");
lcd.print(sensors.getTempCByIndex(1)); // Print a message to the LCD.
lcd.print(" C");
}
if(anzeige = 2)
{
lcd.setCursor(15,0); // set the cursor to column 15, line 0
lcd.print("Kellertemp");
lcd.setCursor(15,1); // set the cursor to column 15, line 1
lcd.print("Temp: ");
lcd.print(sensors.getTempCByIndex(2)); // Print a message to the LCD.
lcd.print(" C");
}
if(anzeige = 3)
{
lcd.setCursor(15,0); // set the cursor to column 15, line 0
lcd.print("Kollektortemp");
lcd.setCursor(15,1); // set the cursor to column 15, line 1
lcd.print("Temp: ");
lcd.print(sensors.getTempCByIndex(3)); // Print a message to the LCD.
lcd.print(" C");
}
//---------------------------------------Server--------------------------------------------
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// ausgabe Sensoren
client.print("Zulufttemperatur");
client.print(sensors.getTempCByIndex(0));
client.print(" °C ");
client.println("<br />");
client.print("Aussentemperatur = ");
client.print(sensors.getTempCByIndex(1));
client.print(" °C ");
client.println("<br />");
client.print("Kellertemperatur = ");
client.print(sensors.getTempCByIndex(2));
client.print(" °C ");
client.println("<br />");
client.print("Kollektortemperatur = ");
client.print(sensors.getTempCByIndex(3));
client.print(" °C");
client.println("<br />");
}
client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");
}
//--------------------------------------Hier kommt der Datenlogger --------------------------------------
}

----------------------------------------------------------------------------------------------------------------------------------------------

Wann wird es endlich wieder Sonnig?

Highway

08.03.2016 16:00
plataaaa 
Re: Arduino Regelung

so auf die schnelle würde ich sagen, dass es passt, sofern du insg. 4 Sensoren am Bus hast. welcher Sensor dann an welchem index ist, musst Du rausfinden.
wenn Du Sensor 3 benötigst, kann es sein, dass dieser mit Index 0 angesprochen wird oder mit 1, so meine ich das, ansonsten sieht´s passabel aus. einfach mal testen

 1 2 3 4
Spannungsstabilisierung   requestTemperatures   sensors   println   Schaltschrankthermostat   setCursor   Ãœberhitzungsschutz   Kollektortemperatur   Lüftergeschwindigkeit   Aussentemperatur   Arduino   horbach-in-franken   Anzeige   currentLineIsBlank   include   Temperaturdifferenz   getTempCByIndex   Kollektor   Regelung   Highway

Forum | Registrieren | Suche | Regeln | FAQ | Impressum
Zur Zusammenfassung,Black 300
Befreundete Foren
Info:Datenschutzgrundverordnung

 

Forum | Registrieren | Suche | Regeln | FAQ | Impressum

  


© by HH Mahnecke 2009-2019| phpFK Download | www.phpFK.de

Sponsoren: Zur Homepage | http://www.stellenangebote-forum.de/about71534.html | FOREX