um @HotSystems Vorschlag nochmal aufzugreifen: ein anderes USB-Kabel probieren (hat hier auch schon oft zum Erfolg geführt) und einen anderen USB-Steckplatz (hat bei mir schonmal geklappt). Bis zum Hochladevorgang mal die Reset-Taste auf dem Board gedrückt halten.
Ja, alles richtig....Programmer ist da egal, also braucht hier nicht gewählt werden.
Und noch die Frage, hast du beim Flashen etwas am Board angeschlossen und wenn ja, wo ?
Ja, dass habe ich schon alles gemacht nachdem @HotSystems das geschrieben hat.
Zwei Kabel probiert und zwei USB-Ausgänge benutzt.
Jetzt werde ich das noch mit der Reset-Taste probieren.
Gruß Detlev
Mit dieser IDE-Version stehe ich aber auch auf Kriegsfuss.. Muss manchmal z.B. vor dem Upload den Seriellen-Monitor einmal geöffnet haben, damit der Upload auch klappt.. Fragt nicht... Arduino-Voodoo.. ![]()
Also bevor ich jetzt zur Version 1.8.19 rate, nochmal die Varianten mit oder ohne "oldBootloader" bei Prozessor-Einstellung testen..
Hallo derGeppi,
mit der Reset-Taste war kein Unterschied zu erkennen.
Der Versuch mit oder ohne "oldBootloder" bringt den gleichen Fehler, aber jedes Mal blinkt kurz hintereinander die rote RX-LED. Ich würde das mal so deuten, dass die Daten zwar zum Nano geschickt werden, der kann die Daten aber nicht verarbeiten. Oder?
Gruß Detlev
Nochmal die Frage, hast du am Nano beim Flashen etwas angeschlossen ?
Oder andere Frage, dein letzter Sketch läuft da noch drauf ?
Nutzt der die serielle Schnittstelle ?
Versuch's mal auch mit "new Bootloader".
Und der Sketch?
Ich habe jetzt einen neuen Nano aus der Verpackung geholt und angeschlossen.
Sofort fällt auf, dass die Rote LED L ständig blinkt. Beim Upload bekomme ich dann einen anderen Fehler.
Der Sketch verwendet 3928 Bytes (12%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 351 Bytes (17%) des dynamischen Speichers, 1697 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xfc
avrdude: stk500_program_enable(): unknown response=0x90
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Fehlgeschlagenes Hochladen: Hochladefehler: exit status 1
Auf jedewn Fall ist das nicht gut was man da liest.
Gruß Detlev
Das ist ok. Seit längerem ist im Bootloader ein Blinken eingebaut.
Ach ja, hier der Sketch:
/* Mit Arduino-NANO
Der Servo soll sich langsam von einer zur anderen Stellung bewegen.
gesteuert über Tasten. LEDs zeigen die Fahrtrichtung an.
*/
#include <Servo.h> // Aus der Bibliothek
Servo Serv;
int W1 = 0; // Aktuell Position vom Servo für Weiche abspeichern
// Servo auf Pin D5
int T1 = 9; // Zuordnung Taster 1 auf den Ausgang D9
int T2 = 10; // Zuordnung Taster 2 auf den Ausgang D10
int pinLed1 = 3; // LED1 auf Pin D3 gelb
int pinLed2 = 6; // LED2 auf Pin D6 grün
void setup() {
Serial.begin(9600); // Datenübertragung zum seriel Monitor
pinMode(T1, INPUT); // Der Taster 1 am Pin D3 ist als INPUT generiert
pinMode(T2, INPUT); // Der Taster 2 am Pin D5 ist als INPUT generiert
pinMode(pinLed1, OUTPUT); // Pin D3 für geradeaus Fahrt
pinMode(pinLed2, OUTPUT); // Pin D6 für abbiegen Fahrt
}
// ------------------- Funktion ---------------------------------
int schalten(int PIN, int soll, int ist, int Pause) { /* Die Funktion "schalten" beinhaltet die PIN-Nr an der
der Servo angeschlossen ist, die Stelle wo der Servo hin
soll, die Stelle wo der Servo ist, die Pause nachdem
der Servo die Stelle erreicht hat */
Serv.attach(PIN); // Der Servo am PIN D5 wird angesprochen
if (soll > ist)
;
{ // Wenn die "ist" Stelle kleiner als die "soll" Stelle ist, dann
for (ist; ist <= soll; ist++) { // for Schleife solange mit "ist" um 1 erhöhen bis der Wert erreicht ist.
Serv.write(ist); // Servo geht um 1 "ist" Stelle weiter
delay(Pause); // Servo macht Pause
}
}
if (ist > soll)
;
{
for (ist; ist >= soll; ist--) { // for Schleife solange mit "ist" um 1 weniger bis der Wert erreicht ist.
Serv.write(ist);
delay(Pause);
}
}
Serv.detach(); // Der Servo wird abgeschaltet
return soll; // Inhalt von "soll" wird in die Funktion "schalten" geschrieben
digitalWrite(pinLed1, LOW); // LED für geradeaus ist aus
digitalWrite(pinLed2, LOW); // LED für abbiegen ist aus
}
void loop() {
if (digitalRead(T1) == HIGH) { // Wenn Taste 1 gedrückt wird, dann
digitalWrite(pinLed1, HIGH); // LED für geradeaus ist an
digitalWrite(pinLed2, LOW); // LED für abbiegen ist aus
W1 = schalten(5, 40, W1, 50); // die Funktion "schalten" schaltet die Weiche 1
Serial.print("Taste T1 / Weiche steht auf geradeaus: "); // Ausgabe zum seriel Monitor (Text)
Serial.println(W1); // Ausgabe zum seriel Monitor (Stellung der Weiche 1)
Serial.println("Die LED Grün ist an "); // Ausgabe zum seriel Monitor (Text)
delay(500); // Pause
}
if (digitalRead(T2) == HIGH) { // Wenn Taste 2 gedrückt wird, dann
digitalWrite(pinLed2, HIGH); // LED für abbiegen ist an
digitalWrite(pinLed1, LOW); // LED für geradeaus ist aus
W1 = schalten(5, 0, W1, 50);
Serial.print("Taste T2 / Weiche steht auf abbiegen: ");
Serial.println(W1);
Serial.println("Die LED Rot ist an "); // Ausgabe zum seriel Monitor (Text)
delay(500);
}
}
Wie bereits gesagt, bei meinen alten Nano's, die noch in Betrieb sind funktioniert alles.
Gruß Detlev
Sicher das das im Bootloader ist?
Mit old oder new Bootloader? Richtiger COM Port?
Irre ich mich oder ist der Servo tatsächlich auf Pin D0 ?
Damit blockierst du vermutlich die serielle Schnittstelle.
Anders verstehe ich das nicht.
Für mich sieht das so aus, als ob der Servo an Pin 5 hängt.
Der Code ist aber schon ein bischen „komisch“:
[…]
Serv.detach(); // Der Servo wird abgeschaltet
return soll; // Inhalt von "soll" wird in die Funktion "schalten" geschrieben
digitalWrite(pinLed1, LOW); // LED für geradeaus ist aus
digitalWrite(pinLed2, LOW); // LED für abbiegen ist aus
}
Die LEDs werden über diese Funktion nie geschaltet.
Hat aber sicher nichts mit dem Hochladeproblem zu tun…
Dachte immer daß neben dem Bootloader auch der Blink Sketch im Flash drauf ist.
Grüße Uwe
@wwerner
Ja sorry, war etwas falsch ausgedrückt.
Mit dem Bootloader wird auch ein Blinksketch installiert.
Ja stimmt, nach mehrmaligem durchlesen, hab ich es jetzt auch gesehen.
dem fehlt der bootloader. der blinksketch ist drauf, aber ohne bootloader.

