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
Anfänger: Code für "Mini-Alarmanlage"
07.07.2015, 19:28
Beitrag #1
Anfänger: Code für "Mini-Alarmanlage"
Hallo,
ich möchte mit einem Arduino eine kleine „Alarmanlage“ realisieren, die einen LED-Fluter ein- und ausschaltet. Hardwareseitig stellt dies für mich kein Problem dar, nur die Software bereitet mir Kopfzerbrechen.

Geplant war den D12 als Input zu nutzen und hier eine Alarmlinie einzurichten. D12 wird also im Normalzustand (nicht ausgelöst) „HIGH“ sein und bei Auslösung „LOW“ sein, da ich Öffnerkontakte nutzen will.

Wird D12 auf LOW gesetzt, soll also LED-Fluter an D10 eingeschaltet (auf HIGH) gesetzt werden und 30s an bleiben.
Anschließend wird der D10 wieder auf LOW gesetzt, somit der LED-Fluter ausgeschaltet.

Ein Programm, das diese Anforderungen erfüllt würde ich wohl noch hinbekommen, ich habe jedoch noch weitere Anforderungen:

1.: Wird der Arduino eingeschaltet, soll er Abfragen ob die Alarmlinie HIGH oder LOW ist. Bei HIGH soll der Arduino mit seinem normalen Programm fortfahren, bei LOW eine LED am Pin D8 („Fehler Meldelinie“) einschalten und das Programm stoppen.

2.: Wird die Meldelinie mehr als 3x ausgelöst (also 3x auf HIGH gesetzt) soll ebenfalls die LED am Pin D8 („Fehler Meldelinie“) einschalten und das Programm stoppen.

3.: Der LED-Fluter soll sich auch über einen Taster an D11 von Hand ein- und ausschalten lassen.


Bin leider komplett Überfordert und weiß gar nicht wo ich anfangen soll. Vielleicht erklärt sich jemand von euch dazu bereit, mir ein Programm zu schreiben, das diese Anforderungen erfüllt. Ich wäre für jede Hilfe dankbar.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.07.2015, 19:38
Beitrag #2
RE: Anfänger: Code für "Mini-Alarmanlage"
Hi,
schreib doch erstmal das Programm, das die ersten Anforderungen erfüllt. Du sagst ja selbst, das Du das hinbekommst. Das postest Du dann hier und dann geht's Schritt für Schritt weiter.
Zitat:Vielleicht erklärt sich jemand von euch dazu bereit, mir ein Programm zu schreiben, das diese Anforderungen erfüllt.
Auftragsarbeiten gibt es nur gegen Bezahlung.
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
07.07.2015, 20:54
Beitrag #3
RE: Anfänger: Code für "Mini-Alarmanlage"
Vielen dank für die schnelle Antwort.

Nun gut, hier ein erster Versuch. Auf dem Breadboard aufgebaut funktioniert der Code einwandfrei. Würde mich auch wundern wenn nicht.

Code:
int Fluter = 10;


void setup() {

pinMode(12, INPUT_PULLUP);
pinMode(10, OUTPUT);

}

void loop() {
  int Alarmlinie = digitalRead(12);  
  if (Alarmlinie == HIGH){
    digitalWrite(Fluter, HIGH);

  }
  else {
    digitalWrite(Fluter, LOW);
  }
}




Jetzt stellt sich mir zuerst die Frage, wie ich es umgesetzt bekomme bei dreimaligen Auslösen der Alarmlinie das Programm anzuhalten bzw. eine "Fehler" LED zum leuchten bekomme. Kommt hier eventuell eine while-Schleife infrage?
Ich konnte selbstständig keine while-Schleife zum laufen bekommen. Jemand eine Idee?

Ich bin für jede Hilfe dankbar!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.07.2015, 20:57
Beitrag #4
RE: Anfänger: Code für "Mini-Alarmanlage"
(07.07.2015 20:54)drugX schrieb:  ...
Jetzt stellt sich mir zuerst die Frage, wie ich es umgesetzt bekomme bei dreimaligen Auslösen der Alarmlinie das Programm anzuhalten bzw. eine "Fehler" LED zum leuchten bekomme. Kommt hier eventuell eine while-Schleife infrage?
Ich konnte selbstständig keine while-Schleife zum laufen bekommen. Jemand eine Idee?

Ich bin für jede Hilfe dankbar!

