ich stehe vor folgendem Problem. Und zwar rufe ich in einer Funktion folgendes auf: digitalWrite(light_pin, HIGH); Leider wird dies aber nicht ausgeführt. Eine Zeile davor und dahinter habe ich mir mal im Serial Monitor einen Test ausgeben lassen, der erscheint auch.
Könnt ihr mir schon helfen, oder braucht es noch mehr Informationen? Ich wäre euch sehr dankbar.
Wenn im Programm steht: pinMode(8, OUTPUT); digitalWrite(8, HIGH); und der Compiler keinen Fehler meldet, sollte DP8 auch auf +5V gehen. Bringst Du vielleicht die Pinbezeichnungen (in meinem Beispiel DP8) mit den Pins am Controller durcheinander und schaust dann, ob der falsche Pin HIGH wird? DP8 wäre am ATMega8 (168/328) z.B. Pin 14.
Ich nehme mal an Du hast einen Arduino UNO und ein Ethenetshield mit dem W5100 und sd Karte.
Die Schnittstelle für den Ethernetbaustein benutzt das Pin 12. Darum kannst Du das pin 12 nicht für die LED benutzen. Gleiches gilt für die Pins 13, 11, 10 und 4.
Also mein Vorschlag wäre jetzt systematisch vorgehen: Zuerst mal alle Shields ab und sehen, ob Du einen Sketch zum Laufen bekommst, in dem nur die LED am gewünschten Pin blinkt. Wenn das geht, Shield wieder drauf und sehen ob es immer noch geht.
Wenn es ohne Shield klappt, weißt Du, das Du den Pin wie gewünscht benutzen kannst.
Wenn es mit dem Shield dann nicht mehr klappt, liegt die Vermutung nahe, dass das Shield Dir den Pin blockiert oder aber, dass das Shield defekt ist. Davon wollen wir aber mal nicht ausgehen.
Jetzt versuchts Du nach und nach die Funktionen aus Deinem Sketch wieder dazu zu nehmen und schaust, wann die LED nicht mehr blinkt. Ich denke, dass der Fehler dann soweit eingegrenzt ist, dass er sich finden lässt.
Ok, bin systematisch durchgegangen und habe jetzt das Programm mit Pin7 zum laufen gebracht. Jetzt gibt es nur noch ein kleines Problem. Habe ich das Board mit USB angeschlossen funktioniert es, im Serial Monitor laufen alle Ausgaben rein. Starte ich den Arduino ohne USB läuft das Programm leider nicht. Beim reseten initialisiert er alles, die LED leuchten zum testen auf, aber der Rest der Programmlogik wird nicht ausgeführt.
Nachtrag: Resete ich einmal den Arduino über das Board dann läuft das Programm. Woran kann das liegen?
Irgendwas macht ein Controller immer, und ob jemand mitkriegt was Serial ausgibt oder nicht, interessiert den Arduino nicht.
Was für eine Spannungsversorgung hast du denn, wenn es nicht USB ist ?
Resete ich einmal den Arduino über das Board dann läuft das Programm. Woran kann das liegen?
Reset fertig bevor Vin wirklich ok ist, vielleicht ...
Abhilfe:
Software: Ein Delay in setup() , vor der Initialisierung
Hardware: ein dicker Kondensator, der den Reset Pin länger LOW lässt...
Sommerlatsch:
Ok, bin systematisch durchgegangen und habe jetzt das Programm mit Pin7 zum laufen gebracht. Jetzt gibt es nur noch ein kleines Problem. Habe ich das Board mit USB angeschlossen funktioniert es, im Serial Monitor laufen alle Ausgaben rein. Starte ich den Arduino ohne USB läuft das Programm leider nicht. Beim reseten initialisiert er alles, die LED leuchten zum testen auf, aber der Rest der Programmlogik wird nicht ausgeführt.
Nachtrag: Resete ich einmal den Arduino über das Board dann läuft das Programm. Woran kann das liegen?
Ich hatte das Problem beim Arduino NANO wenn ich einen zu großen Elektrolytkondensator an die 5V Spannungsversorgung angeschlossen hatte. Mein Verdacht ist daß die Versorgungsspannung zu langsam ansteigt und der ATmega nicht richtig resettiert.
Hast Du es mit einem anderen Netzteil versucht?
Grüße Uwe
Ich benutze jetzt ein 9V Netzteil von Conrad. Habe aber jetzt rausbekommen, dass es an der Ethernetverbindung liegt. Manchmal schafft der Arduino es nicht ins Heimnetzwerk gelassen zu werden. Bei einem Reset bekommt er meistens auch eine neue IP, und deshalb funktioniert es häufig.
Mach ich mit der Internetverbindung noch etwas falsch? Ich weise ihm ja mit
ja schon eine IP zu, aber wenn ich ihn mal an meinen Rechner stecke, hat der Arduino jedes Mal eine andere IP und wahrscheinlich sind manche IPs dann im Netzwerk gesperrt bzw. schon in Benutzung.