Forum: Mikrocontroller und Digitale Elektronik Eingang ist Ausgang


von nelektro (Gast)


Lesenswert?

Hallo Liebe Gurus,
ich komme nicht weiter und finde im Internet sowie hier im Forum oder im 
Tutorial Hilfe. Ich bin gespannt was das Problem ist.

Eigentlich wollte ich ja ein bischen mit dem ADC spielen und 
eingangsspannung auslesen und ausgeben.
Allerdings schaffe ich es nicht einmal, einen enigang zu bestimmen.
Nur mal zur Sicherheit: Ein DRB auf 0 heißt doch "Eingang", heißt doch 
"erhält V, leitet ab an GND" ?? Im Internet werden die Begriffe 
teilweise scheinbar verwechselt doer ich verstehe etwas nicht.

Na ja, auf jeden Fall habe ich mir einen Simplen testfall gebaut um 
einen Eingang zu erstellen.
Ich wollte nun über Spannung oder keine Spannung die LED zum Leuchten 
bringen oder halt nicht.
1
#include<avr/io.h>
2
3
void main()
4
{
5
  // PC0 als Ausgang und einschalten
6
  DDRC=0x01;
7
  PORTC=0x01;
8
9
  // Alle PB als Eingang und PB0 mit Pullup
10
  DDRB=0x00;
11
  PORTB=0x01;
12
  while(1)
13
  {
14
    PORTC = PINB;  // Test LED
15
  }
16
}

Das Problem an der Sache ist, dass ich PB0 gegen GND halten muss, damit 
die LED leuchtet. ?? also ist PB0 ein Ausgang ?

Mit der Bitte um HILFE!

von nelektro (Gast)


Lesenswert?

PS: ATMEGA88V mit STK500

von spess53 (Gast)


Lesenswert?

Hi

>also ist PB0 ein Ausgang ?

Nein. Aber die LEDs auf dem STK500 sind L-Aktiv.

Also H-Led aus und L-Led an.

MfG Spess

von Walter S. (avatar)


Lesenswert?

nelektro schrieb:
> heißt doch
> "erhält V, leitet ab an GND" ??

was willst du uns damit sagen?

Wie ist denn die LED angeschlossen?

von nelektro (Gast)


Lesenswert?

Hi, die LED ist gar nicht so wichtig.

Hier menie Frage in einer etwas anschaulicheren Art:
Wenn ich PB0 und GND in den Mund nehme, dann fileßt strom.
Ich hätte gedacht ich müsste PB0 und VTG nehmen damit Strom fließt ?

von ... (Gast)


Lesenswert?

nelektro schrieb:
> Ich hätte gedacht ich müsste PB0 und VTG nehmen damit Strom fließt ?

Du hast den PullUp eingeschaltet. Der liegt sozusagen parallel zu Deinem 
Mund, d.h.für Deinen Mund bleibt kaum was übrig und der Strom fließt 
auch durch den PullUp, wenn Du nichts in den Mund nimmst.

nelektro schrieb:
> Wenn ich PB0 und GND in den Mund nehme, dann fileßt strom.

Richtig, von Vcc über den PullUp zu Deinem Mund und von da nach GND.

von Argh (Gast)


Lesenswert?

Was zum Teufel hat dein Mund mit deiner Schaltung zu tun?

von nelektro (Gast)


Lesenswert?

Noch genauer meine Frage:
Ist die Stromrichtung die selbe, egal ob ich einen Pin als Ausgang oder 
als Eingang setze ?

von ich (Gast)


Lesenswert?

Das kommt drauf an, was du am Eingang bzw. am Ausgang machst, wie die 
geschaltet sind (Low/High, Pull-up ...) und was du als Stromrichtung 
definierst.

von Julian B. (julinho)


Lesenswert?

Also ein µc-Port der über das DDR-Register als Ausgang gesetz wurde hat 
eine Ausgangstreiberstufe, die entweder GND oder VCC an den 
entsprechenden Pin legt. Je nachdem wie Du einen Verbraucher anschließt, 
kann also Strom hinein oder herausfließen(VCC-> GND oder GND<-VCC).

Wenn Du einen Pin als Eingang setzt, dann fließt er mal kein Strom, 
sondern der Eingang reagiert auf die angelegte Spannung und generiert 
daraus ein High oder Low.
Wenn Du einen Eingang mit Pull-Upp betreibst, dann hast Du einen 
Widerstand zu VCC,d.h. unbeschaltet hat der Pin ein High.
Wenn Du jetz diesen Pin direkt mit GND verbindest, dann ist der Eingang 
LOW.

