Show Posts
Pages: 1 ... 3 4 [5] 6 7
61  International / Deutsch / Re: PCF8574 und Relais on: November 28, 2012, 05:29:03 pm
auch 2k Widerstände sind nicht zu klein, schätze ich mal. Soviel Strom vertragen alle Beteiligten und umso schwerer haben es die Pumpen-Störungsignale.

Aha, das ist aber schon Geheimwissen, Michael_X ;-)
Ich setze dann mal am Wochenende an SDA/SCL jeweils einen 2k Pull-up-Widerstand, richtig?
(Stimmt also nicht mit dem vorhandenen Pull-Up im Mega, und wieder ein "aha")

Grüße
Michael

62  International / Deutsch / Re: PCF8574 und Relais on: November 28, 2012, 03:24:29 pm
Wie überträgst du denn das I2C Signal im Kabelkanal der Pumpe ? ( Telefondraht , CAT5 , ... )
Hast du am Ende schön kleine pullup Widerstände ?

Das Kabel für I2C ist ein verdrilltes, vieradriges Telefonkabel. GND und einer der SDA bzw. SCL (war jedenfalls der Richtige) sind zusammen.
Am Ende der I2C-Verbindungen (am PCF8574 des Relais und des LCD/Keypads) habe ich zwei 13K, die gerade zur Hand waren, gelegt. Da war ich allerdings ncith sicher, weil ich meinte gelesen zu haben, dass der Mega das schon hat. Sind aber seit heute Mittag dran :-)

Ich bete, dass in den nächsten Tagen das Teil nicht wie sonst abstürzt. Damit kann ich noch vor Weihnachten LCD und Keypad in irgendein hübsches Döschen kleben und niemand guckt vorm unter dem Weihnachsbaum mehr böse auf mich wegen der Drahtwirtschaft in der Ecke :-)

Grüße
Michael
63  International / Deutsch / Re: PCF8574 und Relais on: November 28, 2012, 02:45:48 pm
Quote
Die I2C-Leitung geht über mehrere Meter ... die Stromzufuhr der Pumpe teilt gezwungenermaßen ein Kabelkanal mit der I2C-Leitung
Quote
Ähem, dafür geht das alles aber super ...

:-) Habe ich auch gedacht. Aber die Störungen des Displays (wie das keypad auch ca. 5 m vom Mega entfernt) tauchen so sporadisch auf, dass ich die Entfernung - vielleicht unberechtigterweise - vernachlässigt habe.

Quote
Den PCF8574 könntest du aber beim Arduino einbauen, und eher die Steuersignal-Leitungen zur Relaiskarte verlängern.

Das ist auch fast der Fall: ein halber Meter trennt den Mega und den PCF8574. Und dann kommt auch schon die Relaiskarte.

Quote
Dass du an den Relais schon Pumpen angeschlossen hast, war (mir) bisher nicht klar. Wie meinst du das mit dem delay() ?

Eine hübsche Umwälzpumpe, die auf Max (ca. 100W) gestellt (sein muss) ihren Dienst bei Bedarf verrichtet. Hinter das Senden des Steuerbytes an die Relais über den PCF8574 habe ich den Delay(3000) gesetzt. Normalerweise wird dann das LCD mit der entsprechenden Info (Pumpe an) upgedatet und wenn die Pumpe anlief, störte das diese Datenübermittlung. Ich vermute, als Laie, dass dann I2C oder sowieso die Spannung des Mega in die Knie gingen und aus war die Maus. Mit einem Delay von 3 Sek. (und einem anschließendem Reset des Displays, was nur nötig bei der Pumpe ist, die anscheinend viel zieht) ist die Sache z.Z. fehlerfrei bedienbar.

Ob die Umstellung auf Chararrays weg von der String-Klasse für die nötige Dauerstabilität auf Dauer sorgt, berichte ich sicherlich in den nächsten tagen :-)

Aber für weitere Ideen (und Fragen, wenn nicht Antworten gar) bin ich dankbar!

Grüße
Michael


Das zu dem aktuellen Stand

