- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: M-Unit + 25 LED´s ???

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    17.06.2005
    Ort
    Essen (NRW)
    Alter
    36
    Beiträge
    83
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Jo Danke Danke

    Ich werd´s mal ausprobieren.
    [fade:06cc85db00]MfG
    Speed
    [/fade:06cc85db00]

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    69
    Beiträge
    370
    Hallo,
    Ich schreib schon mal auf Verdacht; Rest per Tel, siehe PN
    puh, musste umdenken- hab zuletzt basic++ benutzt

    Code:
    '************************************************
    ' Test '573 als Porterweiteung      bustest.bas *
    ' FriLu 06.10.06                                *
    ' CCBasic V2.0                                  *
    ' ZUSÄTZLICH zum Schaltplan ein Poti, ca 10k,   *
    '          Wert unkritisch, an ad1 anschliessen *
    '          dito an ad2 :)                       *
    '          oder ad1 erstmal an gnd              *
    '************************************************
    '   ---   PORTs   ---
    define bus         byteport[1]
    define byteport2   byteport[2]
    define latch1      port [9]
    define latch2      port[10]
    define latch3      port[11]
    
    define led25       port[16]
    
    define eingabe     ad[1]
    define tempo       ad[2]
    
    
    '   ---   Variable   ---
    define gruppe1   byte   ' led  1 -  8
    define gruppe2   byte   ' led  9 - 16
    define gruppe3   byte   ' led 17 - 24
    
    define auswahl   byte
    define i         byte
    define speed     byte   ' :)
    
    '************************************************
    '   ---   Hauptprogramm   ---
    '   ---   Init   ---
    speed = 5
    bus = off               ' ports als ausgänge
    latch1 = off            '  und '573 löschen
    latch2 = off
    latch3 = off
    led25 = off
    pulse latch1
    pulse latch2
    pulse latch3
    
    '   ---   Schleife   ---
    #HauptLoop
    gosub WasMachen
    'gosub WieSchnell ' Kommentar entfernen für Geschw-ändern
    
    on auswahl gosub lp1, lp2, lp3, lp4 ' erstmal nur lp1
    
    goto HauptLoop
    '   ---   Ende Schleife   ---
    '************************************************
    '   ---   Unterprogramme   ---
    #WasMachen
    auswahl= eingabe / 64 ' ergibt 0-3 für on gosub, erweiterbar
    ' stattdessen auch zufallswert einsetzbar
    return
    #WieSchnell
    speed= (tempo / 32) + 3 ' ergibt 3-10 als pausenwert 
    return
    '************************************************
    '   ---   ab hier Lichtshow   ---
    #lp1         ' schiebt eine einzelne led=on durch
    gruppe1= 1
    for i = 0 to 8
      bus = gruppe1
      pulse latch1
      pause speed
      gruppe1 = gruppe1 shl 1
    next
    gruppe2= 1
    for i = 0 to 8
      bus = gruppe2
      pulse latch2
      pause speed
      gruppe2 = gruppe2 shl 1
    next
    gruppe3= 1
    for i = 0 to 8
      bus = gruppe3
      pulse latch3
      pause speed
      gruppe3 = gruppe3 shl 1
    next
    led25 = on
    pause speed
    led25 = off
    return
    '------------- ab hier eigeninitiative
    #lp2
    
    return
    '-------------
    #lp3
    
    return
    '-------------
    #lp4
    
    return
    '************************************************
    end
    '   ---   Tabellen   ---
    ' sorry, selbst ist der freak :))
    Bis Bald ... Lutz
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    17.06.2005
    Ort
    Essen (NRW)
    Alter
    36
    Beiträge
    83
    Hallo,

    Mithilfe deines Programms (danke schonmal) bin ich jetzt schon ein stück weiter (die LED´s leuchten zum teil).

    Wie mach ich das, dass zum Beispiel nur LED 8 und 16 an sind?
    Also:
    Code:
    #loop
    LED8  = on
    LED16 = on
    Pause 50
    LED8 = off 
    LED16 = off
    Pause 50
    Goto loop
    Laut deinem Bauplan werden auch die Ports 1 bis 8 benutzt, müssen die nicht im Programm definiert werden?
    [fade:06cc85db00]MfG
    Speed
    [/fade:06cc85db00]

  4. #14
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    69
    Beiträge
    370
    Hallo speed,
    die Ports 1-8 werden als Byteport[1] angesprochen, einzeln ist nicht notwendig da immer 8 bit ( der gesamte Port ) in die '573er geschrieben werden.
    Wenn du die Leds gezielt ein/ausschalten willst, müssen wir den defineteil etwas umschreiben:
    Code:
    '   ---   Variable   ---
    define gruppe1   byte [1]   ' led  1 -  8
    define led1      bit [1]
    define led2      bit [2]
    define led3      bit [3]
    define led4      bit [4]
    define led5      bit [5]
    define led6      bit [6]
    define led7      bit [7]
    define led8      bit [8]
    
    define gruppe2   byte [2]   ' led  9 - 16
    define led9      bit [9]
    define led10     bit[10]
    define led11     bit[11]
    define led12     bit[12]
    define led13     bit[13]
    define led14     bit[14]
    define led15     bit[15]
    define led16     bit[16]
    
    define gruppe3   byte [3]  ' led 17 - 24
    define led17     bit[17]
    define led18     bit[18]
    define led19     bit[19]
    define led20     bit[20]
    define led21     bit[21]
    define led22     bit[22]
    define led23     bit[23]
    define led24     bit[24]
    
    define auswahl   byte
    define i         byte
    define speed     byte   ' :)
    ' statt der "kurzversion" ins prog kopieren,
    ' so kannst du jede led gezielt ansprechen.
    ' bit[1] und byte[1] belegen einen teil des RAMs gemeinsam,
    ' das ist gewollt!
    ' wenn du jetzt eine ledx ein/oder ausschaltest, tust du das
    ' nur im Speicher!, zur anzeige musst du die gruppe der ent-
    ' sprechenden led noch ausgeben, z.b.:
    ' bus = gruppe1 
    ' pulse latch1
    ' wenn du eine/mehrere/alle leds1-8 geändert hast.
    
    ' alternativ kannst du auch bitbefehle auf die gruppe anwenden:
    ' x steht für 1,2 oder 3
    ' die binäre 1 steht für die entsprechende led der gruppe,
    ' es geht auch mehrere/ alle, im Dezimal oder Hexformat ...
    ' gruppex = gruppex xor &b00001000
    ' schaltet >led nr4 der gruppe< UM, ohne änderung der anderen
    ' gruppex = gruppex or &b00001000
    ' schaltet >led nr4 der gruppe< EIN, ohne änderung der anderen
    ' gruppex = gruppex and &b11110111
    ' schaltet >led nr4 der gruppe< AUS, ohne änderung der anderen
    
    ' programmtechnisch gesehen kannst du nichts kaputt machen,
    ' also ruhig etwas probieren :)
    
    ' schau mal, wie man tabellen erstellt/ausliest, schreib ein ( oder
    ' mehrere ) muster in tabellen und gib es aus. :):)
    ' P.S. eine Tastatur mit Spracheingabe wär nicht schlecht, ich
    ' tipp mir hier die Finger wund... :):):)
    '************************************************
    Übrigens, was heisst " leuchten zum Teil" ?; Die müssen alle!
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    17.06.2005
    Ort
    Essen (NRW)
    Alter
    36
    Beiträge
    83
    Hi,
    wie mach ich das, dass die LED´s im Speicher geschaltet werden? (gibt es dafür bestimmte befehle)?

    Um LED´s zu schalten kenn ich nur die Befehle On/Off und 1/0.

    Übrigens, was heisst " leuchten zum Teil" ?; Die müssen alle!
    Einige LED´s leuchten gar nicht, andere „glimmen“ nur leicht und der Rest leuchtet dauerhaft.
    [fade:06cc85db00]MfG
    Speed
    [/fade:06cc85db00]

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    69
    Beiträge
    370
    Hi,
    oO, Fehlersuche...
    Also erstmal, mein prog ist ein Lauflicht über alle 25 LEDs
    Wichtig: dazu muss ad[1] erstmal an Gnd! (oder an den mittelabgriff eines Potis, ein "ende" vom poti an Gnd, das andere an kontrollerbetriebssp., schleifer an Gnd-anschlag)
    Betriebsspannung/ Gnd an '573 angeschlossen? ( hatte in einem anderen Thread schon mal jemand vergessen )
    Das vom 573er nach dem einschalten die ausgänge zufällige stellungen haben, ist leider normal, das korrigiert das programm, so es denn losläuft...
    Was mir sorgen macht ist, das einige LEDs nur glimmen, das ist definitiv ein Fehler
    das du nach dem übertragen d. Prog/nach anlegen der spannung den startpin kurz auf Gnd ziehen musst, damit das Prog startet weisst du ?
    -> kurz reicht, jumper setzen geht auch.
    Hmm, mir fällt nichts mehr ein...
    Code:
    zur bitmanipulation:
    z. b.: define led8  bit[8] gibt der Speicherstelle bit[8] den namen led8.
    die befehle ändern also den inhalt der speicherstelle bit[8]
    1.) led8 = on
    2.) gruppe1 = gruppe1 or &b10000000
         gruppe1 = gruppe1 or &h80
         gruppe1 = gruppe1 or 128
    3.) looktab tab1, gruppe1, 0
    bewirkt also immer, das bit[8] auf 1 gesetzt wird...
    
    table tab1 ' sinnfreies beispiel!
     128
     tabend
    MfG Lutz
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    17.06.2005
    Ort
    Essen (NRW)
    Alter
    36
    Beiträge
    83
    Hi FriLu,
    Das Lauflicht geht fast.

    Ist es richtig das normalerweise alle LED´s an sind,
    sie dann aber nacheinander (per lauflicht) kurz ausgehen sollten?

    Wenn AD[1] an GND ist dann leuchten fast alle Lampen auf.
    Ich habe davon ein Foto gemacht (nicht gerade die beste Qualität weil es mit einem Handy gemacht wurde)
    Bild hier  

    Alle LED´s funktionieren aber !
    Und der 573 hat Betriebsspannung und GND.

    Wenn ich das Programm starte (mit dem Jumper) dann gehen die LED´s Aus die vorher An wahren und die die An wahren gehen Aus. Aber alles per lauflicht!

    Liegt es vielleicht daran das nicht alle Eingänge des 74HCT573 mit dem Programm angesprochen werden?
    Der 573 hat doch 8 Eingänge (D0 – D7)
    Mit dem Lauflicht Programm werden aber doch nur 2 benutzt

    bus byteport[1]
    und
    byteport2 byteport[2]

    Und

    latch1 port [9]
    latch2 port[10]
    latch3 port[11]
    hängen an den LE Eingang des Ic´s.
    [fade:06cc85db00]MfG
    Speed
    [/fade:06cc85db00]

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    69
    Beiträge
    370
    Hi, Speed
    ich nehme mal an, du hast den Conrad-Editor, da gibts einen simulations-modus.
    Unter "ansicht" das Fenster Digitalports aufmachen, evtl auch analogports.
    Programm kompilieren, dann kommen 2 buttons mit blauen Pfeilen in der Werkzeugleiste.
    Den linken, "ausführen", kannst du leider vergessen, das Prog läuft zu schnell.
    Der rechte, "einzelschritt" will jedesmal angeklickt werden (bis zum KRAMPF im Finger), aber man kann schön die befehle und die auswirkungen verfolgen, versuchs mal.
    Ich hab' nen Kumpel, dem versuch ich schon seit Jahren den Unterschied zwischen Bits und Bytes beizubiegen, leider nur begrenzter Erfolg
    >>Ein Byte besteht aus 8 Bit, demzufolge ein Byteport aus 8 Ports.<<
    Bei der Unit: Byteport1 aus ports 1-8, Byteport2 aus port 9-16.
    Wie bei den LEDs kannst du auch die ports einzeln definieren, z.b.
    define bus1 port[1] ... define bus8 port[8]
    Wenn du viel schreiben willst, schreib so:
    bus1=on
    bus2=off
    bus3=off
    bus4=off
    bus5=off
    bus6=off
    bus7=off
    bus8=off

    ich schreib :
    bus=1
    das ist funktionell das gleiche, erklärung siehe oben.
    bei gruppex ists auch so, entweder jede led einzeln oder alle 8 zusammen... (gruppex ist ein aus 8 bits bestehendes Byte)
    Wenn ich das Programm starte (mit dem Jumper) dann gehen die LED´s Aus die vorher An wahren und die die An wahren gehen Aus. Aber alles per lauflicht!
    Hmm ¿¿
    Das mit ad1 auf grund hat nur den sinn, das das Prog immer durch den lp1-teil läuft, mehr gibts ja (erstmal) nicht.
    Ich hab das ganze nur im simulator probiert, sehe aber keinen fehler
    ::die '573er nennt man auch Latch, die an p9-11 angeschlossenen leitungen sind Latch-Enable, also Latch "ausgewählt"
    die ports sind normal off (Latch gesperrt), der pulse befehl schaltet den port kurz auf "on", das daran angeschlossene Latch übernimmt die Daten vom Bus und gibt sie aus, bis zum nächsten puls. siehe auch bus_mit573.jpg.
    Ich seh' grad noch:
    Ist es richtig das normalerweise alle LED´s an sind,
    sie dann aber nacheinander (per lauflicht) kurz ausgehen sollten?
    wenn die leds nach+ angeschlossen sind, dann: Ja.
    Das Prog gibt ja ein einzelnes ON aus (und 7 mal OFF)
    sollte das so sein, geht das einfach zu ändern:
    ändere die drei zeilen : bus = latch1 (2,3)
    in : bus = not latch1 (2,3), also NOT einfügen, das dreht die "Bits" um

    so, erstmal Schluss für heute.
    MfG Lutz
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    17.06.2005
    Ort
    Essen (NRW)
    Alter
    36
    Beiträge
    83
    Danke für die Hilfe.

    Ich werde mal weiter rumprobieren.
    [fade:06cc85db00]MfG
    Speed
    [/fade:06cc85db00]

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress