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
Eingänge im Programm integrieren
24.11.2015, 22:14 (Dieser Beitrag wurde zuletzt bearbeitet: 24.11.2015 22:22 von hotsystems.)
Beitrag #9
RE: Eingänge im Programm integrieren
Der Sketch kann ja auch nicht funktionieren, da fehlt die Deklaration und das Setup. Ohne die geht nix.

Und in dem Sketch sehe ich schon 2 Fehler.
Es sind sehr viel, lange delays vorhanden, die bremsen den Lauf des Programms. Während der Wartezeit macht der Controller Pause und reagiert auf keine Eingaben und auch auf sonst nix.
Und du setzt das Display mehrmals zurück. Dadurch wird es ziemlich flackern. Da beschreibt man üblicherweise nur die zu ändernden Stellen.
Die delays solltest du durch millis ersetzen. Sieh dir BlinkWithoutDelay an.

Das ist mir bisher negativ aufgefallen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2015, 07:11 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2015 07:33 von Binatone.)
Beitrag #10
RE: Eingänge im Programm integrieren
BlinkWithoutDays anschauen und verstehen.
Jetzt läuft das Programm zwar durch, aber mit jedem Delay bleibt es hängen.
Dazu eine Statusvariable festlegen.
Mit If die Statusvariable im Loop abfragen und innerhalb des If dann auf Eingaben warten
(Hatte es oben schon angedeutet)
Edit: mittels While funzt es zwar, aber damit legst Du das Programm auch auf Eis.
Wenn Du also einen Timeout brauchst, kannst Du While vergessen.
/Edit

Per Blinkwithoutdelay dann die Zeiten abfragen, ggf. Vorgang stoppen, fortsetzen, abbrechen.

Kleine Funktionen für die Ausgänge wären vielleicht hilfreich.
Dann wird das eigentliche Programm kürzer:
Wasser(1) // Wasserventil öffnen
Wasser(0) // Wasserventil schließen

Funktionen können in separate Tabs geschrieben werden
(Oben rechts im Editor)

Sonst aber bist Du auf nem guten Weg Smile

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2015, 13:39
Beitrag #11
RE: Eingänge im Programm integrieren
das setup und die deklaration hab ich jetzt hier nicht mit reingenommen da ich bereits bei 800 zeilen für das programm bin.

Achso und eine frage. Was binatone meinte mit

Kleine Funktionen für die Ausgänge wären vielleicht hilfreich.
Dann wird das eigentliche Programm kürzer:
Wasser(1) // Wasserventil öffnen
Wasser(0) // Wasserventil schließen

setze ich die variable vor dem setup fest?
also beispielsweise
int Ventilwasser = 1
int VentilLuft = 2
int VentilDruck = 3

Das Programm funktioniert ja nur was zur zeit mein Problem ist, ist das ich zum beispiel pin13 auf pin6 analog schalte und dort abfrage weil ich nicht weis wie ich sonst ein Programm starten soll. Dazu kommt noch das ich die Bestätigungen im Programm über mehrere eingänge in einer und verknüpfung abfrage. Ich brauche sozusagen für jedes mal wenn ich im programm was bestätigen will noch einen Ausgang und einen Eingang. mag zwar nicht viel sein aber ich benötige jeden einzelnen Ein und Ausgang. LEDs schalte ich zb schon alle über eine matrix. Für den UNO gibts ja auch IO erweiterungsmodul. Gibts das für den mega Auch? bzw kann ich mehrere arduinon über bus miteinander kommunizieren lassen?

Aber danke schonmal für die Tipps.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2015, 13:59 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2015 14:01 von hotsystems.)
Beitrag #12
RE: Eingänge im Programm integrieren
(25.11.2015 13:39)Phil94 schrieb:  das setup und die deklaration hab ich jetzt hier nicht mit reingenommen da ich bereits bei 800 zeilen für das programm bin.

Achso und eine frage. Was binatone meinte mit

Kleine Funktionen für die Ausgänge wären vielleicht hilfreich.
Dann wird das eigentliche Programm kürzer:
Wasser(1) // Wasserventil öffnen
Wasser(0) // Wasserventil schließen

setze ich die variable vor dem setup fest?
also beispielsweise
int Ventilwasser = 1
int VentilLuft = 2
int VentilDruck = 3

Das Programm funktioniert ja nur was zur zeit mein Problem ist, ist das ich zum beispiel pin13 auf pin6 analog schalte und dort abfrage weil ich nicht weis wie ich sonst ein Programm starten soll. Dazu kommt noch das ich die Bestätigungen im Programm über mehrere eingänge in einer und verknüpfung abfrage. Ich brauche sozusagen für jedes mal wenn ich im programm was bestätigen will noch einen Ausgang und einen Eingang. mag zwar nicht viel sein aber ich benötige jeden einzelnen Ein und Ausgang. LEDs schalte ich zb schon alle über eine matrix. Für den UNO gibts ja auch IO erweiterungsmodul. Gibts das für den mega Auch? bzw kann ich mehrere arduinon über bus miteinander kommunizieren lassen?

