-         

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

Thema: LEDs an XBUS/USRBUS

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    20.01.2008
    Alter
    29
    Beiträge
    6

    LEDs an XBUS/USRBUS

    Anzeige

    Hallo,
    ich habe seit 2 Tagen den rp6. Nun will ich LEDs auf die Experimentierplatine löten, weiß aber nicht wie man die anschließen muss. Ich vermute, dass ich den Minuspol an GND des XBUS/USRBUS anschließen muss. Hab aber keinen plan wo ich den Pluspol anschließen muss, und ob das direkt geht (ohne transistoren, Kondensatoren, ICs, usw.).

    Grüßle Tomcat

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo Tomcat,

    Glückwunsch zum RP6!
    Vom RP6 kommen ja durch den XBUS auf der Experimentierplatine 3 nutzbare Ports an:
    1. IT1 = PA4
    2. SCL = PC0
    3. SDA = PC1

    Daran kannst du direkt 3 LEDs anschliessen.

    "Normale" LEDs mit 20mA werden mit einem Vorwiderstand von ca. 150 Ohm,
    Low-current LEDs (2..4mA) mit 1kOhm bis 1,5 kOhm angeschlossen.

    Es gibt 2 mögliche Varianten:
    1. Pluspol der LED (Anode) an VDD, Minuspol (über Vorwiderstand!) an den Port.
    2. Pluspol der LED (Anode) an den Port, Minuspol (über Vorwiderstand!) an GND.

    Bei Variante 1 leuchtet die LED, wenn der Port 0 (low) ist,
    bei Variante 2 leuchtet die LED, wenn der Port 1 (high) ist.

    Was würde ich für Experimente empfehlen?
    Low-current-LEDs (schont den Akku).

    Wenn du die LEDs fest auf die Experimentierplatine lötest, solltest du Jumper (Steckverbinder) zur Verbindung zu den Ports einsetzen, damit du die LEDs auch von den Ports trennen kannst.
    Vorteil: Es sind dann auch andere Dinge später möglich, z.B. die Benutzung von I2C.

    Der USRBUS ist nicht angeschlossen. Wenn du ihn auf der RP6-Platine anschliesst (d.h. eigene Verbindungen dranlötest), könntest du auch noch weitere Ports/Verbindungen auf die Experimentierplatine führen.
    Den USRBUS könnte man z.B. so belegen:
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=32549

    Gruß Dirk

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    20.01.2008
    Alter
    29
    Beiträge
    6
    Danke für die schnelle Antwort. hab jetzt die LEDs über transistoren auf die Experimentierplatine gelötet. Hab heut mittag auf eigene faust versuch die LEDs mit Vorwiederstand direkt an den Port zu löten. Da hats mir gleich die Sicherung verissen. Jetzt hab ich die Transistoren dazugelötet und es läuft.
    Hab mittleres Transitorfüßchen an IT1, die äußeren beiden an +UB und GND.
    Die Transitoren sind BC547 und der Vorwiederstand ich glaub ich irgendwas mit 400 Ohm.

    Grüßle Daniel

    PS: Wie kann ich SCL und SDA ansteuern?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Wie kann ich SCL und SDA ansteuern?
    // Einmalige Initialisierung:
    DDRC |= (SCL | SDA); // PC0, PC1 als Ausgänge definieren


    PORTC |= SCL; // PC0 high
    PORTC &= ~SCL; // PC0 low

    PORTC |= SDA; // PC1 high
    PORTC &= ~SDA; // PC1 low

    Gruß Dirk

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    20.01.2008
    Alter
    29
    Beiträge
    6
    Danke.
    jetzt hab ich noch eine frage. kann ich IT2 und IT3 auch ansteuern? oder sind die für andere aufgaben (z.B. Kommunikation) bestimmt?
    Grüßle
    Tomcat

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    INT2, INT3 und INTU gehören auf dem RP6 nicht zu einem Port des M32.
    Da kannst du also nichts anschliessen.

    Gruß Dirk

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    30.12.2007
    Beiträge
    45
    Zitat Zitat von Dirk
    Hallo Tomcat,

    Glückwunsch zum RP6!
    Vom RP6 kommen ja durch den XBUS auf der Experimentierplatine 3 nutzbare Ports an:
    1. IT1 = PA4
    2. SCL = PC0
    3. SDA = PC1

    Daran kannst du direkt 3 LEDs anschliessen.

    "Normale" LEDs mit 20mA werden mit einem Vorwiderstand von ca. 150 Ohm,
    Low-current LEDs (2..4mA) mit 1kOhm bis 1,5 kOhm angeschlossen.

    Es gibt 2 mögliche Varianten:
    1. Pluspol der LED (Anode) an VDD, Minuspol (über Vorwiderstand!) an den Port.
    2. Pluspol der LED (Anode) an den Port, Minuspol (über Vorwiderstand!) an GND.

    Bei Variante 1 leuchtet die LED, wenn der Port 0 (low) ist,
    bei Variante 2 leuchtet die LED, wenn der Port 1 (high) ist.

    Was würde ich für Experimente empfehlen?
    Low-current-LEDs (schont den Akku).

    Wenn du die LEDs fest auf die Experimentierplatine lötest, solltest du Jumper (Steckverbinder) zur Verbindung zu den Ports einsetzen, damit du die LEDs auch von den Ports trennen kannst.
    Vorteil: Es sind dann auch andere Dinge später möglich, z.B. die Benutzung von I2C.

    Der USRBUS ist nicht angeschlossen. Wenn du ihn auf der RP6-Platine anschliesst (d.h. eigene Verbindungen dranlötest), könntest du auch noch weitere Ports/Verbindungen auf die Experimentierplatine führen.
    Den USRBUS könnte man z.B. so belegen:
    http://www.roboternetz.de/phpBB2/zei...ag.php?t=32549

    Gruß Dirk
    und welchen befehl brauch ich dann beim programmieren?

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.01.2008
    Ort
    Schrobenhausen, München
    Alter
    24
    Beiträge
    583
    Das steht unter anderem da: http://www.roboternetz.de/phpBB2/viewtopic.php?t=38575

    also in deinem eigenen Thread robob, aber nur kurz zur erklärung, in die main-funktion kommt:

    Code:
    int16_t main(void)
    {
    
       DDRA |= (E_INT1);            // PA4 (IT1) als Ausgang definieren 
       DDRC |= (SCL | SDA);         // PC0, PC1 als Ausgänge definieren 
    
       while (true) 
       { 
          PORTA |= E_INT1;         // PA4 auf high setzen
          mSleep(1000); 
          PORTA &= ~E_INT1;         // PA4 auf low setzen
    
          PORTC |= SCL;            // PC0 auf high setzen
          mSleep(1000); 
          PORTC &= ~SCL;            // PC0 auf low setzen
    
          PORTC |= SDA;            // PC1 auf high setzen
          mSleep(1000); 
          PORTC &= ~SDA;            // PC1 auf low setzen
    
    }
    
    //Dieses Programm lässt jetzt alle LEDs blinken, bis du den RP6 wieder ausschaltest...
    
    return 0;
    
    }


    MfG Pr0gm4n

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    25
    Beiträge
    177
    aber kann es dann nicht passieren das man ausversehen einen anderen I2C Slave anspricht?

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    ... kann es dann nicht passieren das man ausversehen einen anderen I2C Slave anspricht?
    Wenn man SCL und SDA als Ausgänge zum Ansteuern von LEDs o.ä. benutzt, kann man nicht gleichzeitig auch den I2C-Bus nutzen.
    Das ganze ist ja nur gedacht für den RP6 ohne Control M32 und zum ersten Testen von Ports.

    Wenn man I2C benutzt, sollte man auch einen I2C-Portexpander für weitere Ports nehmen.

    Gruß Dirk

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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