80 relais mit arduino und shiftregister via lcd kontrollieren

Hallo,

es ist mal eine reine frage.

Kann ich mit einem arduino 80 relais ansteuern via shiftregister und einem lcd menu zeitablaufmäßig steuern?

folgende schritte sollen durchlaufen werden

menu 1 auswahl der relais 1-80 aktiv/inaktiv menu 2 countdowntimer für jedes relais einstellbar in sek

zb relais 1 schaltet durch wenn 10 sek abgelaufen sind für 3 sek relais2 schaltet 3 sekunden nach dem relais1 durchgeschaltet wurde durch für 3 sekunden usw

menu 3 start

Vielen dank CRazy

Da wirst du aber mehr als 2 Menüs brauchen ;) Außerdem brauchst du ein kräftiges Netzteil, was 80 Relais versorgen kann. Aber prinzipiell ist das bei einem sauberen Aufbau mit Abblockkondensatoren und kurzen Leitungen prinzipiell möglich.

Anstelle Shiftregister würde ich beispielsweise mcp23017 nehmen, da sind acht Stück an einem I2C-Bus möglich. Der Zugriff ist byteweise, also direkter. Siehe Maximising your Arduino’s I/O ports with MCP23017.

Die Anzeige sollte mehr als zwei Zeilen haben. Möglicherweise wäre ein Grafikdisplay wegen unterschiedlich großer Schrift von Vorteil, beispielsweise OLED.

Okay das hört sich schon mal nicht schlecht an. Wäre es für die Übersicht einfacher wenn man die Sketche für menü countdowntimer und die Ansteuerung der Relais über einzelne separate sketches macht und sie danach miteinander verknüpft? Also ich meine man kann ja mehrere tabs bei arduino in einem Projekt öffnen.?

Gruß crazy

Sketche kann man nicht verknüpfen. Man MUß einen Sketch schreiben der alles tut was man will. Du kannst und solltest aber klein und schrittweise anfangen und die einzelnen Funktionsgruppen einzeln programmieren und dann zusammenfügen.

Du brauchst auf alle Fälle nicht nur Schieberegister bzw Portexpander wie den mcp23017 sondern auch Treiber wie zB ULN2803 um die Relais ansteuern zu können.

Viele grüße Uwe

crazybanane: Also ich meine man kann ja mehrere tabs bei arduino in einem Projekt öffnen.?

Man kann für die Übersicht das Projekt in mehrere Tabs unterteilen. Aber es ist nur optisch. Für den Compiler ist es ein Sketch. Es darf nur ein Setup und Loop vorhanden sein. Ansonsten, wie es Uwe beschrieben hat, in kleinen schritten vorgehen.

crazybanane:
Also ich meine man kann ja mehrere tabs bei arduino in einem Projekt öffnen.?

Ja, das geht, wobei TAB = Datei ist. Ein Beispiel findest Du bei ELV Universelle Lichtsteuerung mit Arduino. Diese Dateien stehen dann im Verzeichnis:

ampel.ino
andreaskreuz.ino
baustellenleitlicht.ino
blitzer.ino
i2c_lauflicht.ino
lichteffektsteuerung.ino
_i2c.ino
_system.ino

Die IDE zeigt mehrere Tabs:
lichteffektsteuerung.png

crazybanane:
Wäre es für die Übersicht einfacher …

Das mußt Du selbst herausfinden. Wichtiger als Tabs scheinen mir für Dich Funktionen und Felder mit Index zu sein, sowie Bitmasken und möglicherweise auch Zeiger.

Also mein menü sollte von der Struktur her ungefähr so aussehen.