[/quote]
64  International / Deutsch / Re: PCF8574 und Relais on: November 28, 2012, 10:49:17 am
die Freilaufdiode am Relais ggf. nicht korrekt verlötet wurde, vielleicht auch defekt ist. Kannst du das mal testen.

Hallo Gerd,

danke für Deine Idee. Wie könnte ich das Testen bitte mit ... Boardmitteln ... machen? Du kannst Dir vorstellen, es sind nicht viele da.
Aber ich weiß inzwischen, welche Seite des Lötkolbens man anfassen muss :-)

Grüße
MIchael
65  International / Deutsch / Re: PCF8574 und Relais on: November 28, 2012, 10:47:07 am
- Wie kritisch sind Länge und Lage der I2C Leitungen ?
Die I2C-Leitung geht über mehrere Meter, allerdings ist dies - bis auf den Einbruch des Aruino, was nach dem Schalten manchmal Kaulderwelsch auf dem LCD liefert - unproblematisch.

Quote
- Welche Störungen können die schaltenden Relais verursachen, und wie schützt man den Rest?
Aha, hier könnte das Problem liegen: die Stromzufuhr der Pumpe teilt gezwungenermaßen ein Kabelkanal mit der I2C-Leitung. Habe nun, um den Anlaufstrom (ob es das wirklich gibt :-) ?) als Störfeind auszuschalten, ein Delay hinter dem Schalten der Pumpe gesetzt, 2 Sek., Kaulderwelsch jetzt seltener da, Abstürze nicht mehr. AHA!

Laune steigt :-))

Grüße
Michael
66  International / Deutsch / Re: PCF8574 und Relais on: November 28, 2012, 09:31:57 am
Haben alle komplett eigene Netzteile ( zum Test ) ?

Danke für Deine Idee: den Relais habe ich gerade ein 5V Netzteil gespendet, leider ohne Erfolg :-(
An einem weiteren Netzteil hängt der Mega (7,5V). Ein weiteres Netzteil versorgt das LCD (auch 5V).

Meinst Du  aber, dass die Anbindung des PCF8574 an das Relaismodul von der Idee so ok ist?

Grüße
Michael
67  International / Deutsch / PCF8574 und Relais on: November 28, 2012, 08:17:49 am
Hallo,

jeden Eurer Vorschläge habe ich bisher umgesetzt: Pull-ups eingesetzt, auf IDE 1.0.2 umgestellt, String aus dem Sketch beseitigt. Dafür vielen Dank, ich habe viel gelernt und mein Projekt kommt voran.
Ein Problem bleibt noch und ich wäre für einen Hinweis dankbar:

Mein Mega ist über I2C mit einem Keypad und LCD verbunden und steuert ebenfalls über I2C eine PCF8574-Karte, die direkt an ein "Relaisboard" gekoppelt ist, vgl. http://www.sainsonic.com/zen/albums/ebay/nichegeek/20-018-102/8c.jpg. D.h. jeder meiner acht PCF8574 Pins hängt an einem IN0-IN7 der Relaiskarte, welche optisch vom jeweiligen Relais getrennt sind. Die Relaiskarte hat eine eigene Stromversorgung (VSS und JDVSS sind getrennt), die GNDs sind verbunden.

Ich schicke an das PCF8574-Board jeweils mein Byte und steuere damit die Relais - in der Theorie. Ohne Versorgungsspannung sehe ich die LEDs der Relais leuchten, es wird aber noch nicht geschaltet, kein Wunder. Es läuft also zunächst alles wunderbar.
Nun kommt's leider: liegt die Versorgungsspannung an, arbeiten die Relais. Wenn sie aber geschaltet werden, also wenn mein Byte reingeht, stürzt der Mega manchmal, bis oft ab (bei IN0 fast immer beim ausschalten, bei IN1 seltener etc.).

Ich vermute irgendwelche Stromstösse - aber wo laufen diese denn? Eigentlich müsste die PCF8574 nichts abkriegen, weil optisch getrennt, die GNDs sind gekoppelt, wo liegt das Problem?
 
Ich bin mit meinen Ideen (und Nerven) am Ende - hat jemand bitte eine Idee?

Grüße
Michael



68  International / Deutsch / Re: Aquariumcontroller: hängt sich auf / stürzt ab / friert ein - Hilfe! on: November 28, 2012, 08:03:11 am
Nein:  "blablabla" ist kein String, sondern ein const char [10].

Michael, alles klar, danke!

Grüße
Michael
69  International / Deutsch / Re: Aquariumcontroller: hängt sich auf / stürzt ab / friert ein - Hilfe! on: November 27, 2012, 04:36:41 pm
Selbst wenn der free()-Bug dort nicht drin wäre, das grundsätzliche String-Problem mit dem fragmentierten Speicher bleibt bestehen, somit ist die String-Klasse für Systeme, die mehr als ein paar Durchläufe der Hauptschleife überstehen sollen, gar nicht zu empfehlen. Das Bisschen Bequemlichkeit ist den Ärger nie und nimmer wert.

Guten Abend,

bin gerade dabei, alle Strings aus meinem Sketch zu beseitigen - habe bitte eine Frage:
Die Stringinstanz habe ich rausgeworfen und arbeite mit Chararrays, wie empfohlen.
Aber wenn ich Strings an meinen LCD schicke, lcd.print("blablabla"), bastelt der Arduino da nicht auch "irgendwie" mit Strings herum? Oder schiebe ich nur unnötig Panik ;-), denn dieses Zeug aus dem Sketch zu tilgen, wäre ein richtiger "Act" ?

