Von English mit KI übersetzt ·
DTR ist eine der alten Modem-Steuerleitungen. Am Uno läuft sie über einen 100-nF-Kondensator zum Reset-Pin, damit die IDE das Board vor einem Upload zurücksetzen kann. Jedes Programm, das den Port öffnet, schaltet DTR um, und das Board resetet sich. Ich habe mich letztes Jahr bei einem Zeilenzähler auf der Arbeit damit herumgeschlagen.Softwareseitig zwei Dinge zusammen:
stty -F /dev/ttyUSB0 -hupcl # don't drop DTR when the port closes
ser = serial.Serial()
ser.port = '/dev/ttyUSB0'
ser.baudrate = 9600
ser.timeout = 2
ser.dtr = False
ser.open()
Vorsicht: Unter Linux kann der Treiber beim allerersten Öffnen nach dem Booten DTR trotzdem kurz setzen. Das reduziert die Resets also, beseitigt sie aber nicht immer.Die sichere Lösung ist Hardware: ein 10-µF-Kondensator zwischen RESET und GND am Uno, Minuspol an GND. Der schluckt den Reset-Impuls. Du musst ihn dann zum Hochladen neuer Firmware wieder herausnehmen (oder im richtigen Moment von Hand die Reset-Taste drücken).Und zu den Aussetzern in deiner Summe: Speichere den Zähler außerdem alle paar Minuten im EEPROM, oder lass den Uno eine laufende Summe seit dem Flashen statt seit dem Booten senden. Ein Reset kostet dich dann ein paar Impulse, nicht die ganze Summe.
DTR is one of the old modem control lines. On the Uno it goes through a 100 nF capacitor to the reset pin, so the IDE can reset the board before an upload. Any program that opens the port toggles DTR, so the board resets. I fought this on a line counter at work last year.
Software side, two things together:
stty -F /dev/ttyUSB0 -hupcl # don't drop DTR when the port closes
ser = serial.Serial()
ser.port = '/dev/ttyUSB0'
ser.baudrate = 9600
ser.timeout = 2
ser.dtr = False
ser.open()
Be warned that on Linux the driver may still raise DTR for a moment on the very first open after boot, so this reduces resets, it doesn’t always kill them.
The sure fix is hardware: a 10 µF capacitor between RESET and GND on the Uno, minus to GND. That swamps the reset pulse. You then have to pull it out (or press reset by hand at the right moment) when you upload new firmware.
And for the drops in your total: also keep the count in EEPROM every few minutes, or have the Uno send a running total since it was flashed instead of since boot. A reset then costs you a few pulses, not the whole total.