Hi,
also ich würde da für einen Ereigniszähler plädieren und beim ersten Event die Systemzeit in millis() erfassen und wenn nach soundsoviel millis kein weiteres Ereignis stattgefunden hat den Ereigniszähler wieder auf 0 setzen.
lgbk

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
07.07.2015, 21:00
Beitrag #5
RE: Anfänger: Code für "Mini-Alarmanlage"
Hi,
als erstes fällt mal auf, dass Du in Deinem Programm nicht das machst, was Du spezifiziert hast:
Zitat:Wird D12 auf LOW gesetzt, soll also LED-Fluter an D10 eingeschaltet (auf HIGH) gesetzt werden
...aber
Code:
if (Alarmlinie == HIGH){
     digitalWrite(Fluter, HIGH);
D.h. Du machst es umgekehrt.
Jetzt dazu:
Zitat:bei dreimaligen Auslösen der Alarmlinie das Programm anzuhalten bzw. eine "Fehler" LED zum leuchten bekomme
Was genau bedeutet "bei dreimaligem Auslösen"?
Das Programm anhalten geht nur, wenn Du den Strom abstellst, aber das willst Du auch gar nicht.
Wahrscheinlich musst Du die Übergänge von LOW nach HIGH (oder umgekehrt) zählen.

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
10.07.2015, 07:54
Beitrag #6
RE: Anfänger: Code für "Mini-Alarmanlage"
(07.07.2015 20:54)drugX schrieb:  Kommt hier eventuell eine while-Schleife infrage?

Ich würde es mit einer while-Schleife machen. Nimm eine Zählvariable (Typ int) und inkrementiere diese bei jedem Auslösen der Alarmanlage. Sollte der Wert dann >3 sein, springt der Ablauf aus dieser Schleife heraus und du kannst dann mit einer LED reagieren. Mit einem Button kann man diesen Zählwert dann ja wieder auf 0 setzen (also ein Reset). So fängt der Spaß wieder von vorne an.

Ungefähr so:
Code:
void loop()
        {
           while(Zaehler <3)
            {
                /* Hier der Code der Alarmanlage */
            
            }
            
            digitalWrite(Fehler_LED, HIGH);
            
            if (Button_Reset == HIGH)
            {
                Zaehler = 0;
                digitalWrite(Fehler_LED, LOW);
            }
        } //von loop

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.07.2015, 12:31
Beitrag #7
RE: Anfänger: Code für "Mini-Alarmanlage"
(10.07.2015 07:54)torsten_156 schrieb:  
(07.07.2015 20:54)drugX schrieb:  Kommt hier eventuell eine while-Schleife infrage?

Ich würde es mit einer while-Schleife machen. Nimm eine Zählvariable (Typ int) und inkrementiere diese bei jedem Auslösen der Alarmanlage. Sollte der Wert dann >3 sein, springt der Ablauf aus dieser Schleife heraus und du kannst dann mit einer LED reagieren. Mit einem Button kann man diesen Zählwert dann ja wieder auf 0 setzen (also ein Reset). So fängt der Spaß wieder von vorne an.

Ungefähr so:
Code:
void loop()
        {
           while(Zaehler <3)
            {
                /* Hier der Code der Alarmanlage */
            
            }
            
            digitalWrite(Fehler_LED, HIGH);
            
            if (Button_Reset == HIGH)
            {
                Zaehler = 0;
                digitalWrite(Fehler_LED, LOW);
            }
        } //von loop

Gruß
Torsten


moin, nur als ansatz, da fehlt dann noch das


Zaehler = Zaehler +1;


in dem segment ansonsten hast du ja kein zähleffekt.
ich weiss das is logisch, aber bevor sich hier schon ein fehler einschleicht...

gruss, viel erfolg und bitte auf dem laufenden halten Big Grin

Nicht denken,...
...nachdenken... Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.07.2015, 12:47
Beitrag #8
RE: Anfänger: Code für "Mini-Alarmanlage"
(10.07.2015 07:54)torsten_156 schrieb:  ...und inkrementiere diese bei jedem Auslösen der Alarmanlage.

Habe ich doch geschrieben Big GrinCool


Zitat:Zaehler = Zaehler +1;

Könnte auch so aussehenBig Grin:
Code:
Zaehler++;

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Code wird langsamer mit der Laufzeit Wampo 9 314 05.10.2017 11:32
Letzter Beitrag: SkobyMobil
Tongue Visual Studio Code als Editor für die Entwicklung von Arduino Code Klaus(i) 1 263 03.09.2017 19:15
Letzter Beitrag: Mathias
  Anfänger sucht erfahrene Hilfe Customizer 21 1.416 11.07.2017 21:37
Letzter Beitrag: Customizer
  Volume Up falscher Tastatur Hex-Code Maxi290997 7 517 03.07.2017 21:49
Letzter Beitrag: Maxi290997
  delay(...) im Code ok? donut 4 462 08.06.2017 20:16
Letzter Beitrag: donut
  Textdokument in Arduino Code umwandeln Tellen 9 623 03.06.2017 16:30
Letzter Beitrag: Tellen
  TFT Pixel to Code oOSpikeOo 5 403 06.04.2017 18:49
Letzter Beitrag: Tommy56
  Zeitschaltuhr Hilfe für RTC Anfänger 4Jordy 4 702 24.03.2017 15:23
Letzter Beitrag: MicroBahner
  Tri-State Code ?? Franz54 3 409 12.02.2017 19:23
Letzter Beitrag: Franz54
  Code aus 1.6.9 geht mit 1.8.1 nicht mehr zu kompilieren DL1AKP 7 734 02.02.2017 12:16
Letzter Beitrag: Tommy56

Gehe zu:


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