Grüße
Michael
70  International / Deutsch / Re: Aquariumcontroller: hängt sich auf / stürzt ab / friert ein - Hilfe! on: November 26, 2012, 02:50:44 pm
Selbst wenn der free()-Bug dort nicht drin wäre, das grundsätzliche String-Problem mit dem fragmentierten Speicher bleibt bestehen, somit ist die String-Klasse für Systeme, die mehr als ein paar Durchläufe der Hauptschleife überstehen sollen, gar nicht zu empfehlen. Das Bisschen Bequemlichkeit ist den Ärger nie und nimmer wert.

Guten Abend,

danke für die Anregung, auf eine aktuelle IDE-Version umzusteigen. Als ich mein Projekt begann, gab es für meinen I2C-LCD noch keine passende Library für 1.0 oder 1.0.1. Daher habe ich die 0023 eingesetzt. Jetzt bin ich nach einem Tag herumsuchen mit meinen Nerven am Ende - aber unter 1.0.2 es scheint alles wieder wie vorher zu laufen. Vielleicht läuft mein Sketch jetzt stabil - ich hoffe zuerst, auch mit unter Einsatz der String-Klasse. Und wenn nicht, ist diese als nächste dran. (Und ich dachte zuerst "Never touch a running system" - aber eigentlich war es kein "running system", insoweit danke für die Anregung ;-)

Viele Grüße
Michael
71  International / Deutsch / Re: Aquariumcontroller: hängt sich auf / stürzt ab / friert ein - Hilfe! on: November 23, 2012, 12:32:58 pm
- Eliminiere komplett die String-Klasse. Für einen HelloWorld-Sketch mag die ganz nett sein, aber in einem Sketch, der 24/7 laufen soll, hat sie nichts, gar nichts verloren. Im besten Fall fragmentiert sie den Speicher so lange, bis keine genügend grossen Stück mehr frei sind, was zu unvorhersehbaren Zuständen führen kann. Zudem haben die aktuellen IDEs (besser: die zugehörige C-Bibliothek) einen Bug in der free()-Funktion, was zu einem Memory-Leak führt. Da die String-Klasse intensivsten Gebrauch davon macht, verlierst Du über die Zeit immer mehr RAM, bis Dein Arduino irgendwann unkontrolliert steht oder mit viel Glück neu startet.
Schreibe den Teil mit den zwei Strings in eine Version um, wo Du nur noch char-Arrays verwendest, dann wird Dein Sketch wahrscheinlich schon viel stabiler laufen.

