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
http://capsicum-felicitas.de.tl
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
  Einfacher Tacho für niedrige Geschwindigkeiten – Code optimieren Bastelo 2 261 12.10.2016 20:31
Letzter Beitrag: Bastelo
  Code mit Verifikation über Keypad & LCD machnetz 5 216 10.10.2016 15:01
Letzter Beitrag: torsten_156
  Wo kann ich hier noch Code spahren? (SPI-,Ethernet-,SD-,GSM-Library) avoid 4 384 05.06.2016 14:16
Letzter Beitrag: avoid
  Serial Monitor Eingabe über Code Maxi290997 4 523 12.05.2016 18:57
Letzter Beitrag: SkobyMobil
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.180 17.04.2016 21:12
Letzter Beitrag: hotsystems
  Problem: RFID code mit Inhalt einer Textdatei auf einer SD Karte vergleichen MartinK 6 516 29.03.2016 16:45
Letzter Beitrag: MartinK
  Anfänger Fragen zum Thema Pc & Datenverarbeitung Hurdy 0 301 29.03.2016 12:36
Letzter Beitrag: Hurdy
  Arduino Alarmanlage mit Taster erweitern Vengance 0 529 22.03.2016 17:54
Letzter Beitrag: Vengance
  OSC Arduino Code Fabian_Fabian 5 435 10.03.2016 23:23
Letzter Beitrag: hotsystems
  Code bei fritzing Miro 3 1.381 08.02.2016 16:16
Letzter Beitrag: Uwa

Gehe zu:


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