Aber danke schonmal für die Tipps.

Also zu deinen Angaben bzw. Fragen:

Eine Deklaration ist immer wichtig, da wir da erkennen können, wie die Variablen erstellt sind und welcher Libs du evtl. eingebunden hast. Im Setup sind Einstellungen die auch für die Analyse des Sketches wichtig sind.

Also bitte immer komplett posten und wie du sicher gesehen hast den Sketch hie in Code-Tags posten, damit dieser nicht so viel Platz wegnimmt und besser lesbar ist.

Was meinst du mit
Zitat: ...ist das ich zum beispiel pin13 auf pin6 analog schalte...
Wie geht "analog schalten"?

Das Bestätigen könntest du über ein entsprechendes Menü erledigen, dann braucht es nicht so viele Taster.

Ein I/O-Erweiterungsmodul ist Arduino unabhängig und geht über I2C. z.B. den PCF8574 mit 8 Ein/Ausgängen.
Über I2C können die Arduino auch miteinander kommunizieren.

Was die Funktionen betrifft, sind das kleine "Unterprogramme" die du aus der Loop aufrufst. Dadurch wird das gesamte übersichtlicher. Und macht Sinn wenn man diese Funktionen häufiger im Loop benötigt.
Du hast es ja mit "Void Reinigung()" auch schon so gemacht. Diese Funktionen können auch in weitere Register der IDE untergebracht werden.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.11.2015, 21:08 (Dieser Beitrag wurde zuletzt bearbeitet: 28.11.2015 21:32 von Phil94.)
Beitrag #13
RE: Eingänge im Programm integrieren
bin wieder auf Probleme gestoßen. mein Programm ist mittlerweile 1000 zeilen lang. Habe nochmal 18 menüpunkte hinzugefügt, bei denen nur wenn ich auf bestätigen drücke jeweils 1 ausgang geschaltet wird. wenn ich das programm aber nun überspiele gibt es zwar keine fehlermeldung doch mein display zeigt in der oberen zeile nur kästchen an. lösche ich ein paar punkte, sodass statt der 18 unterpunkte nur noch 8 drin sind funktioniert alles einwandfrei. er schreibt das er 8% speicher verbraucht und 24% des dynamischen speichers... ohne dieses menü war ich bei 14%. woran könnte es liegen? Außerdem hängt er sich immer wieder auf und zeigt totale schei***e an.

ich hab euch mal mein programm als download angehängt, da ich leider nicht weiß wie ich einen Code Tag anhängen kann...


Angehängte Datei(en)
.ino  Menu_Cocktails_Reinigung_Fertig_28.11.ino.ino (Größe: 20,81 KB / Downloads: 12)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.11.2015, 22:08
Beitrag #14
RE: Eingänge im Programm integrieren
Das versteh ich nicht, anhängen von Code ist doch ganz einfach. Notfalls steht es in der Beschreibung zum Forum.
Es gibt dazu Schaltflächen (Code-Tags).

Ich kann den Code am Tablet so leider nicht ansehen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.11.2015, 22:22
Beitrag #15
RE: Eingänge im Programm integrieren
Sorry finde nichts wir ich solch einen Code anhängen kann.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.11.2015, 22:52
Beitrag #16
RE: Eingänge im Programm integrieren
Schaltfläche #

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler in meinem Programm Franz54 7 163 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 550 06.07.2016 14:59
Letzter Beitrag: Binatone
  SHT21 in Sketch integrieren PrinzEisenherz1 6 595 06.04.2016 14:38
Letzter Beitrag: PrinzEisenherz1
  RX/TX als dig. Eingänge beim Mega 2560 benutzen? alpenpower 0 334 22.03.2016 12:13
Letzter Beitrag: alpenpower
  mehere Analoge Eingänge nutzen clemens89 17 1.083 16.03.2016 20:40
Letzter Beitrag: hotsystems
  Werte an anderes Programm weiterleiten Typ 2 438 12.03.2016 23:28
Letzter Beitrag: Typ
  Programm Code Erweitern hugolost 8 664 01.01.2016 20:02
Letzter Beitrag: Bitklopfer
  Webserver abfragen mit einem Programm arduinofan 2 735 28.11.2015 15:54
Letzter Beitrag: arduinofan
  mehrere Analoge eingänge seriell ausgeben rieders 5 805 28.11.2015 09:55
Letzter Beitrag: Bitklopfer
  aus Arduino IDE Programm beim Upload starten PingPong 3 627 13.11.2015 15:38
Letzter Beitrag: PingPong

Gehe zu:


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