Möchte eigentlich nur wissen ob SSR am Arduino wirklich keine Probleme
mehr machen.
Hatte die übliche 4x Relais Karte am Arduino und schalte damit vier
einfache 230V 250-300W Motore (Tauchpumpen). Manchmal ist beim schalten
dann der Arduino abgestürzt. Mal nach einigen Schaltungen und mal auch
erst bei über 200. Hatte ich nicht so erwartet da die alte Steuerung vor
dem Arduino deutlich primitiver und viel schwächer war.
Hier steht irgendwo das sein wohl normal so. Also habe ich mir nun eine
SSR Platine verbaut. Habe ich damit nun endlich Ruhe?
Jou, kenn ich von meiner Rolladen-Steuerung: 16-fach-Relaiskarte steuert
Rohrmotore. Erschwerden dkommt hinzu, dass der Arduino (Mega) mittels
Ethernet-Shield an einem PLC-Adapter hängt. Auf diese Weise komme ich
mit meiner selbstgestrickten Handy-Web-App per WLAN auf die Steuerung
...
Bim Schalten stürzt manchmal der Mega bzw. der Ethernet-Shield ab und
manchmal verliert auch der PLC-Adapter für Sekunden die Verbindung.
Ich konnte die Häufigkeit der Abstürze durch den Einsatz von solchen
aufklickbaren Mantelstromfiltern auf die Motorleitungen deutlich
reduzieren. Für den Rest nutze ich einen Hardware-Watchdog ...
https://www.elektro4000.de/images/product_images/thumbnail_images/E-P-Elektrik-Mantelstromfilter-AF4Lose-546092_0.jpg
Würde man mehr Aufwand vor und nach dem Netzteil für den Arduino
treiben, ließe sich bestimmt noch Einiges herausholen. Für ein anderes
Projekt bin ich ganz extreme Störimpulse übers Netzteil durch eine
solche Kette losgeworden:
Hutschienen-Netzteil 230V zu 24V -> Dual-Ringkerndrossel ->
Elko/Folienkond. parallel -> Stepdown-Wandler 24V zu 12V ->
Dual-Ringkerndrossel -> Elko/Folienkond. parallel -> Stepdown-Wandler
12V zu 5V USB.
Aus den 12V werden Relais gespeist, die 230V-Motore schalten, aus dem
USB versorge ich den Arduino ...
https://asset.conrad.com/media10/isa/160267/c1/-/de/1088020_BB_00_FB/drossel-ringkern-sektionell-radial-bedrahtet-rastermass-45-mm-39000-h-3000-m-03-a-wuerth-elektronik-we-cmb-744821039-1-st.jpg
Klar habe ich schon von einem Löschglied gehört, aber soll ich das Ding
mittels Trial and Error auslegen? Extra einen Oszi kauf ich nicht dafür.
Darum habe ich ja SSR gekauft.
Wie gesagt, zuvor hat der Spaß nicht mal ein noch billigeres und noch
kleineres Relais und deren Steuerung gestört. Das Relais war bei der
Belastung nahe am Datenblatt Anschlag, denn bei dem lief alles über das
eine Relais. Hätte es dort großartig Abreißfunken gegeben dann wäre das
schon längst hin.
Manchmal reagieren naheliegende uC auf EMP Störfelder die durch Schalten
von höheren Wechselstromlasten entstehen.
Da hilft nur Entkopplung und auch optional Abschirmen. Wenn GPIO direkt
die Relais Treiber steuern empfiehlt sich ganz NAHE auf der uC Seite
(Arduino) Serienwiderstände von 470 Ohm - 1K einzufügen. KEINE I/O
Leitung des uC darf ohne Serienwiderstand nach außen in die Welt geführt
werden weil die sonst als Antennen wirken und empfindliche Flanken
reagierende Schaltkreise im inneren des uC beeinflussen können. Auch
hilft bei Eingängen oft noch Cs nach Masse um energiereiche
hochfrequente Störsignale abzuschwächen. Auch hilft es niederohmige
Pullups an Eingang-Pins des uC zu haben. Auch TVS Dioden helfen,
strategisch eingesetzt. Der beim Arduino relative hochohmige und
empfindliche RESET Input sollte nach dem Programmieren fest auf Vcc
gebracht werden.
Zwischen externen Pullup und Eingangspin sollte ein hochohmiger Serien R
sein (10K) und ein C nach Vdd wenn aktiv nach Masse geschaltet wird.
Noch besser ist der Einsatz von Opto Isolatoren.
Alle diese Maßnahmen machen den Unterschied zwischen nackter Elektronik
wie bei Arduino und Co und industrieller Elektronik aus. Man muss da für
Störsicherheit schon einen gewissen Aufwand treiben. Solche Probleme
kommen in der Industrie niemals oder nur extrem selten vor.
Die Relaiskarten haben doch alle Optokopler.
Eingänge habe ich nur zwei, und die haben natürlich Widerstände drauf.
Der Rest ist komplett auf Ausgang geschaltet, und dann sollen doch
angeblich die Pullups vom Arduino selbst auf geschaltet sein?
Wenn irgendwo Funken entstehen (sei es bei den Kontakten von Relais oder
in Motoren oder noch banaler im Lichtschalter, Staubsauger, oder
Feuerzeug), entstehen auch starke elektromagnetische Felder, die in
elektrischen Leitern Spannung induzieren.
Daher sollte man Funken generell verhindern, wo immer es möglich ist.
Geht beim Feuerzeug natürlich nicht. Bei elektrischen Geräten dienen
Snubber dazu, Funken zu reduzieren oder ganz zu verhindern.
Dann hast du oben Tipps bekommen, wie man den µC durch äußere
Beschaltung weniger empfindlich macht.
Und drittens solltest du alle Masse Verbindungen sternförmig auf einen
Punkt zusammen laufen lassen. Je dicker die Leitungen dorthin sind, umso
besser.
Ok, also wieder was gelernt. SSR brauchen also auch ein Löschglied.
Soweit so gut.
Aber Störungen die mir den Arduino abschießen dürfen ja jetzt eigentlich
nicht mehr kommen durch die SSR?
Mir wird es jetzt nur irgendwann ein SSR nach dem anderen zerschießen?
Wie äußert sich das eigentlich? Rums und Loch drin, oder einfach nur
tot, oder dauerhaft an?
Bei dem was ein komplettes Löschglied kostet, bekomme ich für jedes
einzelne auch 4 SSR. Von da her wäre es zu verkraften wenn sie nicht all
zu oft nippeln, solange der Arduino weiter macht.
> Aber Störungen die mir den Arduino abschießen dürfen> ja jetzt eigentlich nicht mehr kommen durch die SSR?
Prinzipiell machen SSR bezüglich dieser Störungen keinen wesentlichen
Unterschied zu Relais. Die Störungen werden ja nicht vom Relais erzeugt,
sondern sie breiten sich lediglich über die Leitungen,
Elektromagnetische Felder und parasitäre Kondensatoren aus. Solche
Effekte kann ein SSR nicht besser verhindern, als ein Relais.
Einzig SSR mit Zero-Cross Option sind unter Umständen vorteilhafter. Ob
das der Fall ist, hängt stark von der angeschlossenen Last ab. Doch
Vorsicht: Sie eignen sich nicht für jede Last. Relais sind universeller
und robuster.
Stefanus F. schrieb:> Einzig SSR mit Zero-Cross Option sind unter Umständen vorteilhafter.
Bei induktiven Lasten eher nicht.
Tipp immer das Datenblatt des SSR befragen!
Es gibt SSR mit integriertem Löschglied.
Aber selbst dann, kann ein SSR, welches für 25A Ohmsche Last geeignet
ist, schon bei 2A induktiver Last überfordert sein.
Mr. Ahnungslos schrieb:> oder dauerhaft an?
Genau!
Dauerhaft an, ist der übliche Fehler.
Loch, Knall und Rauch, ist eher selten.
Aber wo kommen nun noch die Störungen her? Ich dachte die kommen durch
Funken, die hab ich doch gar nicht mehr?
Einfach nur die Induktion auf der Leitung ohne einen Funken stört auch?
Spannungsabfall auf den GND Leitungen könnte noch ein offenes Problem
sein. Außerdem Funken in den Motoren der Pumpen. Und auch Funken in
Dingen, die nicht direkt mit deinem Bauwerk zu tun haben, wie der
besagte Staubsauger, Lichtschalter und das Feuerzeug.
Zudem ist jede Leitung eine Antenne und empfängt daher mehr oder weniger
vom WLAN, TV, Radio, handy-Netze, Taxi-Funk, usw...
Auch der schnelle Anstieg oder das Ausschalten von Lasten erzeugt EMP
Energie durch die schnelle Änderung des Stroms die sich auf empfindliche
CMOS Bausteine auswirken kann. Der starke Stromfluss erzeugt starke
Magnetfelder die bei plötzlicher Strom Änderung besonders stark werden
und Elektronik in der Nähe beeinflussen können.
Man kann das ganz schön mit einem Weller Magnastat Lötkolben testen
indem man das Lötkolben Kabel in der Nähe der Schaltung hat. Bei jeden
Ausschalten des Magnastat wird ein starker EMP Impuls erzeugt der oft
Flanken getriggerte Schaltungen beeinflusst. Versucht es mal. So etwas
ist ein EMP Augenöffner:-) Das ist wirklich kein Jägerlatein.
Leiterbahnen sind kurz und dick. Ist auch nur das nötigste vorhanden.
Selbst der Arduino hat nur die Pins die er braucht.
Die Motoren sind, wenn ich das richtig deute, einfache Kondensator
Motore. Da funkt nix, weil keine Bürsten und keine Schalter, nur ein
großer Folienkondensator mit 6µF und für 450V.
Als Netzteil nutze ich eines dieser 230V auf 5V 3W Dinger.
http://www.hlktech.net/product_detail.php?ProId=54
Das Netz ist hier eigentlich auch recht stabil. Stromschwankungen haben
wir nicht, und Stromausfall in den letzten 30 Jahren auch nicht.
Störungen in Geräten ebenso nicht. Norden halt, viel Strom aber kaum
Abnehmer dafür.
Tollen Lötkolben für Störungsexperimente habe ich nicht. LS Digi 60
Lötstation nenne ich schon über zwei Jahrzehnten mein eigen. Das Ding
geht einfach nicht kaputt.
Mr. Ahnungslos schrieb:> Tollen Lötkolben für Störungsexperimente habe ich nicht.
Nimm einfach ein Feuerzeug mit Elektrozündung. Ich habe dazu extra ein
leeres Exemplar in meiner Werkzeugschublade.
Mr. Ahnungslos schrieb:> Leiterbahnen sind kurz und dick. Ist auch nur das nötigste> vorhanden.> Selbst der Arduino hat nur die Pins die er braucht.
Wie schon geraten sollten sie mit Serienwiderständen und Cs geschützt
werden. Kein uC I/O darf ungeschützt den Arduino verlassen. Ich kann Dir
nur raten diese Vorschläge ernst zu nehmen. Ich entwickle nun schon seit
über 20 Jahren Industrie Elektronik und habe damit Erfahrung.
Konzentrier Dich hauptsächlich auf die uC Umgebung.
>> Die Motoren sind, wenn ich das richtig deute, einfache Kondensator> Motore. Da funkt nix, weil keine Bürsten und keine Schalter, nur ein> großer Folienkondensator mit 6µF und für 450V.
Beim Abschalten sucht sich je nach Phasen Moment die in der Induktivität
der Wicklung gespeicherte Energie einen Weg nach außen. Da helfen auch
Snubber nichts. Die beschützen nur den Schalter. Einzig und alleine muss
die Steuerelektronik durch entsprechende Schaltungsmassnahmen dagegen
geschützt sein.
>> Als Netzteil nutze ich eines dieser 230V auf 5V 3W Dinger.> http://www.hlktech.net/product_detail.php?ProId=54
Sollte normalerweise nicht störanfällig sein.
>> Das Netz ist hier eigentlich auch recht stabil. Stromschwankungen haben> wir nicht, und Stromausfall in den letzten 30 Jahren auch nicht.> Störungen in Geräten ebenso nicht. Norden halt, viel Strom aber kaum> Abnehmer dafür.
Das hat wenig mit Deinen Problem zu tun.
>> Tollen Lötkolben für Störungsexperimente habe ich nicht. LS Digi 60> Lötstation nenne ich schon über zwei Jahrzehnten mein eigen. Das Ding> geht einfach nicht kaputt.
Naja, der Magnastat ist diesbezüglich ein Unikum. Aber recht wirksam um
Schwachstellen zu finden. Ein altes Gerät mit konventionellen Trafo kann
auch ähnliche Störungen erzeugen.
"Serienwiderständen und Cs geschützt
werden"
Und das bewerkstellige ich wie genau? Die Atmels auf dem Arduino haben
doch interne 20kOhm Pull-Up Widerstände. Die muss man aber halt extra
aktivieren, was ich eigentlich bei allen Pins die ich nicht nutze
gemacht habe.
Reicht das nicht schon aus? Muss ich an jeden ungenutzen Pin dann noch
einen Kondensator hängen, oder nur an die genutzten? Und wie groß?
Mr. Ahnungslos schrieb:> Möchte eigentlich nur wissen ob SSR am Arduino wirklich keine Probleme> mehr machen
Bei dir werden sie wohl Probleme machen.
Denn andere Leute kriegen auch Schaltungen mit Relais störungsfrei hin,
was dir offenbar nicht gelingt.
Warum sollte es denn plötzlich mit einem SSR klappen ?
Man muss verstehen warum eine Schaltung empfindlich ist.
Mr. Ahnungslos schrieb:> "Serienwiderständen und Cs geschützt> werden">> Und das bewerkstellige ich wie genau? Die Atmels auf dem Arduino haben> doch interne 20kOhm Pull-Up Widerstände. Die muss man aber halt extra> aktivieren, was ich eigentlich bei allen Pins die ich nicht nutze> gemacht habe.
Liste mal kurz Deine Ein- und Ausgänge.
Generell würde ich irgendwelche Schalter nach Masse schalten. Der
Schalter selber soll über einen externen Pullup von einigen kOhm genug
Strom über die Kontakte haben, dass ein paar mA fließen um die
Schalterkontakte sauber zu halten. Vom Schalter verbinde den uC Input
Pin mit 10KOhm. Direkt am Input Pin beim Arduino schliess einen
Kondensator von 10n-0.1u nach Vdd (5V) an. Dieser Serien Widerstand und
das C blockieren sehr wirksam externe Stör Energie. Den internen Pullup
dann deaktivieren damit der externe R keinen Spannungsteiler mit dem
internen macht.Der Grund warum das C nach Vdd gehen soll ist, dass beim
Einschalten durch das Aufladen des Cs kein ungewollter Schaltvorgang
ausgelöst wird. Prinzipiell kannst Du den C nach Masse auch anschließen.
Musst aber aufpassen, dass Diene Software nicht regiert wenn Du es nicht
willst.
Die Ausgänge zu Den Relais Treibern sollten auch einen Serienwiderstand
direkt am Arduino haben um etwaige vagabundierende Stör Energie
abzuhalten den Widerstand zu umgehen was der Fall wäre wenn Du Dich nur
auf den Strombegrenzungswiderstand des Opto-Isolators verlässt.
Generell halte von den Wechselspannung und Last führenden Kabel so weit
wie möglich weg vom uC. Idealerweise sollte der Controller in einem
Metallgehäuse hausen.
Manchmal muss man eine Strategie mehrerer Methoden verwenden um zum Ziel
zu kommen.
>> Reicht das nicht schon aus? Muss ich an jeden ungenutzten Pin dann noch> einen Kondensator hängen, oder nur an die genutzten? Und wie groß?
Nein. Brauchst Du nicht. Ungenutzte I/O Pins konfiguriert man am Besten
als Ausgänge und lass sie unbeschaltet so dass keine Stör Energie
eingekoppelt wird (Nach Möglichkeit)
Antennen im Consumer Markt werden mit 50 bis 75 Ohm terminiert. Der
interne Pull-Up des Mikrocontrollers hat 20-50kΩ und beeindruckt den
Effekt der Leitungen als Antennen ungefähr gar nicht.
Früher waren Druckerkabel an den Enden so terminiert, damit sie
zuverlässig funktionieren.
1
2
4,7k
3
+---[===]---o 5V
4
100Ω 100Ω |
5
IC out o--[===]---+--(L)---Kabel---(L)---[===]--+-----------o IC in
6
| |
7
220pF === === 220pF
8
| |
9
GND GND
(L) sollen Ferrit Perlen darstellen. Sie reduzieren sehr hochfrequente
Störungen. Der Tiefpass beim Sender (links) reduziert die
Flankensteilheit der Signale und damit störende Seiteneffekte auf andere
Leitungen und Geräte. Der Empfänger (rechts) filtert hochfrequente
Störungen mit einem weiteren Tiefpass heraus und sorgt mittels Pull-Up
für einen definierten Pegel, falls kein Gerät angeschlossen ist.
Weiterhin reduziert diese Schaltung Reflexionen im Kabel aufgrund der
Terminierung, die ungefähr dem Wellenwiderstand der Leitung entspricht.
Je größer die Kondensatoren sind, umso wirkungsvoller reduzieren sie
Störungen. Aber sie Bedämpfen auch das Signal und reduzieren die
übertragbare Frequenz. Bei Tastern und Schaltern für manuelle Betätigung
sind 100nF Ok.
Überspannungsschutz ist hier noch nicht mit drin, ich denke das ist zur
Zeit auch deine geringste Sorge.
Es ist ein Arduino Nano, das Netzteil geht auf die 5V, die beiden GND
Pins des Arduino hängen zusammen an Masse. Die Kupferlage zwischen den
Leiterbahnen ist nicht auf Masse, sollte sie wohl? Direkt, oder was
dazwischen?
Die 230V sind freigefräßt, da ist kein Kupfer im Umkreis von etwas mehr
als 6mm.
Aus dem CAD
Leiterbahnen:
http://www.bilder-upload.eu/upload/99315d-1525895578.jpg
Bestückungsseite:
http://www.bilder-upload.eu/upload/c97607-1525895625.jpg
Zumindest steht im Datenblatt das bei Motoren 1,6A Maximallast drin
sind.
Also gehe ich mal davon aus das die schon Induktive Lasten vertragen
müssten.
Ich brauche ja nur so um die 1-1,2A
Falls die Relais noch dran sind wie am Anfang des Threads. Verbinde mal
den RESET Eingang mit Vcc und schalte dann mal so viel wie Du kannst.
Der RESET Eingang ist beim Arduino relativ hochohmig ausgeführt um den
Bootloader durch DTR zu triggern. Es ist auch die Achillesferse der uC.
Das würde mich sehr interessiersn ob das alleine dein Problem
möglicherweise reduziert oder unterbindet.
Geht leider nicht, das ganze ist dauerhaft im Einsatz.
Problem ist halt das zwischen den letzten beiden Abstürzen gute 200
Schaltungen der mechanischen Relais lagen. Ich kann die Pumpen auch
nicht so oft an und abstellen.
Mr. Ahnungslos schrieb:> Geht leider nicht, das ganze ist dauerhaft im Einsatz.>> Problem ist halt das zwischen den letzten beiden Abstürzen gute 200> Schaltungen der mechanischen Relais lagen. Ich kann die Pumpen auch> nicht so oft an und abstellen.
Den RESET Eingang würde ich aber trotzdem falls zugänglich auf Vcc
legen. Vielleicht verbessert sich dann die Situation. Schaden kann es
auf keinen Fall. Nur nicht vergessen die Verbindung zu entfernen wenn Du
den Controller neu Flashen möchtest.
Mr. Ahnungslos schrieb:> Da sich beide Pins nebeneinander befinden, müsste ich das per> Jumper> realisieren können.
Schlaflos?
Ja. Das stimmt. Zwischen dem dritten und viertem Pin auf der rechten
Seite von der USB Buchse.
Gerhard O. schrieb:> Mr. Ahnungslos schrieb:>> Da sich beide Pins nebeneinander befinden, müsste ich das per>> Jumper>> realisieren können.>> Schlaflos?>> Ja. Das stimmt. Zwischen dem dritten und viertem Pin auf der rechten> Seite von der USB Buchse.
Stimmt nicht. Ist auf der entgegengesetzten Seite.
Mr. Ahnungslos schrieb:> Die Relaiskarten haben doch alle Optokopler.
Benutzt du die auch zur Isolation oder haben Arduino und Relaistreiber
gemeinsame Masse und VCC?
Mr. Ahnungslos schrieb:> Manchmal ist beim schalten> dann der Arduino abgestürzt.
Wie äußert sich das konkret?
Hast Du nach einem "Absturz" mal die Resetquelle ausgelesen?
Peter D. schrieb:> Hast Du nach einem "Absturz" mal die Resetquelle ausgelesen?
Eigentlich eine gute Idee!
Aber leider wird das Register vom Bootloader überschrieben.
Die Information kommt also normalerweise nicht bis zum Hauptprogramm
durch.
Mr. Ahnungslos schrieb:> https://components101.com/sites/default/files/comp...>> Reset gibt es 2x, einmal neben dem 5V Pin, einmal neben Masse auf der> anderen Seite.>> Aber wie kann man da was auslesen wenn der Arduino hängt? Würde er> einfach ein Rest machen, das würde ich gar nicht merken. Da der Absturz> an einem Punkt kommt wo der Programmablauf ohnehin von vorne beginnt.> Der Arduino hängt richtig. Ich muss den Stecker ziehen, oder halt das> Gehäuse öffnen und Reset drücken.>> Die alte Relaiskarte:> Ebay-Artikel Nr. 252895985560>> Selbe Stromversorgung wie der Arduino. Die Optokopler trennen nur Relais> und Datenleitungen.
Wenn Dein Arduino einen Watchdog tauglichen Bootloader hat, würde ich
Dir den als Wink mit dem Zaunpfahl (für den AVR) bis zur wahren Behebung
des Problems empfehlen den zu aktivieren. Nicht alle Bootloader sind
aber Watchdog tauglich. Die Optiboot können das in der Regel.
Sonst würde ich Dir raten die Ein und Ausgänge in industrieller Manier
zu festigen. Zumindest, arbeite mit niedrigen Pullups(2-5K) Verlasse
Dich nicht auf die internen schwachen Pullups. Auch die 5V
Stromversorgung könnte von den Störungen beeinflußt werden. Hänge da mal
einen externen 47uF von Vcc nach Masse. Brownout sollte auch in den
Fuses aktiviert sein.(Ist meist der Fall bei Arduinos - aber da müsste
ich mal nachschauen.)
Die wirkliche Ursache oder Weg der Störungen in den AVR zu finden wird
nicht leicht sein.
Stefanus F. schrieb:> Wer das nötige Equipment (ISP Programmer) hat, den Bootloader> auszuwechseln, kann auch gleich drauf verzichten.
Das wollte ich nicht sagen, dachte es aber:-)
Was den Arduino betrifft, habe ich schon einige Projekte mit AC Relais
Schaltern gemacht und nie die o.g. probleme erfahren. Allerdings schütze
ich den Arduino in industrieller Manier. Prinzipiell besteht kein Grund
dem Arduino diesbezüglich mißtrauisch gegenüber zu stehen. Jeder uC oder
digitale Steuerschaltung braucht eben den nötigen Schutz gegen die
externe Welt.
Vielleicht könnte der TO ein genaues Schaltbild hier veröffentlichen.
Dann könne man konkrete Verbesserungen vorschlagen. So ist das etwa wie
ins Dunkle zu schießen...
Ein Oszi wäre auch nicht so verkehrt. Manchmal ist es ein Augenöffner
wenn man sieht was da für welche durch Schalten EM induzierte
Spannungsimpulse auftreten.
Mr. Ahnungslos schrieb:> Der Arduino hängt richtig. Ich muss den Stecker ziehen, oder halt das> Gehäuse öffnen und Reset drücken.
Dann kann es sein, daß die Mainloop hängt, weil an einem unerwarteten
Zustand auf ewig gewartet wird.
Ewig warten sollte man daher verbieten, z.B. in jedem If/Switch einen
default vorsehen oder wenn nicht anders möglich, einen Timeout
aufsetzen.
Ich programmiere immer so, daß nirgends gewartet wird. Wenn ein Ereignis
noch nicht eingetroffen ist, geht die Funktion wieder zum Main zurück
und testet dann im nächsten Aufruf.
Es kann auch sein, daß das Programm scheinbar nichts tut, aber einfach
nur das Display an einer langen Leitung sich verklemmt hat. Ich
initialisiere daher das Display zyklisch wieder neu. Wenn man dabei kein
Display-Clear ausführt, bleibt einfach der alte Text stehen, d.h. das
Initialisieren bleibt unsichtbar.
Ich habe auch oft eine LED, die in der Mainloop alle 0,5s getoggled
wird, d.h. man sieht quasi den Herzschlag des Programms.
Da kann nichts hängen, da er auf nichts wartet. Keine schleifen, kein
delay, nix, nur einfache abfragen im loop.
Mir scheint als hätte es immer irgendetwas im Speicher zerschossen. Ich
hatte 2x eine dauerhafte Anzeige auf dem OLED. Damit das OLED überhaupt
etwas anzeigt müsste ich eine bestimmte Taste drücken. Bei der Anzeige
auf dem OLED hätte sogar dann ein Ausgang aktiv sein müssen. War er aber
nicht, und die Anzeige hätte sich jede Sekunde aktualisieren müssen, tat
sie aber nicht sie stand. Er reagiert dann auch nicht mehr auf Tasten.
Das ist mein erster Arduino, ich habe also nichts zum Bootloader
auswechseln.
Kondensator an das Netzteil werde ich machen, einen Keramik Kondensator
hänge ich dann noch an das Keypad. Den I²C Bus kann ich nicht irgendwie
zusätzlich absichern? Viel mehr ist ja nicht.
Was ist mit der Kupferfläche zwischen den Leiterbahnen? Die ist noch
nicht auf Masse, sollte ja auch etwas gegen Störungen helfen? Einfach so
auf Masse oder noch irgend etwas dazwischen?
Gerhard O. schrieb:> Stefanus F. schrieb:>> Wer das nötige Equipment (ISP Programmer) hat, den Bootloader>> auszuwechseln, kann auch gleich drauf verzichten.> Das wollte ich nicht sagen, dachte es aber:-)
Überlasst das Denken den Pferden, die haben den größeren Kopf.
Ich habe hier Hardware fertig, Gehäuse zu, an der Software muß aber noch
gearbeitet werden. Da ist eine USB-Buchse in der Rückwand und erlaubt
dank Bootloader / Arduino einen komfortablen Zugriff.
> Was ist mit der Kupferfläche zwischen den Leiterbahnen?
Kann niemand abschätzen, ohne entsprechende Messungen.
> Den I²C Bus kann ich nicht irgendwie zusätzlich absichern?
Pull-Up Widerstände auf 2,2k oder 4,7k Ohm verringern, falls du das noch
nicht gemacht hast.
Wenn du wirklich voran kommen willst, dann mache was. Du hast genug
Anregungen bekommen. Durch Fragen über Fragen wird es nicht besser.
Mr. Ahnungslos schrieb:> Ich> hatte 2x eine dauerhafte Anzeige auf dem OLED. Damit das OLED überhaupt> etwas anzeigt müsste ich eine bestimmte Taste drücken. Bei der Anzeige> auf dem OLED hätte sogar dann ein Ausgang aktiv sein müssen. War er aber> nicht, und die Anzeige hätte sich jede Sekunde aktualisieren müssen, tat> sie aber nicht sie stand. Er reagiert dann auch nicht mehr auf Tasten.> I²C Bus
Falls du noch keinen hast, besorg dir mal so nen preiswerten
Logicanalyzer zB.
https://www.amazon.de/AZDelivery-Logic-Analyzer-kompatibel-Version/dp/B01MUFRHQ2/ref=sr_1_1?ie=UTF8&qid=1526035103&sr=8-1&keywords=logic+analyzer
, dazu SigRok und schau mal was auf dem Bus passiert.
Stefanus F. schrieb:> Durch Fragen über Fragen wird es nicht besser.
Ähm doch, ich verstehe dank der Antworten die Zusammenhänge besser. Und
bekommen dadurch auch wichtige Stichpunkte für meine weitere
Informationsbeschaffung. Ich bin kein Elektrotechniker, ich bin
Informatiker.
Wenn ich früher mal eine Schaltung brauchte bin ich zum örtlichen Radio
und Fernsehtechniker. Der hat mir den Schaltplan aufgezeichnet und die
Bauteile verkauft. Der gute ist aber nicht mehr, und jetzt rächt sich
meine Faulheit von damals so langsam. Dachte halt ich muss nur die
fertigen Sachen kaufen, zusammen stecken, und dann läuft das schon.
Schein wohl nicht so zu sein.
Mr. Ahnungslos schrieb:> Dachte halt ich muss nur die> fertigen Sachen kaufen, zusammen stecken, und dann läuft das schon.> Schein wohl nicht so zu sein.
Doch natürlich!
Muss allerdings die richtigen Sachen kaufen und dann auch richtig
zusamemenstöpseln.
Mr. Ahnungslos schrieb:> Ich bin kein Elektrotechniker, ich bin> Informatiker.
Geschätzte 3 Jahre intensive Beschäftigung damit, dann hast du auch die
elektronischen Grundlagen auf dem Schirm.
Dann sind solche Schaltungen keine Hürde mehr.
Heute waren dann meine Kondensatoren in der Post und ich konnte alles
mal einlöten.
An den I2C habe ich an beide Leitungen 2,2K Pull-Up gelötet.
An die Arduino 5V zu GND Pins einen Keramik Kondensator.
An die beiden Analogen Eingänge für das Tastenfeld, jeweils einen
Keramik Kondensator nach GND. 10K Pull-Up hatten die schon von Anfang
an.
Wo ich jetzt unschlüssig bin. Die SSR Karte, da sind ja einige
Widerstände drauf. Trotzdem noch Pull-Up einlöten?
Und für das nächste Projekt, wo gehören Pull-Up hin, so dicht wie
möglich an den Arduino. Oder so dicht es geht an den was auch immer
angeschlossen wird? Oder sogar auf beiden Seiten jeweils einer? Oder in
der Regel egal?
> Die SSR Karte, da sind ja einige> Widerstände drauf. Trotzdem noch Pull-Up einlöten?
Lass mal, die werden kaum einen Einfluss auf die Zuverlässigkeit des µC
haben.
> Und für das nächste Projekt, wo gehören Pull-Up hin
Kann man so pauschal nicht beantworten.