1.Auswahl Anschlüsse 1-80
Sub menü— Relais Auswahl (hier die Anzahl auswählen"1-80"
2.Countdowntimer einstellen
Submenü 2 – Relais 1 (Sekunden “0-60”)
Relais 2 (Sekunden “0-60”)
Usw… Soll dann aber nur die Relais anzeigen die angewählt wurden als Beispiel Relais 1-36
3.Feuer frei
Sub menü – hier soll alles nochmal aufgelistet werden zum durchscrollen. Danach eine Bestätigung
" Sind sie sicher? (Ja) (nein)
Wenn ja dann soll der timer starten und dementsprechend die Relais der eingestellten Zeiten nach durchschalten
4.Relais test
Sub menü – Relais testen (ja/nein) wenn ja dann jedes Relais nacheinander im Abstand von 0.5 sek einmal durchschalten.

Das ist so meine Vorstellung. Das elektrische sollte nicht mein Problem sein bei mir hapert es an der Programmierung. Ich habe mir jetzt mal ein sketch kopiert und etwas bearbeitet und zeige ihn euch damit ihr mir sagen könnte ob ich auf dem richtigen weg bin. Eine kurze Anleitung wie das mit dem Sub menü funktionieren soll wäre nett.

firework.ino (9.04 KB)

crazybanane: Das ist so meine Vorstellung. Das elektrische sollte nicht mein Problem sein bei mir hapert es an der Programmierung.

Also Du bist sowas wie ein Feuerwerker und willst Dir eine Box zum Abfeuern eines programmierten Feuerwerks basteln, oder sowas in der Art? Oder was soll das werden, was soll mit den Relais geschaltet werden?

crazybanane: Ich habe mir jetzt mal ein sketch kopiert und etwas bearbeitet und zeige ihn euch damit ihr mir sagen könnte ob ich auf dem richtigen weg bin. Eine kurze Anleitung wie das mit dem Sub menü funktionieren soll wäre nett.

An dem von Dir geposteten Sketch kann ich gar nichts sehen. Außer vielleicht, dass Du - als Hardware für das Display ein LCD-Textdisplay - als Hardware für die manuelle Menübedienung einen Drehgeber verwenden möchtest.

Ansonsten sehe ich in dem Code weder eine "setup()" noch eine "loop()" Funktion, dafür massenhaft Nicht-ASCII Zeichen, die dort offenbar nicht hingehören, wie z.B.:

  char* menuItems[]={
  Â  "Auswahl Anschluesse", 
  Â  "Countdowntimer setzen", 
  Â  "Feuer frei",
  Â  "Relais test", 
  Â  "frei",
  Â  "frei",
  Â  "frei",
  Â  "",
  };

Wie und wo hast Du das mit/von welchem Betriebssystem kopiert und wie hast Du da die ganzen Âs in den Code reinbekommen?

Hi,

nein ich bin kein Feuerwerker das ist mir persönlich etwas zu gefährlich das lass ich lieber erfahrene leute machen. Es geht einfach darum ich möchte jemandem helfen der Pyrotechniker ist der sich nicht mit elektronik auskennt und ich bin ein bastler der sich grundlegend mit elektronik auskennt und minimale erfhrungen mit Arduino hat weil ich selbst Quadrocopter fliege. Die ganzen  s kann ich mir nicht erklären. ich arbeite zuhause mit Arduino Ide und unterwegs mit arduDroid. Es ging mir darum das ich aus verschiedenen Programmschnippseln mir das eigene Programm zusammenbaue. Ja ihr mögt jetzt gerne mit mir schimpfen und ihr habt auch vollstes recht dazu aber ich möchte mich gerne so mit dieser art und weise in arduino einarbeiten.

Mit dem Programmschnippsel den ich euch zugesendet habe wollte ich einfach nur wissen ob damit überhaupt eine menü struktur so machbar ist oder ob der ansatz schon falsch ist, desweiteren wollte ich gerne verstehen wie ich denn in diesem menü ein Sub menü erstelle. Ich habe einfach die erfahrung gemacht das wenn ich schritt für schritt mit anderen leuten darüber spreche und ich die genauen änderungen umsetzte ich es besser leichter und schneller verstehe wie wenn ich es mir durch solch ein unverständliches kauderwelch reinziehe wie es in manchen anleitungen drinne steht. Deswegen bitte ich euch sehr mir weiterhin zu helfen.

Gruß crazy ....... einen schönen Abend euch noch

Wenn es um einen festen Ablauf geht, könnte man ja auch einen Dekadenzähler wie den CMOS4017 nehmen und eben acht Stück kaskadieren.