Puuuh, String einsetzen ist also nicht so dolle.... Ich optimiere an meinem Code seit Wochen und kriege immer wieder und nicht nachvollziehbare bzw. eingrenzbare Abstürze des Mega bzw. LCD (Über I2C gesteuert, daran hängt auch ein Keypad, abgegriffen ebenfalls über I2C). Ich habe gedacht, dass die Entfernung der beiden zum Mega das Problem ist, bei Verringerung des Takts ändert sich nichts und die unvorhersehbaren Abstürze blieben. Nun pushe ich die Daten zu Cosm und setze dabei Strings ein - eine Methode übernimmt den String als Parameter, der aus der Loop kommt.

Ich nutze die Version 0023, ist diese bitte auch von dem Bug betroffen - sodass dies die Quelle des Unheils sein könnte?

Viele Grüße
Michael
72  International / Deutsch / Re: Problem mit 200 mA-Beschränkung des Mega on: November 21, 2012, 04:36:34 pm
Guten Abend,

vorweg: die Geschwindigkeit herabzusetzen war eine gute Idee, hat aber an meinem Problem nichts geändert :-/

Es ist unglaublich, was einem so auf dem Weg zum hoffentlch einmal perfekten Sketch begegnet.
Bei der Anstreuerung des i2c-LCD-Display habe ich nach langem Suchen einen weiteren Fehler gefunden, der das Kaulderwelsch auf dem LCD produziert haben könnte: lcd.init() muss nach dem wire.begin() stehen. Steht so in der library irgendwo. Sollte man also auch lesen. (Trotzdem stürzt das LCD regelmäßig ab - aber ich find's noch!)

Man lernt nie aus und niemals aufgeben.

Ist die Herabsetzung der Geschwindigkeit (des Taktes) beim I2C auch mit der Reduzierung der Rechengeschwindigkeit des Prozessors verbunden? Müsste so sein, oder?

Herzliche Grüße
Michael
 
73  International / Deutsch / Re: Problem mit 200 mA-Beschränkung des Mega on: November 17, 2012, 06:59:00 am
Guten Morgen,

danke für den Tipp und Link. Ich habe die Geschwindigkeit auf die Hälfte heruntergesetzt, mal sehen, ob das signifikante Besserung bringt. Ich berichte.

Grüße
Michael
74  International / Deutsch / Re: Problem mit 200 mA-Beschränkung des Mega on: November 16, 2012, 01:37:45 pm
Hallo Pylon,

danke für Deinen Hinweis. Ein paar Meter sind es bei mir schon - diese kann ich nicht überbrücken. Da mein "Sonderzeichenproblem" selten und unregelmäßig auftaucht, wäre ich für die Busgeschwindigkeit-Lösung.
Hast Du bitte einen Tipp, wo ich nachlesen kann, wie das bewerkstelligt wird?

Viele Grüße
Michael
75  International / Deutsch / Re: Problem mit 200 mA-Beschränkung des Mega on: November 16, 2012, 12:08:04 pm
Guten Abend,

endlich konnte ich nach einigen Tagen Pause mit dem Projekt weitermachen - und hier ist eine Lösung meines Schwankungsproblems!
LM35 sind die Sensoren, einige Meter vom Arduino entfernt. Ohne viele Worte zu verlieren: Glücklich, wer das Datenblatt lesen kann (ich war zuerst wegen der guten und "glatten" Ergebnisse in der Nähe des Arduino davon aisgegangen, dass ich nicht mehr an in der Richtung lesen/machen muss, vgl . Datenblatt des LM35, Fig 4., bei mir allerdings ohne Widerstand, wird glatter). Ein Kondensator zwischen Messleitung und GND wirkt Wunder!

Vielen Dank für Eure Beiträge. Auch wenn sie nicht einschlägig waren, habe ich daran viel gelernt!

Eine Frage hätte ich noch. SDL und SCA des I2C-Busses gehen auch über ziemlich lange Leitungen. Gibt es neben dem I2C-Extender noch eine andere Möglichkeit, Störeinflüsse wie bei meinem LM35 gesehen, zu reduzieren (das LCD Display prodziert manchmal seltsame (Sondern-) Zeichen).

Grüße
Michael
Pages: 1 ... 3 4 [5] 6 7