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
Mehrstufige Schaltung
30.06.2015, 16:38 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2015 16:38 von bash42.)
Beitrag #9
RE: Mehrstufige Schaltung
Servus,

danke für die Antworten,

bin nun ein Stück weiter gekommen,

der Sketch wird auf den Arduino gespielt.

Leider funktioniert es dann doch noch nicht ganz Sad

Es schaltet nun kein Relay mehr..


Code:
#include <DHT.h>

/* Arduino*/

/*-----( Import needed libraries )-----*/
#include <DHT.h>

/*-----( Declare Constants )-----*/
#define RELAY_ON 0
#define RELAY_OFF 1

#define DHTTYPE DHT22// DHT 22
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

/*-----( Declare Variables )-----*/
#define Relay_1  2  // Arduino Digital I/O pin number
#define Relay_2  3  // Arduino Digital I/O pin number
#define Relay_3  4  // Arduino Digital I/O pin number
#define Relay_4  5  // Arduino Digital I/O pin number
#define Relay_5  6  // Arduino Digital I/O pin number
#define DHTPIN 12 // Arduino Digital I/O pin number

/*-----( Declare objects )-----*/
DHT dht(DHTPIN, DHTTYPE);
// NOTE: For working with a faster chip, like an Arduino Due or Teensy, you
// might need to increase the threshold for cycle counts considered a 1 or 0.
// You can do this by passing a 3rd parameter for this threshold. It's a bit
// of fiddling to find the right value, but in general the faster the CPU the
// higher the value. The default for a 16mhz AVR is a value of 6. For an
// Arduino Due that runs at 84mhz a value of 30 works.
// Example to initialize DHT sensor for Arduino Due:
//DHT dht(DHTPIN, DHTTYPE, 30);

void setup()   /****** SETUP: RUNS ONCE ******/
{
//-------( Initialize Pins so relays are inactive at reset)----
  digitalWrite(Relay_1, RELAY_OFF);
  digitalWrite(Relay_2, RELAY_OFF);
  digitalWrite(Relay_3, RELAY_OFF);
  digitalWrite(Relay_4, RELAY_OFF);
  digitalWrite(Relay_5, RELAY_OFF);

  
//---( THEN set pins as outputs )----
  pinMode(Relay_1, OUTPUT);
  pinMode(Relay_2, OUTPUT);
  pinMode(Relay_3, OUTPUT);
  pinMode(Relay_4, OUTPUT);
  pinMode(Relay_5, OUTPUT);    
  delay(4000); //Check that all relays are inactive at Reset

//---( DHT Setup )----
  Serial.begin(9600);
  Serial.println("Arduino");
  dht.begin();

}//--(end setup )---


void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
//---( Wait a few seconds between measurements )---
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float Humidity = dht.readHumidity();
  float Temperature = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(Temperature) || isnan(Humidity))
  {
    Serial.println("Failed to read from DHT");
  }
  else
  {
    Serial.print("Humidity: ");
    Serial.print(Humidity);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(Temperature);
    Serial.println(" *C");
  }

  if ((Temperature > 32) && (Temperature <30) )
  {
    //---( Turn relay ON )---
    digitalWrite(Relay_1, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_2, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_3, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_4, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_5, RELAY_OFF);// set the Relay ON
    Serial.print("Temperature: ");
    Serial.print(Temperature);
    Serial.print(" *C");
    Serial.println(" is over 32 *C. Ventilator runs at 230 Volts.");
  }

  if ((Temperature > 30) && (Temperature <29) )
  {
    //---( Turn relay ON )---
    digitalWrite(Relay_1, RELAY_ON);// set the Relay ON
    digitalWrite(Relay_2, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_3, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_4, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_5, RELAY_OFF);// set the Relay ON
    Serial.print("Temperature: ");
    Serial.print(Temperature);
    Serial.print(" *C");
    Serial.println(" is over 30 *C. Ventilator runs at 170 Volts.");
  }
  
  if ((Temperature > 28) && (Temperature <26) )
  {
    //---( Turn relay ON )---
    digitalWrite(Relay_1, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_2, RELAY_ON);// set the Relay ON
    digitalWrite(Relay_3, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_4, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_5, RELAY_OFF);// set the Relay ON
    Serial.print("Temperature: ");
    Serial.print(Temperature);
    Serial.print(" *C");
    Serial.println(" is over 28 *C. Ventilator runs at 130 Volts.");
    
   if ((Temperature > 26) && (Temperature <24) )
  {
    //---( Turn relay ON )---
    digitalWrite(Relay_1, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_2, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_3, RELAY_ON);// set the Relay ON
    digitalWrite(Relay_4, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_5, RELAY_OFF);// set the Relay ON
    Serial.print("Temperature: ");
    Serial.print(Temperature);
    Serial.print(" *C");
    Serial.println(" is over 26 *C. Ventilator runs at 100 Volts.");
  }
  if ((Temperature > 24) && (Temperature <18) )
  {
    //---( Turn relay ON )---
    digitalWrite(Relay_1, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_2, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_3, RELAY_OFF);// set the Relay ON
    digitalWrite(Relay_4, RELAY_ON);// set the Relay ON
    digitalWrite(Relay_5, RELAY_OFF);// set the Relay ON
    Serial.print("Temperature: ");
    Serial.print(Temperature);
    Serial.print(" *C");
    Serial.println(" is over 24 *C. Ventilator runs at 80 Volts.");
  }

  }  
  /*
  //Test Section
  digitalWrite(Relay_1, RELAY_ON);// set the Relay ON
  delay(20000);
  digitalWrite(Relay_1, RELAY_OFF);// set the Relay OFF
  delay(20000);
  */

}//--( end main loop )---

//*********( THE END )***********
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.06.2015, 17:27
Beitrag #10
RE: Mehrstufige Schaltung
Code:
if ((Temperature > 32) && (Temperature <30) )
Versuche mal einen Wert für Temperature zu finden, der die Bedingung im if erfüllt.

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
30.06.2015, 17:31
Beitrag #11
RE: Mehrstufige Schaltung
Wie meinst du das ?

Eine Temperatur oder "Temperature" ersetzen ?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.06.2015, 20:44 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2015 20:46 von Thorsten Pferdekämper.)
Beitrag #12
RE: Mehrstufige Schaltung
(30.06.2015 17:31)bash42 schrieb:  Wie meinst du das ?
Ich meine damit, dass es ziemlich wenige Zahlen gibt, die größer als 32 sind und gleichzeitig kleiner als 30.

(30.06.2015 17:48)t.a.f.k.a.Z. schrieb:  @Thorsten: ruhig, gaaaaanz ruhig, ... hommmmm Big Grin
Da muss schon etwas mehr kommen, um mich aus der Ruhe zu bringen...

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Telefon-Nummer erkennen - Schaltung auslösen harryba 4 267 13.10.2016 10:12
Letzter Beitrag: hotsystems

Gehe zu:


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