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
Einmaliges piepen
20.08.2013, 19:42 (Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2013 21:50 von admin.)
Beitrag #1
Einmaliges piepen
hallo leute, bin ein neuling mit dem arduino. habe mir eine lüftersteuerung zusammen gebastelt. die lüfter sollen angehen wenn die luftfeuchtigkeit einen eingegebenen wert übersteigt. dies funktioniert auch alles. nun die frage: ich möchte das der arduino ein signal abgibt (durch pin13) wenn die lüfter angehen. in diesem fall wäre es ein piepen.

hier die schaltung:

   
hier der aktuelle programmcode:



// Einbinden des DHT22
#include "DHT.h" // Library für DHT Sensor aufgerufen
#define DHTPIN 3 // DHT Sensor wird aus PIN 3 ausgelesen
#define DHTTYPE DHT22 // DHT Type wird auf DHT22 festgelegt
DHT dht22(DHTPIN, DHTTYPE); // DHTPIN und DHTTYE in dht22 definiert
int i=55; // Luftfeuchte in Prozent

// Einbinden des LCD
#include "Wire.h" // Library für I2C aufgerufen
#include <LiquidCrystal.h> // Library für LCD aufgerufen
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD Adresse auf 0x27 gesetzt, 16 Zeichen / 2 Zeilen LCD



void setup()
{
pinMode(2,OUTPUT);
pinMode(13,OUTPUT);

dht22.begin(); // Auslesen des DHT22 beginnt
lcd.begin(16, 2); // LCD einbinden

}

void loop()
{
float t = dht22.readTemperature(); // Die Temperatur wird vom DHT22 ausgelesen, Wert in "t" schreiben
float h = dht22.readHumidity(); // Die Luftfeuchte wird vom DHT22 ausgelesen, Wert in "h" schreiben

Serial.print("Temperatur: "); // Ausgabe im Seriellen Monitor
Serial.print(t); // Ausgabe im Seriellen Monitor
Serial.print(" C\t"); // Ausgabe im Seriellen Monitor
Serial.print("Luftfeuchte: "); // Ausgabe im Seriellen Monitor
Serial.print(h); // Ausgabe im Seriellen Monitor
Serial.println(" %"); // Ausgabe im Seriellen Monitor

lcd.setCursor(0, 0); // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("Temp. :"); // Temp. : auf LCD ausgeben
lcd.setCursor(9, 0); // Anfang auf Stelle 9, Zeile 0 setzen
lcd.print(t); // Wert aus "t" ausgeben (Temperatur)
lcd.setCursor(15, 0); // Anfang auf Stelle 15, Zeile 0 setzen
lcd.print("C"); // C auf LCD ausgeben
lcd.setCursor(0, 1); // Anfang auf Stelle 0, Zeile 1 setzen
lcd.print("Luftf.:"); // Luft.: auf LCD ausgeben
lcd.setCursor(9, 1); // Anfang auf Stelle 9, Zeile 1 setzen
lcd.print(h); // Wert aus "h" ausgeben (Luftfeuchtigkeit)
lcd.setCursor(15, 1); // Anfang auf Stelle 15, Zeile 1 setzen
lcd.print("%"); // % auf LCD ausgeben





if (h > i)
{
digitalWrite(2,HIGH);


}

else
{
digitalWrite(2,LOW);

}

}


EDIT: Extern verlinktes Bild, hier intern im ArduinoForum.de als Anhang gespeichert... Bitte in Zukunft darauf achten ! Smile

PS: Bitte prüfe einmal deine ShiftTaste... denn die scheint defekt zu sein...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2013, 20:06
Beitrag #2
RE: Einmaliges piepen
ist ein sehr schlichtes Programm, im Prinzip geht es so, aber: eine Hysterese würde ich schon einbauen, sonst hat diese Regelung einen nervösen Docht, will meinen, sie schaltet zu oft. Du solltest einen Bereich einbauen, in dem nichts passiert: Einschalten beim Schwellwert, Ausschalten bei (Schwellwert - Hysterese).

Das mit dem Piepen geht auch ganz einfach, per Summer oder Lautsprecher, je nach Hardware für den gewünschten Zeitraum DC oder Frequenz ausgeben.

Gruß, Stefan . . . . . . //Wo mein Kölbchen dampft, da bin ich unverkrampft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2013, 20:15
Beitrag #3
RE: Einmaliges piepen
danke für die schnelle antwort. das kleine schwarze runde ding auf dem bild gibt einen ton ab wenn es strom bekommt. ich weiß nur nicht wie ich es programmieren soll dass es nur einmal piept. wenn ich es in if schleife im loop teil reinschreibe piept das ding öffters. es soll aber nur einmal beim einschalten der lüfter piepen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2013, 20:50
Beitrag #4
RE: Einmaliges piepen
(20.08.2013 20:15)isomack schrieb:  .....es soll aber nur einmal beim einschalten der lüfter piepen.

...nun man setze beim Einschaltpiepen ein Flag und frage das vor dem piepen ab....und wenn der Lüfter wieder abschaltet setzt man das Flag zurück....fedisch...

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2013, 20:57
Beitrag #5
RE: Einmaliges piepen
Einen flag setzen? Wie sieht sowas aus? Kann mir mal einer einen beispielcode schreiben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2013, 21:09
Beitrag #6
RE: Einmaliges piepen
(20.08.2013 20:57)isomack schrieb:  Einen flag setzen? Wie sieht sowas aus? Kann mir mal einer einen beispielcode schreiben.

na Flag ist eine andere Bezeichnung für eine Variable, das liegt einfach an der Verwendung...

und...
....
if(habeschongepiept == 0){ piepmalganzlaut;
habeschongepiept = 1;
}
....

solltest ja schon programmieren können....

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2013, 21:16
Beitrag #7
RE: Einmaliges piepen
Bin dir dankbar für deine hilfe. Weißaber leider noch nicht so viel über das programmieren. An welche stelle muss ich den text setzen. Nett wärst wenn du den code der oben stehst in deine nächste antwort kopierst und deinen text hinzu fügst. Wäre dir sehr dankbar dafür.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


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