In diesen komischen ...uinos ist doch üblicherweise ein 8bit-ter von Atmel verbaut, oder? Da gilt meines wissens nach: V
IL<=0,3*Vcc, V
IH>=0,5*Vcc.
Welche Pegel liegen bei Deinen Signalen denn jetzt definitiv an (bei low und high)?
Es gibt mehrere Möglichkeiten:
-Levelshifter (zT sogar bidirektional)
-Spannungsteiler
Wenn der low-Pegel identisch ist, und man nur den zu hohen High-Anteil entfernen möchte, geht auch Deine Lösung mit der Z-Diode. Zwischen Diode und Signalquelle sollte ein geeigneter Serienwiderstand (Eingangskapazität der AVR-Pins steht im Datenblatt, falls man wegen Flankensteilheit festgelegt ist).
Die AVR-PINs besitzen übrigens integrierte Ableitdioden (von Gnd zum Pin und vom Pin nach Vcc) - somit ist der Pin in gewissem Maße sogar geschützt (wenn man den Strom klein genug hält) - ich würde mich da jedoch nicht drauf verlassen (habe aber schon Schaltpläne gesehen, die eine serielle Verbindung zum PC ohne entsprechendem Pegelwandler herstellen, eben mit Strombegrenzungswiderstand und so...
)
Nachtrag: was ist mit optogekoppelter galvanischer Trennung?