-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Srf08 addressieren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    34
    Beiträge
    50

    Srf08 addressieren

    Anzeige

    Hallo!

    Ich würd ja echt gern die Suche verwenden, aber das Forum geht schon seit gestern nicht merh so gut
    Und wo anders als im Forum hab ich nichts Brauchbares gefunden.

    Ich würd gern die Ultraschallentfernungssensoren SRF08 adressieren. Dazu hab ich mir Datenblatt durchgelesen. Aber ich fürchte ich bin komplett auf dem falschen Weg

    Code:
    I2cinit
    
    I2cstart                                 
    I2cwbyte 224
    I2cwbyte 160
    I2cwbyte 170
    I2cwbyte 165
    I2cwbyte 242
    I2cstop
    mehr nicht...
    Es wär recht dringend, wär mir eine große Hilfe, wenn das morgen schon läuft (sprich... heute noch)

    mfg

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.08.2004
    Ort
    Magdeburg
    Beiträge
    154
    Hallo,

    ich könnte die ein beispiel geben wie man es bei der CControl 2 macht...kannst du ja in basic umwandeln...

    mfg uwe

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    34
    Beiträge
    50
    ja, das wär nett, aber ob ich es in basic umwandeln kann....

    mal schaun, vielleicht schaff is es (mein basic ist nicht das beste)
    mfg

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.08.2004
    Ort
    Magdeburg
    Beiträge
    154
    Hi...

    Hier ist die Funktion

    function SetAddress (byte addrSrc, byte addrTarg)
    {
    i2c.cstart (addrSrc);
    i2c.write (0); // Register 0 Command Register
    i2c.write (0xa0); // 1. Byte Sequ.
    i2c.start (addrSrc);
    i2c.write (0); // Register 0 Command Register
    i2c.write (0xaa); // 2. Byte Sequ.
    i2c.start (addrSrc);
    i2c.write (0); // Register 0 Command Register
    i2c.write (0xa5); // 3. Byte Sequ.
    i2c.start (addrSrc);
    i2c.write (0); // Register 0 Command Register
    i2c.write (addrTarg);
    i2c.stop();
    }


    hoffe es hilft dir...


    mfg uwe

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    34
    Beiträge
    50
    noch ein frage:

    es heißt, dass nur ein einziges gerät am I2C bus hängen darf, wenn man ein modul neu addressiert. muss ich dann den cocontroller, die pcfs, usw. alles aus dem rnbfra1.2 rausnehmen bevor ich das mach?

    hier übrigens der code. ich hoff das stimmt.

    Code:
    $regfile = "m32def.dat"
    
    $crystal = 8000000
    $baud = 9600
    
    Config Scl = Portc.0
    Config Sda = Portc.1
    
    I2cstart
    I2cwbyte 0                                                  'Register 0 Command Register
    I2cwbyte &HA0                                               '1. Byte Sequ.
    I2cstart
    I2cwbyte 0                                                  'Register 0 Command Register
    I2cwbyte &HAA                                               '2. Byte Sequ.
    I2cstart
    I2cwbyte 0                                                  'Register 0 Command Register
    I2cwbyte &HA5                                               '3. Byte Sequ.
    I2cstart
    I2cwbyte 0                                                  'Register 0 Command Register
    I2cwbyte &HF2                                               'new address
    I2cstop
    mfg

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    34
    Beiträge
    50
    nagut, ich hab jetzt mal meinen code geladen aber es hat sich nix getan
    wer kann helfen?
    mfg, dave

  7. #7
    Gast
    Zitat Zitat von Daveler
    nagut, ich hab jetzt mal meinen code geladen aber es hat sich nix getan
    wer kann helfen?
    mfg, dave
    So gehts, so läuft auch mein roboter rum


    Dim Sonardistance As Word 'entfernung vom objekt 3-10965cm
    Sonardistance = Sonarread(sonaraddr , 2)
    Declare Function Sonarread(byval I2cnode As Byte , Byval Loc As Byte) As Word ' sonar auslesen
    Declare Sub Sonarping(byval I2cnode As Byte , Byval Loc As Byte , Byval Value As Byte) 'echo aussenden


    '#################### sonarsteuerung ###########################################

    Sub Sonarinit

    I2cwbyte &HE0
    I2cwbyte 1 'verstärkungsregister
    I2cwbyte 1 'unempfindlich
    I2cstop
    Waitms 65
    End Sub Sonarinit


    Sub Sonarping(byval I2cnode As Byte , Loc As Byte , Value As Byte)
    Waitms 25
    I2cstart
    I2cwbyte 0
    I2cwbyte 0
    I2cwbyte 81
    I2cstop
    Waitms 55
    End Sub Sonarping


    Function Sonarread(byval I2cnode As Byte , Loc As Byte) As Word
    Waitms 25
    Local Lsb As Byte
    Local Msb As Byte
    I2cstart
    I2cwbyte I2cnode
    I2cwbyte Loc
    I2cstart
    Incr I2cnode 'lesen immer eine adresse höher wie schreiben
    I2cwbyte I2cnode
    I2crbyte Msb , Ack
    I2crbyte Lsb , Nack
    I2cstop
    Waitms 25
    Sonarread = Makeint(lsb , Msb)
    End Function

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    34
    Beiträge
    50
    sodale, ich habs jetzt so gemacht:

    Code:
    $regfile = "m32def.dat" 
    
    $Crystal = 8000000 
    $baud = 9600 
    
    Config Scl = Portc.0 
    Config Sda = Portc.1 
    
    ' Command # 1
    
    I2cstart 
    I2cwbyte &HE0                                        
    I2cwbyte 0                                                  'Register 0 Command Register 
    I2cwbyte &HA0                                               '1. Byte Sequ. 
    I2cstop 
     
    ' Command # 2
    I2cstart 
    I2cwbyte &HE0                                        
    I2cwbyte 0                                                  'Register 0 Command Register 
    I2cwbyte &HAA                                               '2. Byte Sequ. 
    I2cstop 
     
    ' Command # 3
    I2cstart 
    I2cwbyte &HE0                                        
    I2cwbyte 0                                                  'Register 0 Command Register 
    I2cwbyte &HA5                                               '3. Byte Sequ. 
    I2cstop 
     
    ' Command # 4
    I2cstart 
    I2cwbyte &HE0                                        
    I2cwbyte 0                                                  'Register 0 Command Register 
    I2cwbyte &HF2                                               'new address 
    I2cstop
    so funktionierts

    sorry gast, du warst um eine minute zu langsam aber trotzdem danke

  9. #9
    Gast
    nochmals der gast ! ich finde keinen i2cread, wei kommst du so an das ergebnis der messung ?

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, am 25.11 steht hier ein programm in Bascom für den srf08. läuft bei mir wunderbar.
    mfg pebisoft

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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