von nelektro (Gast)


Lesenswert?

Also vielen Dank erstmal,
Julian verstehe ich am ehesten :-)
Mit Stromrichtung meinte ich (VCC->GND oder GND<-VCC).
Ich habe aber grundsätzlich wohl Eingang mit VCC->GND und Ausgang mit 
GND<-VCC gleichgesetzt.
Das scheint ja doch ziemlich variabel zu sein.

Komisch ist nur, dass ich solche Probleme beim beschalten habe.

Ich werde das heute Abend dann in Ruhe mal ausprobieren, nachstellen und 
nachlesen. Ich werde diesbgzl. auch nochmal ins Tutorial schauen, falls 
noch eine andere gute Quelle kennt wäre ich dankbar, denn in meinen 
Anfängerskripten und Tutorial hab ich dafür keine genaue erklärung 
erhalten. ...Vieleicht das Datenblatt... :-)

Falls ich dann noch fragen habe, komme ich gerne auf euch zurück G

Danke

von Michael U. (amiga)


Lesenswert?

Hallo,

denk Dir in den AVR einen Umschalter. Eine Schalterstellung an GND, eine 
an Vcc, den schaltenden Teil an den Pin. Das ist ein Ausgang.
Mit L im PORT-Bit ist der Schalter gegen GND geschaltet, mit H im 
PORT-Bit gegen Vcc.

Ein Eingang ist ein hochohmiger Sensor (wie Dein Multimeter als 
Beispiel), da sollte möglichst garkein Strom fließen, es wird nur die am 
PIN anliegende Spannung gegen GND ausgewertet.
Wen Dein "Multimeter" mehr als Vcc/2 anzeigen würde, liest Du ein H, ist 
es weniger liest Du ein L aus PINx.

Daraus folgt auch, daß ein Eingang ohne Beschaltung irgendein Potenzial 
gegen GND annehmen kann (wie das Brummen eines offenen 
Verstärkereingangs) und Du zufällig L oder H vom PIN lesen würdest.

Der AVR hat intern PullUps (Widerstände zwischen Pin und Vcc, irgendwo 
um 30kOhm, nicht sonderlich genau)), die man einschalten kann.
Damit hat der Eingang (der selbst ja sehr hochohmig ist) Vcc über diese 
30k anliegen und Du liest immer H.
Verbindest Du jetzt den Eingang durch einen Taster mit GND, fließt Strom 
von Vcc über den PullUp und Deinen geschlossenen Taster.
Da der Taster viel niederohmiger ist als der PullUp, ist die Spannung am 
PIN nahe 0V (Spannungsteiler). Diese Spannung liest der Eingang als L.

Die Innenschaltungen der Ports sind auch im Datenblatt der AVR zu 
finden, da kann man das nochmal nachvollziehen.

Gruß aus Berlin
Michael

von nelektro (Gast)


Lesenswert?

Ja vielen Dank für die ausführliche Erklärung.
Ich denke jetzt habe ichs zusammen.

Ausgang: GND<-Bauteil<-ATMEGA<-VCC oder VCC->Bauteil->ATMEGA->GND
         je nach PORT-Bit

Eingang: GND<-Bauteil<-ATMEGA<-VCC
         je nach PROTBIT ohne oder mit internem Widerstand.
         zudem wird hierbei die Spannung gemessen und setz das PIN-bit.

Die Bezeichnung Ausgang und Eingang kapier ich ehrlich gesagt immer noch 
nicht, aber ich weiß nun was sie bedeuten.

Ich konnte alles nachstellen und mit ner externen LED testen. Bei 
Eingang mit Pullup leuchtete die LED ganz ganz schwach. Ohne Pullup 
leuchtete sie gar nicht.

Viele Grüße ans Forum und nach Berlin

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

nelektro schrieb:
> Die Bezeichnung Ausgang und Eingang kapier ich ehrlich gesagt immer noch
> nicht, aber ich weiß nun was sie bedeuten.

Ausgang bedeutet, dass er ein Bauteil treiben, also Strom liefern oder 
aufnehmen kann. (liefern = Ausgang High; aufnehmen = Ausgang Low).

Eingang bedeutet, dass er "keinen" (bzw nur wenig) Strom liefert oder 
aufnimmt, sondern nur hochohmig "horcht".

Der Pullup hat damit nichts zu tun. Er liefert nur einen stabilen 
Zustand.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.