Arduino startet unregelmäßig neu

Hallo zusammen,

ich habe folgendes Problem:

Bei untenstehendem Quelltext startet der Arduino unregelmäßig neu. Wenn ich das ganze in Bascom programiere läuft es Tagelang. Ich bin mittlerweile ratlos. Am Ausgang hängt ein Relais hinter einem Optokoppler und am Eingang ein Taster. Taster einmal drücken und dann soll es Blinken. habe das mal aufs nötigste reduziert (Im Original ist da z.B. noch ein Timer drin den ich erst in verdacht hatte). Als µC benutze ich einen MEGA 328p mit externem Quarz.

void setup() {
  pinMode(A2, OUTPUT);
  digitalWrite(A2,LOW);
  pinMode(A0,INPUT);
}

void loop() {
  if (digitalRead(A0)==LOW)
  {
    while (1)
    {
      delay(1500);
      digitalWrite(A2, LOW);
      delay(1500);
      digitalWrite(A2, HIGH);
    }
  }
}

Gruß, Daniel

Der Code macht keine Sorgen.
Das while(1) halte ich für überflüssig, ist aber kein Problem.

Ich tippe eher auf ein Stromversorgungsproblem.

Steckt der Arduino im USB des PCs?
Dann kann der PC diese Starts verursachen.
Test:
Öffne die Serielle Konsole.
(es müssen keine Ausgaben gemacht werden)
Die laufende Konsole verhindert, dass ein Win Programm an der Seriellen rum zappelt.
Ich Wette, es läuft dann stabil.

Ich vermute einen Hardwarefehler deines Aufbaues.
Der gezeigte Sketch läuft bei mir seit einigen Minuten ohne Neustart.

Am besten du zeigst uns den kompletten Sketch.

Frage:
Warum verwendest du Analogausgänge als Digitalausgang.
Geht zwar, ist aber nicht gebräuchlich. :wink:

was passiert, wenn du das ohne while Schleife machst?

Hallo,
Zur Erklärung:

Ich vermute einen Hardwarefehler deines Aufbaues.

Es läuft mit Bascom Programierung einwandfrei.

Das while(1) halte ich für überflüssig, ist aber kein Problem

Taster drücken schleife fängt an (Damit ich sehe wenn er neu startet, ohne die while schleife würde ich den neustart nicht bemerken weil er dann einfach sofort wieder anfängt)

Steckt der Arduino im USB des PCs

Externe Stromversorgung 1 Ampere. Ohne Verbindung zum PC

Öffne die Serielle Konsole.
(es müssen keine Ausgaben gemacht werden)
Die laufende Konsole verhindert, dass ein Win Programm an der Seriellen rum zappelt.
Ich Wette, es läuft dann stabi

Die Schaltung ist nicht mit dem PC verbunden.(Testweise war sie es mal mit gleichem resultat)

Am besten du zeigst uns den kompletten Sketch.

Auch mit diesem Simplen Sketch tritt der Fehler auf.

auch mit ausgeschalteten Interrupts (CLI(); ) geht es nicht

UPDATE: ohne Last am Relais(230 V 4Watt LED) scheint es zu funktionieren. Was ich überhaupt nicht verstehe ist warum geht es wenn ich es mit Bascom programiere aber mit Arduino nicht? Relais ist mittels Transistor und Opptokopler mit dem µC Verbunden. Freilaufdiode ist ebenfalls vorhanden. 100nF Kondensatoren direkt am IC (VCC) davor ist mittlerweile auch ein LC Glied.

Es läuft mit Bascom Programierung einwandfrei.

Das nehme ich zur Kenntnis, aber der Sketch hat keine Auffälligkeiten.
Bitte gib uns das Schaltbild und Fotos des Aufbaus.

Grüße Uwe

uwefed:
Das nehme ich zur Kenntnis, aber der Sketch hat keine Auffälligkeiten.
Bitte gib uns das Schaltbild und Fotos des Aufbaus.

Grüße Uwe

Da ich den Sketch hier getestet habe, kann ich nur vermuten, es liegt an der Hardware und betätigte hier Uwes Posting.

Auch mit diesem Simplen Sketch tritt der Fehler auf.

Der Sketch ist nicht das Problem!

Externe Stromversorgung 1 Ampere. Ohne Verbindung zum PC

Extern?
Schön, dann ist der PC auch nicht das Problem.
Deine Stromversorgung kann ich natürlich von hier aus nicht beurteilen.

Wenn ich das ganze in Bascom programiere läuft es Tagelang.

Schön, ist aber kein Problem, wenn es mit Bascom funktioniert.

Zur Ursache:
(Nebel. die Glaskugel zeigt nur Nebel)
Irgendwas machst du anders, als andere....
Welche Fuses sind gesetzt?
Welcher Arduino wird verwendet?
Was ist da sonst noch dran angeschlossen?

Was sind das für Relais?
Schaltbild?

Anbei mal die Schaltung.

untitled.pdf (27 KB)

Mach mal in der Schleife ne serielle Ausgabe und ins Setup auch. Serieller Monitor offen lassen, alle Hardware ausser dem Taster vom Arduino entfernen.

Was passiert dann?

Alle Hardware entfernen ist schwierig. Der Controller startet aber deffinitiv neu. Hatte ich mittels serieller Ausgabe schon geprüft.

Sehr kritisch sehe ich den fehlenden Basiswiderstand der Relaistreiber.
Ob das die Ursache ist, kann ich nicht sagen, könnte aber sein.

HotSystems:
Sehr kritisch sehe ich den fehlenden Basiswiderstand der Relaistreiber.

Eher nicht, da durch die OK getrennt.

ElEspanol:
Eher nicht, da durch die OK getrennt.

Das bezieht sich auf den hohen Strom der in die Basis fließt.

der_chipo:
Anbei mal die Schaltung.

Die Kondensatoren an den Relais sind gnadenlos.

Optokoppler sind überflüssig, ist ja der selbe Stromkreis.
Da fehlen die Basiswiderstände. Das führt zu derben Kurzschlüssen.

Bei untenstehendem Quelltext startet der Arduino unregelmäßig neu.

Das ist kein Arduino!

Als µC benutze ich einen MEGA 328p

Im Plan ein ATMega8

Von den Tastern,LED, usw ist nichts zu erkennen.
Wie lang sind die Kabel bis da hin?

Tipp:
Wer so dermaßen auf der Versorgungsspannung rum hackt, darf sich nicht wundern, wenn Transistoren in Rauch auf gehen, und die Schaltung Fehlfunktionen zeigt.

Hab gerade einen Vorwiderstand 4k7 an die Basis gelötet. Gleiches Ergebniss

Der controller ist ein MEGA 328 wie beim Arduino. Also ein Mega 8 mit 32 k Speicher. die Kondensatoren am Relais sind nicht eingelötet. (Sollen lediglich Pads sein). Kabel gibt es keine ist ne geätzte Platine. Taster ist mit Pullup an PC0 oder in Arduinoschreibweise A0. Ich habe auch die Stromkreise mal voneinander Getrennt (vor den Opptokoplern ein anderes NT als dahinter). Immernoch gilt mit Bascom geht es

Das gebetsmühlenartige “mit Bascom geht es”, wirkt Störend.

Ist schwer, so eine Diagnose zu machen…

Dann zeige doch mal das funktionierende Bascom Dingen…
Und zeige doch mal, wie die Fuses eingestellt sind…

Aber das hängt doch an einem Netzteil und nicht am Arduino 5V Pin. Hoffe ich zumindest.