www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sensoren an Atmel anschließen


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Board mit einem Atmel 89C51RB2-IM. Da sind einige Taster 
und LED's angschlossen. Ich will jetzt aber noch einen Temp.Sensor, 
Lichtsensor, LCD und 2 Motoren anschließen.

Als Temp. Sensor wollte ich den nehmen bereit mit digitalem Ausgang:

http://www.reichelt.de/?;ACTION=3;LA=5;GROUP=B6;GR...

Als Lichtsensor wollte ich den Fototransistor BPW40 nehmen und dazu noch 
einen A/D Wandler:

LED:
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A54...

A/D Wandler:
http://www.reichelt.de/?;ACTION=3;LA=5;GROUP=A212;...

Zum A/D Wandler, ich brauche ja einen mit parallelen Ausgängen damit ich 
direkt an den uC anschlißen kann, ist das der richtige ?

Als LCD wollte ich den nehmen:

http://www.reichelt.de/?;ACTION=3;LA=5;GROUP=A523;...

Ich will erstmal einen Gleichstrommotor, den ich von meinem Drucker 
ausgebaut habe,anschließen.
Er hat ungefähr 1-2W.

Ich wollte dann eigentlich einen OP am uC Ausgang und dann den Motor.
Aber dann kann ich ihn nur an und ausmachen.

Wie schließt man so einen Motor an ?

Danke im vorraus.

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum diesen Kontroller, mein Datenblatt ist mehr als 20 Jahre alt.
Mit einem Atmega ersparst du dir die A/D Wandler.
Einen Motor, wenn er nur in eine Richtung drehen soll und bei der 
Leistung, schließt man über einen Transistor an.
Es gibt hier in den Artikel etwas füer Relaisanschaltung, Motor geht 
genau so.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja wir behandeln das in der Hochschule, weiß der Geier wieso der Prof. 
des macht. Das Board hab ich ja schon gelötet will jetz nur die Bauteile 
hinzufügen. Was ist das für eine Relaisschaltung ?

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich will erstmal einen Gleichstrommotor, den ich von meinem Drucker
>ausgebaut habe,anschließen.
>Er hat ungefähr 1-2W.

Und welche Betriebsspannung?
Für solche Sachen gibt es integrierte H-Brücken wie den L6205. Darüber 
dürfte es hier in der Artikelsammlung auch etwas zu lesen geben.

>Warum diesen Kontroller, mein Datenblatt ist mehr als 20 Jahre alt.
Weil Controller mit 8051-Kern immer noch am verbreitesten sind?!
Ausserdem muss man an Hochschulen nicht immer das aktuellste Zeug für 
die Grundlagen verwenden. Da ist man mit erprobten Schaltungen auf der 
sicheren Seite.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brauche ich wenn ich den L6205 habe noch eine Schutzdiode ?

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine H-Brücke brauchst du wenn du recht/links drehen willst.
Die Ports haben keine Push-Pull-Ausgänge, nur PullUp oder Open-Drain.
Da heisst es Aufpassen beim Ansteuern von weiteren Devices.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hubert G. schrieb:
> Warum diesen Kontroller, mein Datenblatt ist mehr als 20 Jahre alt

Hattest Du Dich dafür in die Zukunft gebeamt?

Der AT89C51RB2-IM wurde nämlich erst nach 2000 vorgestellt.


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andi schrieb:
> Brauche ich wenn ich den L6205 habe noch eine Schutzdiode ?

Nein.
Siehe Datenblatt: "INTEGRATED FAST FREE WHEELING DIODES"


Peter

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hubert G. schrieb:
> Die Ports haben keine Push-Pull-Ausgänge, nur PullUp oder Open-Drain.
> Da heisst es Aufpassen beim Ansteuern von weiteren Devices.

Danke für die Antworten. Was heisst Push-Pull-Ausgänge ?

Autor: Ingenieurmangel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andi schrieb:
> Hubert G. schrieb:
>> Die Ports haben keine Push-Pull-Ausgänge, nur PullUp oder Open-Drain.
>> Da heisst es Aufpassen beim Ansteuern von weiteren Devices.
>
> Danke für die Antworten. Was heisst Push-Pull-Ausgänge ?

Stell dir eine Kiste vor, die auf einem weichen Untergund steht. An der 
Kiste ist ein Seil das nach oben zu einer Umlenkrolle und von dort zu 
dir geht.
Wenn du am Seil ziehst (pull) kannst du die Kiste hochheben.
Aber du kannst die nicht durch Drücken am Seil (push) in den Untergrund 
reindrücken.
Dazu brauchst du ein Push-Werkzeug: eine Stange


Genauso in der Elektronik:
Eine Push-Pull Stufe kann einen Ausgang aktiv auf 1 oder 0 treiben.
Eine reine Pull-Stufe (oder PullUp) kann die Ausgangsleitung nur auf 1 
ziehen. Gibst du per Programm eine 0 aus, so überlässt der Ausgang die 
Leitung sich selber und das Device das drann hängt muss die Leitung auf 
0 ziehen.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Verständnisfrage.
Wenn ich einen A/D Wandler benutzen will, dann brauche ich ja einen der 
mir parallel die Bits ausgibt. Oder geht es auch mit seriell ? Wie 
funktioniert es dann bei nem 8051 ?

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Oder geht es auch mit seriell ? Wie
>funktioniert es dann bei nem 8051 ?
I2C, SPI, ...

Ich glaube Max127/Max128 sind I2C ADCs, weiss aber grad nich auswendig.
Für I2C brauchts auf nem 8051 gerade mal 1-2k Flash für den Treiber und 
zwei beliebige Pins am Controller.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nils S. schrieb:
> Für I2C brauchts auf nem 8051 gerade mal 1-2k Flash für den Treiber und
> zwei beliebige Pins am Controller.

Warum soviel?

Also die I2C-Grundfunktionen (Start, Stop, Byte lesen, Byte schreiben) 
in C brauchen bei mir 123 Byte. Da sind schon 50 NOPs für das Timing mit 
drin.

Und komplett mit Block-Lese/Schreibfunktion mit Pagewrite für EEPROM 
24C16, sinds zusammen 371 Byte.


Peter

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Also die I2C-Grundfunktionen (Start, Stop, Byte lesen, Byte schreiben)
> in C brauchen bei mir 123 Byte. Da sind schon 50 NOPs für das Timing mit
> drin.
>
> Und komplett mit Block-Lese/Schreibfunktion mit Pagewrite für EEPROM
> 24C16, sinds zusammen 371 Byte.

Ich bin von C ausgegangen, meine selbstgeschriebenen soft-i2c Routinen 
in C haben komplett 1638 bytes. Assembler werd ich später/nachm Schlafen 
(ja ich muss das auch mal ;) mal versuchen. Vielleicht toppe ich deinen 
Code ja :P

//edit: ganz vergessen, darum gings mir eigentlich in dem Beitrag:
Meine Routinen habe ich ganz am Controller-Anfang hopplahopp gemacht, 
perfekt sind sie nicht. Aber entweder verwendet der Autor was ganz 
Allgemeines und braucht auch den Haufen Speicher oder bastelt da was wie 
ich und braucht genausoviel.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.