Forum: Mikrocontroller und Digitale Elektronik Transistor an einen AVR anschließen


von Phil E. (mieper)


Angehängte Dateien:

Lesenswert?

Hallo Community :)

Ich frage mich momentan wie der Pullup Widerstand in einem Atmega8 
aufgebaut ist.
Ich frage deshalb weil ich am überlegen bin ob ich die Basis eines BC548 
Transistors direkt an einen IO/Port anschließen kann.
Das ganze müsste doch in etwa so wie auf dem Bild(Anhang) aussehen oder?

Ich weis noch nicht worauf ich achten muss wenn ich einen Transistor an 
einen Mikrocontroller anschließen möchte. Bin noch in der Lernphase.


Grüße

von Timmo H. (masterfx)


Lesenswert?

Phil E. schrieb:
> Ich frage mich momentan wie der Pullup Widerstand in einem Atmega8
> aufgebaut ist.
Steht im Datenblatt

von Hubert G. (hubertg)


Lesenswert?

Phil E. schrieb:
> Ich frage deshalb weil ich am überlegen bin ob ich die Basis eines BC548
> Transistors direkt an einen IO/Port anschließen kann.

http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern
Hier sollte diese Frage beantwortet werden.

Der interne PullUp ist nicht für den Ausgang bestimmt, der soll den 
Eingang auf ein festes Potential legen wenn es notwendig ist.

von Phil E. (mieper)


Angehängte Dateien:

Lesenswert?

1
DDRD |= _BV(PD1); //PD1 als Ausgang
2
3
PORTD |=_BV(PD1)//Pullup hoch
4
PORTD &= ~_BV(PD1)//Pullup runter

Schaltet man mit "PORTD" garnicht den Internen Pullup?
Ich beiß auf Granit.


Edit:

Mit LED's hab ich bisher immer so gearbeitet. (Siehe Anhang)

"PORTD |=_BV(PD1)" zum LED ausschalten und "PORTD &= ~_BV(PD1)" zum LED 
wieder einschalten.

von Malte S. (maltest)


Lesenswert?

Wenn der Port als Eingang konfiguriert ist, schaltet man so den Pull-Up. 
Ist es ein Ausgang, schaltest du niederohmig zwischen Vcc und GND. Und 
brauchst einen externen Basiswiderstand.

von Hubert G. (hubertg)


Lesenswert?

Wenn du mit DDRx das Port auf Ausgang schaltest und dann anschließend
PORTD |=_BV(PD1)//Pullup hoch
PORTD &= ~_BV(PD1)//Pullup runter

schaltest du nicht den PullUp, sondern den Ausgang fest (über den 
internen FET) auf VCC oder GND.

Wenn DDRx auf 0 ist, dann schaltest du mit dem selben Befehl den PullUp 
ein und aus.

von Phil E. (mieper)


Angehängte Dateien:

Lesenswert?

Achso :)
Ganz schön clever.
Danke an euch beiden. Wieder etwas gelernt.

Grüße

Edit


Edit:
Ich hab jetzt mal als Anhang ein Prinzip Schaltbild hinzugefügt. Welches 
das Prinzip eines µC IO/Pins zeigt. Zumindest wie ich das verstanden 
habe.
1
//IO/Pin nach GND
2
PORTD &= ~_BV(PD2)
3
4
//IO/Pin nach 5V
5
PORTD |=_BV(PD2)
Ich mach mir immer gerne kleine Prinzip schaltbilder um das Querdenken 
zu erleichtern.
Ich denke jetzt hab ich meine Fehler raus. Wenn nicht, berichtigt mich 
bitte.

Grüße

von Hubert G. (hubertg)


Lesenswert?

Phil E. schrieb:
> //IO/Pin nach GND
> PORTD &= ~_BV(PD2)
>
> //IO/Pin nach 5V
> PORTD |=_BV(PD2)

Vorausgesetzt das im DDRD Register der jeweilige Pin als Ausgang gesetzt 
ist.

von Phil E. (mieper)


Lesenswert?

Hubert G. schrieb:
> Phil E. schrieb:
>> //IO/Pin nach GND
>> PORTD &= ~_BV(PD2)
>>
>> //IO/Pin nach 5V
>> PORTD |=_BV(PD2)
>
> Vorausgesetzt das im DDRD Register der jeweilige Pin als Ausgang gesetzt
> ist.

Ok dann ist alles Klar. Danke

Grüße

von Malte S. (maltest)


Lesenswert?

Der Vollständigkeit halber: in deinem Schaltbild muss S1 als Wechsler 
den Ausgang wahlweise auf Vcc oder GND schalten. Du hast einen 
Selbstzerstörungsmechanismus gebaut ;)

von Phil E. (mieper)


Angehängte Dateien:

Lesenswert?

Malte S. schrieb:
> Der Vollständigkeit halber: in deinem Schaltbild muss S1 als Wechsler
> den Ausgang wahlweise auf Vcc oder GND schalten. Du hast einen
> Selbstzerstörungsmechanismus gebaut ;)

Ja stimmt :D

von Carsten (Gast)


Angehängte Dateien:

Lesenswert?

Moin!

Der Vollständigkeit halber hier das Diagramm aus dem Datenblatt.

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.