Anfängerfrage zu High/Low

DerRaimo

Neues Mitglied
30. Sep. 2009
3
0
0
Sprachen
Einen schönen guten Tag zusammen!

Als Neuling bin ich mir nicht ganz sicher, wo ich meine Frage zu meinem ATmega88-"Problem" posten soll, aber da es wirklich was Rudimentäres ist, sollte "Allgemein" vermutlich passen :)

Ich bin erst seit drei Tagen dabei, mich in der Welt der Microcontroller einzufinden und habe momentan ein Verständnisproblem:

Meine Toolchain läuft und ich kann einen Atmega88 auf meiner Elekor/CC2-Platine problemlos programmieren. In Bascom habe ich nun ein einfaches Programm erstellt, was ein LED einfach nur wechselweise ein- und ausschaltet. Nun ist es aber so, dass bei High das LED aus ist, und bei LOW leuchtet. Wenn ich nachmesse, ist bei mir HIGH auch wirklich 0V und LOW 5V, also invertiert zu den erwarteten Werten.

Meine Frage ist nun:

Ist es normal, dass HIGH 0V und LOW 5V ist, oder habe ich irgendwo was verbaselt?

Hier wäre noch der Quellcode, den ich erstellt habe:

Code:
 $regfile = "m88def.dat"
 $crystal = 16000000


 Config Pinb.0 = Output

  Do
     Portb.0 = 1
     Waitms 1000
     Portb.0 = 0
     Waitms 2000
  Loop

Vielen Dank für jeden Hinweis!
 
Hallo ,

herzlich willkommen im Forum :flowers:
also ich würde mal sagen ... evtl falsch gemessen

Bei Digitaltechnik gilt folgendes ...

0 = Low = GND = 0V
1 = High = Vcc = +5V

Das ist wenn du von GND zum entsprechenden Ausgangspin mißt.
Wenn Du von Vcc (+5V) zum Ausgangspin mißt hast du etwas anderes ...
Dann wird bei High (+5V) am Ausgang 0V gemessen da es ja keine Spannungs-
Differenz gibt. Und wenn der Ausgang auf Low (0V) geschaltet wird dann hast
du eine Spannungsdifferenz von -5V ;)
Wenn Du nun die Polarität des Digitalmultimeters auch noch verdrehst, dann
kommt genau das raus was du angegeben hast da es bei 0V ja kein Plus oder
Minus gibt.

Also immer aufpassen zu welchem Bezugspotential man arbeitet.

Ich schätze mal, du hast über die LED oder sogar LED und Vorwiderstand
gemessen. Die LED wird aber wohl gegen +5V geschaltet sein.

Mach mal den schwarzen Anschluß (Common, 0V, GND, ...) des Digitalmultimeters
an GND (0V, Masse) deiner Schaltung. Nun kannst du mit dem roten Anschluß
des Multimeters die Spannung am Ausgang des AVRs messen.

Da sollte dann wohl folgendes bei rauskommen ...

0 = Low = GND = 0V = LED an
1 = High = Vcc = +5V = LED aus

Sieh dir mal folgendes an ...
Mini-FAQ : Die Port-Register DDRx, PORTx, PINx
Da ist auch ein Schaltplan mit LEDs dabei , bei dem der Pin als Ausgang
geschaltet ist. Da sieht man die Zusammenhänge ganz gut.

Gruß
Dino
 
Hi dino!

Danke fürs Willkommenheißen :)

Mach mal den schwarzen Anschluß (Common, 0V, GND, ...) des Digitalmultimeters
an GND (0V, Masse) deiner Schaltung. Nun kannst du mit dem roten Anschluß
des Multimeters die Spannung am Ausgang des AVRs messen.

Genauso habe ich gemessen, dass ist ja das Doofe...
 
Nachtrag

Nachtrag:

In meinem jugendlichen Leichtsinn habe ich natürlich die Leitung vom Ausgang zur LED nicht getrennt, als ich den Ausgang gegen Ground gemessen habe, also hatte ich da natürlich auch die 5V, an der die LEDs hängen, mitgemessen. So kommts, wenn man alles "schnell, schnell" machen will :)

Nochmals vielen Dank für Deine Antwort, Dino! Übrigens, phänomenale Responsezeit hier!
 
Hallo,

Genauso habe ich gemessen, dass ist ja das Doofe...
ich hab mir mal von der CC2-Seite den Startartikel als PDF geladen. Die LEDs
sind auf dem Experimentierboard über einen ULN2003 an den AVR angeschlossen.

Hier das Datenblatt ... Anhang anzeigen ULN2003_2004_Darlington-Sink-Driver.pdf

Das ist ein invertierender Treiber-Baustein um deinen AVR-Ausgang von
hohen Strömen zu entlasten. Bei einem High am Eingang schaltet der
Ausgang des ULN2003 nach GND durch und damit die LED an. Also ist bei
dir alles genau umgedreht ;) weil der invertierende Treiber dazwischen ist.

AVR: 0=Low=GND ---->ULN2003----> +5V (wird von der Last/LED nach +5V gezogen)
AVR: 1=High=+5V ---->ULN2003----> GND (der ULN2003 schaltet nach GND durch)

So wird ein Schuh draus ;)

In Bild6 des Einführungsartikels (der Schaltplan des Boards) ist das ganz
gut zu sehen.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)