www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pullup aktiviert?


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Schaltung gebaut, die eine 7Segmentanzeige ansteuern
soll. Nun zeigt sie mir immer die "1" an.Obwohl kein Schalter
gedrückt wurde. Könntet ihr mir sagen, ob was im Programm falsch ist.
Die Schaltung besteht nur aus wirklich benötigten Teilen wie Quarz,
Spannungsstabilisierung, Taster , und die  7-Segmentanzeige. Ich habe
also keine externen Pullupwiederstände. Habe ich die internen richtig
aktiviert?

Gruß Max

Hier mein Programm:

$regfile = "2313def.dat"
$crystal = 3686400
Dim Ledvar As Byte
Portd = &B1111111
Config Portb = Output
Config Portd = Input
                                      'Port B = Ausgang
Do
Ledvar = 255    'Wenn keine Taste gedrückt leuchtet keine LED
If Pind.0 = 0 Then Ledvar = 207                             '1
If Pind.1 = 0 Then Ledvar = 145                             '2
If Pind.2 = 0 Then Ledvar = 193                             '3
If Pind.3 = 0 Then Ledvar = 71                              '4
If Pind.4 = 0 Then Ledvar = 97                              '5
If Pind.5 = 0 Then Ledvar = 61                              'L
If Pind.6 = 0 Then Ledvar = 183                             'r
Portb = Ledvar
Loop

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe das Problem gelöst; es lag an einer Kabelverbindung. Nun ich
habe aber noch ein Problem und zwar hängen die Leds (der
Segmentanzeige)direkt am AVR. Um diesen zu entlasten will ich die den
Strom etwas mindern. das kann ich ja durch PWM. Könnt ihr mir hier
helfen , weil ich nicht weiss , wie ich das in mein Programm einbinden
kann. Vielleicht könnt ihr mir sogar dies in den oben angefügten code
schreiben -falls es nicht zuviel zeit in anspruch nimmt-

Vielen Dank (:
Gruß Max

Autor: Marius Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wieso benutzt du nicht einfach einen Vorwiederstand für die LEDs?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

du solltest auf jeden FALL Vorwiderstaende benutzen sonst geht dein AVR
in RAUCH auf!!!

Autor: Marius Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, nicht sofort... das hält der ziemlich lange aus (jedenfalls bei
mir) aber er wird nach 'ner weile richtig warm :)

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ja das habe ich nun auch gemacht, aber mir wäre es lieber wenn ich die
Helligkeit über die Software regeln kann. KLar würde es mit einem Poti
gehen, aber wie gesagt die Helligkeit muss über Software verndert
werden können, da der AVR mit einem anderen kommuniziert und von diesem
in der Helligkeit geregelt werden muss.   Gruß Max

Autor: Mark Hämmerling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Salve,

also mit einem Poti würde es so einfach auch nicht gehen, weil
unterschiedlich viele LEDs eingeschaltet sein können, und sich daher
der Strom vervielfacht. Jede LED der 7-Segmentanzeige MUSS mit einem
Vorwiderstand betrieben werden, damit der Strom auf das spezifizierte
Maximum begrenzt wird. Man kann LEDs im Pulsbetrieb mit einem
Vielfachen des erlaubten Dauerstroms betreiben - aber auch hier muß das
Datenblatt zu Rate gezogen werden. Allerdings wird Dein AVR den
entsprechenden Strom so einfach nicht liefern können.
Ich persönlich würde es so machen: LEDs an Shiftregister (z.B. 595),
dieses an SPI, Enable an PWM-Ausgang, und natürlich jede LED mit
Vorwiderstand versehen. Das spart Pins und ist vorallem jederzeit auf
beliebig viele Stellen erweiterbar, ohne einen Pin mehr zu kosten.

Mark

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.