Alarmanlage

  • Hallo !


    Ich bin bereits schwer dabei eine Alarmanlage zu programmieren.
    Ich nutze dazu ein Arduino Mega 2560. Zwei Fragen habe ich für euch. :)
    Ich besitze große Erfahrung in löten etc. Im Programmieren bin ich noch etwas neu. Einige Erfahrung habe ich aber auch dort.


    1. Was passiert wenn am Anfang des Sketches eine Bedingung erfüllt ist und etwas ein geschaltet wird und danach eine Bedingung nicht erfüllt ist und etwas ausgeschaltet wird.
    Das wiederspricht sich doch. Wie kann ich das eventuell lösen?


    2. Ich möchte ungern das System an einem Trafo betreiben. 16A stehen immer zur Verfügung, aber im Normal betrieb werden nur einige mA verbraucht. Die Krachmacher etc. verbrauchen ungefähr 10A wenn Großalarm ist. :D
    Ich kam auf die Idee alles über einen Akku zu betreiben der sich nach einiger Zeit wieder übers Stromnetz auflädt. Einen Akku benötige ich auf jeden fall als Notstromversorgung.
    Ist das eine gute Idee? Habt ihr eine bessere Alternative?



    MfG
    Christian

  • Die 1 verstehe ich nicht ganz.


    Du fragst doch in jedem Loop von der Logik her ab, ob sich "was" geändert hat.


    Das was hast du nicht näher definiert, vielleicht hilft hier ja dein Sketch und eine kleine Beschreibung was du da eigentlich machen willst ;)


    Zu 2:


    Warum willst du "das System" nicht an einem NT betreiben? Ist doch Verschwendung alles dauerhaft durch einen Akku zu speisen.


    Hier wurde über die selbe USV Anwendung geschrieben:


    http://forum.arduino.cc/index.php/topic,30172.0.html


    Ansonsten könntest du ja eine kleine PC USV davorklemmen.

  • Zu 1.:
    Wenn Feueralarm ausgelöst wird werden die Melder eingeschaltet. Aber der Testbutton schaltet sie ja eigentlich wieder aus da er nicht betätigt wurde.

    Zitat

    Wenn ein Sensor meldet und Feuer scharf geschaltet ist, wird die Freigabe
    erteilt.
    Wenn die Freigabe erteilt ist werden die Melder eingeschaltet.


    Zu 2.:
    Das Netzteil stellt dauerhaft knapp 200Watt zu Verfügung(12V * 16A). Da wird ununterbrochen mit voller Kraft am Stromnetz gesaugt.
    Der Akku muss nichts umwandeln sodass keine Wärme entsteht. Hier werden auch nur die mA (ca. 10Watt) verbraucht und das würde auf Dauer mein Konto schonen.

  • Das wahrscheinlich einfachste wäre, dass du den Taster nur abfragst, wenn der Alarm noch nicht betätigt wurde... Also was in Richtung : "Wenn Alarm aus, prüfe Taster, wenn Taster aus mach nichts, wenn Taster an - löse Alarm aus"


    Das Netzteil zieht immer nur soviel wie du gerade brauchst (plus Leckströme) - wenn du also aus dem Netzteil nur 10mA raus ziehst, dann braucht es auch nur die 10mA (und vllt 1-2% der möglichen Maximallast als Leckstrom - HÖCHSTENS)

  • Zitat

    Der Akku muss nichts umwandeln sodass keine Wärme entsteht.


    Wie gedenkst du den Akku zu laden ohne Verlust und Wärme entstehen zu lassen?


    Ne im Ernst, du hattest da ja was grundlegend falsch verstanden mit dem Strom.


    Ist das eigentlich ein Testaufbau zum Verständnis oder willst du wirklich einen Arduino für eine scharfe Brandmeldeanlage benutzen?
    Wenn zweiteres bin ich raus, da will ich nix mit zu tun haben.

  • Das war das Stichwort! Ich hab das jetzt folgendermaßen gemacht.


    Beim Test Taster wird Alarm ausgelöst und nach 2sek wieder zurückgestellt.
    Beim automatischem Alarm wird er ausgelöst bis er manuell zurückgestellt wird.
    Danke dafür ! :)



    Anfang dieser Woche habe ich im Netz ein Artikel gelesen, wo stand das ein Netzteil dauerhaft 12V und 16A aus dem Netzstrom umwandelt.
    Also dauerhafter verbrauch. Beim laden des Akkus würde natürlich auch Wärme entstehen aber nicht dauerhaft.


    Ja, ich hatte eigentlich vor den Arduino in ein stabiles Gehäuse zu verbauen und dann laufen zu lassen... privat.
    Wobei hast du bedenken?

  • Und wo soll der Strom von dem Netzteil denn hin? Der Mikrocontroller/etc zieht 10mA, da er der einzige Verbraucher ist zu dem Zeitpunkt wird also jeder Strom durch ihn hindurch fließen (abgesehen wie gesagt von ein paar Leckströmen) - Ein Netzteil ist ein relativ intelligentes Ding, wenn der uC 10mA braucht, dann liefert das Netzteil eben nur 12V und 10mA und braucht dementsprechend auch nur seine 0,12W (+Leck = 1W höchstens) - Dein Akku hat in sich auch permanente Leckströme wodurch er sich entläd - und auch das Aufladen hat bei weitem keine 100% Wirkungsgrad - Hier wirst du im Endeffekt mehr Verluste haben. (Und die Leckströme vom Akku treten auch auf wenn garnichts angeschlossen ist, der also nur in nem Karton in der Ecke liegt...)


    Warum es da bedenken gibt mit dem Arduino? Wenn ich sehe wieviel Zeit in meinen simplen PWM-Programmen steckt um zu Testen, Fehler zu korrigieren, wieder zu testen und ich da immernoch hin und wieder Aussetzer habe, dann möchte ich nicht wissen, was ein derart unerfahrener (sry) mit lautem Krach und viel Licht anstellt - Bzw höchstens wenn ich so weit weg bin, dass ich weder die versehentlich ausgelösten Hupen, die bunten Regenbogenfarben der Lampen noch das Feuerwerk eines abbrennenden Hauses mitbekomme.

  • Okay, aber ein Akku als Notstrom ist ja dann auch nicht das wahre da er sich ja entlädt.
    Ich kann mir ja ein Generator in die Wohnung stellen und ein Benzinkanister daneben. :D


    Wenn es nur um die Lärmbelästigung geht, kann euch beruhigen.
    Nach D-Norm geht der Einbruchsalarm nach 3 min aus.
    Bei dem Feueralarm muss ich mal schauen, das er nur mit halber Spannung und somit halber Lautstärke weitermacht. (schon getestet)
    Ich werde wahrscheinlich ein Shield einbauen welches mir per SMS den Alarm meldet.

  • Für den Akku brauchst Du ne intelligente Ladeschaltung die den Akku immer wieder "auftoppt" bzw. eben eine Erhaltungsladung beherrscht.
    Fällt das Netzteil aus kommt der Saft vom Akku, ist das Netzteil an wird der Akku auf 100% Ladung gehalten, die Schaltung aber aus dem NT versorgt.


    Brauchste also keinen Benzinkanister...
    Es sei denn, die Krachmacher sollen ebenfalls mit Notstrom betrieben werden, da wäre ein Generator dann schon praktisch (oder ein Akku der 3min lang die 10A liefern kann ;)).

  • Für den Akku brauchst Du ne intelligente Ladeschaltung die den Akku immer wieder "auftoppt" bzw. eben eine Erhaltungsladung beherrscht.

    Naja, kann man ja quick&dirty lösen wie es jahrzenhtelang in allen möglichen Anlagen gemacht wird (~13,7V und gut is).
    Oder eben einfach direkt ein Netzteil kaufen was dafür gebaut ist (siehe Meanwell mit Ladeausgang).


    Aber ich frage mich wirklich weshalb jemand der scheinbar kaum Ahnung von Elektronik oder Elektrotechnik hat, eine Sicherheitsrelevante Anlage "zusammenschustern" will.
    Drahtbruchsichere Ausführung versteht sich hoffentlich von selbst .... wobei ich vermute das du das jetzt erstmal googelst.

  • Moin,


    saw0 hat schon etwas wichtiges erwähnt.
    "weil ein Integer übergelaufen ist."


    Ich lasse alle Variablen prüfen ob sie "übergelaufen" sind.
    Also wenn eine nur mit 0 und 1 zugeordnet sein darf, es aber eine andere Zahl ist, spuckt der eine Fehlermeldung aus.
    if (x != 0 && x != 1);


    Was kann Softwareseitig noch schieflaufen?

  • Tja, warum deklarierst du die entsprechenden Variablen nicht gleich als "bool", damit geht eben nur 0 oder 1 und braucht nicht auf Überlauf oder sonstwas geprüft zu werden. Und was softwareseitig noch schieflaufen kann ist eine relativ allgemeine Frage.


    Daher auch eine allgemeine Antwort:


    Jede Menge, nämlich all das was nicht beachtet und somit nicht programmiert wurde. Und dann gibt's noch die Klassiker: z.B. versehentlich überschriebene Buffer/Register, Mehrfachnutzung globaler Variablen ohne Sicherung, fehlerhafte Stack-Operationen, ungewollt verschachtelte Interrupts, usw...

  • Warum mach ich mir alles so schwer? Blöder Anfängermodus.
    Da ist mein Sketch gleich um knapp 4000 Bytes kleiner.


    Ich habe mir bei eBay ein 2x16 LCD Display, ein RTC Modul und ein Temperatursensor gekauft.
    Ich muss noch ein wenig mit herumprobieren da noch einiges unklar ist.


    Den Temperatursensor habe ich soweit zum laufen gebracht ... nur leider zeigt er bei 24°C Raumtemperatur 28°C an.
    Leg ich ein Finger drauf geht er auf die 30°C hoch. Wenn er sich dann wieder abkühlen soll dauert das ein paar Minuten.
    Das tritt sowohl beim Testsketch auf wie auch bei verschiedenen aus dem Internet.


    Ich verlange nicht das er sich schnell abkühlen soll sondern das er die richtige Temp. anzeigt.
    Liegt das am Sensor?


    Es ist ein DS18B20 mit bereits verlöteten Widerständen auf einer Platine. Messgenauigkeit 0,5°C.



    EDIT: Man hat mir geraten den eine Weile laufen zu lassen.
    Alle 10 sek geht der Messwert um 0,05°C runter, bis auf die richtige Zimmertemperatur.
    Wie darf ich das verstehen?