Go Down

Topic: TX (PIN1) als normalen Digitalen Eingang nutzen? (Read 1 time) previous topic - next topic

currymuetze

Hi,
da ich fast alle PINs belegt habe, würde ich gerne den PIN1 als normalen digitalen Eingang nutzen, um meinen Rotary Encoder auszulesen.
Sprich: ich nutze d2 und d3 für die Interrupts (Button und PINA) und d1 für PINB.
Leider klappt das nicht:
Zum einen wird irgendwie der Upload blockiert, zum anderen werden die rechts/links Drehungen des Encoders völlig unsauber interpretiert. SObald ich d4 nutze, klappts sauber, also liegt nicht am Code.
Muss ich irgendwo in der voidSetup etwas definieren?
Kann ich den PIN überhaupt nutzen?
Das Problem habe ich nicht nur, wenn ich mit serial.print arbeite sondern auch, wenn ich die serielle Schnittstelle nicht nutze und die Werteausgabe über LCD kontrolliere.

Gruß

nachtaktiv68

Hallo,

Pin 0 und 1 sind als RX- und TX-Ein- bzw. Ausgang belegt:

http://arduino.cc/playground/Learning/Pins

Ich könnte mir aber vorstellen, dass es funktioniert, wenn Du den Sensor oder whatever während dem Sketch-Upload entfernst. Probiert habe ich das aber auch noch nicht.
twitter: @darktom

mkl0815

Quote
... wenn ich die serielle Schnittstelle nicht nutze  ...

Es dürfte aber auch kein "Serial.begin()" im setup() stehen, denn damit initialisierst Du ja schon die Schnittstelle, was sicher zu Seiteneffekten führen kann.
Ist nur so eine Idee.
Mario.

currymuetze

Hi,
leider alles schon probiert:
Den Upload krieg ich dadurch hin, dass ich den PIN nicht belege während des Uploads.
Das serial.begin ist ebenfalls gelöscht.
Trotzdem klappt es nicht, auch nicht nachdem ich das USB Kabel herausgezogen habe.

Keine Möglichkeit? Wäre ärgerlich, da ich dann was umlöten muss an der Platine. Man man....was man als Anfänger hier alles beachten muss  ]:D

uwefed

Kannst Du nicht die analogen Eingänge als digitale Pins benutzen?
Grüße Uwe

currymuetze

Hi Uwe,
ja werd ich dann wohl müssen, hatte halt nur die Platine schon fertig, das ich das vorher testen muss ist mir überhaupt nicht in den SInn gekommen.
Gruß

madworm

Wenn ich mich nicht irre, dann sitzen 1k widerstaende auf den RX/TX leitungen zwischen dem xx8 und dem USB chip. Wenn dein encoder zu hochohmig ist, dann kann er dagegen nicht an. Der USB chip versucht natuerlich seinen jeweiligen pegel zu halten. Es koennte helfen die widerstaende gegen 10k zu tauschen.

Dummerweise verwenden die UNOs aber widerstandsnetzwerke... also geht das tauschen nicht so ohne weiteres.
• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

uwefed

Das passiert auch den besten.  ;) ;) ;)

Die TX-RX pins als Eingang zu verwenden gibt Probleme. Als Ausgang müßten sie funktionieren.
Grüße Uwe

Udo Klein

Die Pins D13, D0, D1 sind von außen belastet. Man kann sie trotzdem wie alle anderen Pins verwenden wenn man aufpasst, dass die zusätzliche Last keine Probleme macht.

Habe ich hier http://blog.blinkenlight.net/experiments/basic-sketches/ breitgetreten ;)
Check out my experiments http://blog.blinkenlight.net

currymuetze

Hi Udo,

so ganz versteh ich das leider nicht.
Was heißt das denn für mein Problem bgl. der Nutzung von D1 als Digitalen Eingang?
Muss ich da einen 1K Resistor vorschlaten?

Gruß und sorry für mein fehlendes Wissen
Thorsten

Udo Klein

Nein, da ist bereits ein 1k Widerstand. Und dieser zieht den Eingang in eine festgelegte Richtung. Wenn Du da also etwas anschliesst was Du auslesen willst, dann muß das einen deutlich geringeren Innenwiderstand als 1k haben.
Check out my experiments http://blog.blinkenlight.net

Go Up