-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Schieberegister als Output

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.02.2005
    Beiträge
    115

    Schieberegister als Output

    Anzeige

    Hi,
    ich möchte testweise folgende Schaltung realisieren.

    Es wäre toll wenn da mal jemand drüber schaun würde. Es sollen einfach die 16 LEDs angesteuert werden. Das ganze geht über die beiden Schieberegister die hintereinander geschaltet sind. Da fängt das Problem an, wie schliesse ich die 74HC595N korrekt an den PIC an, sodass ich die einfach per SPI ansprechen kann?

    Dann würde ich gerne wissen ob ich für die ULN2803A noch irgendwelche Widerstände einbauen muss?

    schon mal Danke im Voraus!
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken layout_tst.jpg  

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    42
    Beiträge
    849
    Einen Fehler hast du in der Ausgangsbeschaltung des ULN2803. Die LED's müssen andersrum und die gemeinsame Masse muß +5V sein. Das andere sieht eigentlich völlig normal aus. Nur eins ist Geschmacksache. Den SPI zu nehmen. Geht auch über normale Ports, dann verschwendet man den SPI nicht für das Schieberegister.

    Grüße Wolfgang

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.02.2005
    Beiträge
    115
    Sind denn die Schieberegister richtig angeschlossen. Der Pin RCK am Register, kam mir spanisch vor, wofür ist der? Den habe ich nun einfach willkürlich mit einem beliebigen PIN am PIC verbunden.

    Ich nutze den CCS Compiler da gibt es ganz komfortable Funktionen um ein paar Bytes auszugeben. Wenn ich die register nun woanders anschliesse kann ich die Funktionen wohl nicht verwenden. Wie müsste ich das dann Softwaretechnisch umsetzen?

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    @Starkeeper: Die RCK mußt du auf +5 halten, damit er die Werte des Schieberegister auch an seinen Output legt.
    Den braucht man, wenn man erst was gemütlich reinschippert, und dann mit einem Schlag alle Outputs setzen will.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.02.2005
    Beiträge
    115
    Ahh, ok. Ich könnte das also auch steuern. So, dass er garnicht anzeigt, wie die Bits an ihren Platz schippern. Ich würde dann erst 5V auf RCK geben, wenn alle Bits gesetzt sind.

    Was mich nun aber doch brennend interessiert, wie ich die Schieberegister an normalen Pins nutze. Das wäre meine nächste Idee gewesen, anstatt noch mehr von den Teilen zu kaskadieren, einfach nochmal zwei an den PIC zu hängen.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    42
    Beiträge
    849
    Hallo starkeeper!

    Ich habe mal was geschrieben gehabt das ähnlihc funktioniert. Ein CD4094 der das selbe ist in CMOS-Technik. Den habe ich an einem PIC-AXE hängen. Habe aus Portmangel das eben auch erweitert gehabt mit zwei Standard-Pins. Das war mein Code dazu wenn man Ausgänge mit dem Bytewert belegt hat einfach diese Routine aufrufen und das Schieberegister macht die Ausgabe der Variablen an den Pins. Ist auch mit drei Leitungen (Data, Clock und Strobe) relisiert wie bei dir.

    Code:
    ' **************************************************************
    ' * Schieberegister-Verwaltung                                 *
    ' **************************************************************
    
    ShiftRegSet:
      ' Schieberegister mit Daten laden (8-Bit)
      TempByte = Ausgaenge
      For i = 1 To 8
        Low ShrData1
        Low ShrData2
        If TempByte < 128 Then GoTo ShiftRegSet2
        High ShrData1
    ShiftRegSet2:
        PulsOut ShrClock1, 1           ' 10µs-Impuls
        'PulsOut ShrClock2, 1           ' 10µs-Impuls
        Low ShrData1
        TempByte = TempByte * 2
      Next i
      PulsOut ShrStrobe, 2             ' 20µs Ausgänge übernehmen
      Return
    Grüße Wolfgang

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.02.2005
    Beiträge
    115
    Danke, aber das sieht verdammt nach Basic aus. So ganz kann ich dem Code daher nicht folgen.
    Was ich nicht verstehe, wie ich denn nun den Clock zustande kriege.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.02.2005
    Beiträge
    115

    LED Massaker

    Hi,
    also ich habe nun meine Schaltung umgesetzt. Was mir nun klar geworden ist, das es garnicht funktionieren kann. Der ULN2803 Schaltet ja -5V, deshalb muss dort ja auch die Kathode dran. Ich verwende aber RGB-LEDs die habe nur eine gemeinsamme Kathode, sodass ich gezwungen bin +5V zu schalten um dann jede Farbe steuern zu können. So hatte ich es ja auch zu anfang geplant.

    Nun ist meine Frage, gibt es sowas wie den ULN2803, nur eben invertiert? Sodass ich meine benötigten +5V erhalte. Was wäre denn mit dem UDN2981, den kann man aber wohl nicht mit 5V betreiben?

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Der UDN klingt vernünftig, is auch für TTL , sollte gehen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.02.2005
    Beiträge
    115
    Was mich irritiert, ist das Datenblatt. Dort steht etwas von Input Voltage 15V.
    http://www.ortodoxism.ro/datasheets/...stems/2981.pdf

    Was meinen denn die damit?

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •