-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 39

Thema: SRF02 Probleme

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.02.2005
    Ort
    Riedlingen
    Alter
    37
    Beiträge
    14

    SRF02 Probleme

    Anzeige

    Hallo zusammen,
    diese Woche ist mein SRF02 angekommen und hab auch gleich versucht ihn zu verwenden. Kabel angelötet, angeschlossen, programmiert und nichts hat sich getan.
    Folgendes: Ich verwende die I2C Bibliotheken von Peter Fleury um meine Komponenten anzusprechen mein AnX (Servo Controller) sowie mein RN-KeyLCD funktionieren so einwandfrei. Nur der SRF02 funzt nicht. Er blinkt beim ersten start das bedeutet das die Adresse 0xE0 eingestellt ist deshalb vermute ich das sie Spannungsversorgung OK ist. doch schon beim ersten Versuch über erg = i2c_start_wait(0xE0); bleibt das Programm stehen.
    in erg steht immer eine 1 drin das bedeutet laut Bibliothek
    1= failed to access device. Sobalt ich diese Zeile auf meine anderen I2C Komponenten los lasse bekomme ich immer eine 0 zurück (Device ok)


    Frage: hat noch jemand so ein Problem und falls nicht hat jemand eine kleines Testprogramm in C?????

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    kauf dir den srf04/08 oder 10.
    lass die finger von diesen dreck. die taugen nichts, sind nur ein bisschen günstiger.

    mfg

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.02.2005
    Ort
    Riedlingen
    Alter
    37
    Beiträge
    14
    Ich vermute bis jetzt nicht das es am Sensor liegt denn ich habe noch einen gekauft da ich dachte der erste ist schrott, hatte kein Glück den am neuen hatte ich das gleiche Problem

    mfg

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    @robby-fant: äusserst hilfreich, wirklich.

    @bad_american:
    Kannst du mit den anderen (funktionierenden) I2C Geräten quatschen, wenn der SRF02 angeschlossen ist ? Oder behindert er den Bus irgendwie ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    ..lol..., 2 stück gleich.
    du bist aber nicht alleine, das pech haben andere auch die nicht googlen.

    erkundige dich nächste mal in diesem forum, dann verlierst du kein geld.

    mfg

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Die Betreibsspannung ist ja anscheinedn reichtig angeschlossen, wie du schon bemerkt hast. Ist aber mit SCL/SDA alles in Ordnung? Nicht vertauscht, schlechte Lötstelle, Wackelkontakt...?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    23.02.2005
    Ort
    Riedlingen
    Alter
    37
    Beiträge
    14
    Ja, der Bus wird blockiert ich denke beim lesen der Messdaten. Da warscheinlich keine Messdaten auf dem bus liegen.
    Es gibt ja zwei möglichkeiten den Bus zu aktivieren
    1. i2c_start(Adresse) liefert 0 oder 1 zurück (ok oder nicht OK)
    2. i2c_start_wait(Adresse) versucht den Teilnehmer solange anzusprechen bis er antwortet.

    Falls ich 2. verwende hängt bleibt er sofort stehen da er den SRF02 nicht adressieren kann und läuft endlos in der Schleife (Blockiert)
    Falls ich 1. verwende läuft er alle Befehle ab und bleibt beim lesen (messung = i2c_readNak()) der Messdaten stehen. Sobald ich diese zwei Lesebefehle auskommentiere läuft er wieder durch und meine I2C Display ausgabe aktualisiert sich wieder.

    Hier ein Ausschnitt

    while(1)
    {
    wait_10ms(80);
    i2c_init();
    i2c_start(SRF02+I2C_WRITE);
    i2c_write(0x00); // command register 0
    i2c_write(0x51); // read in cm
    i2c_stop(); // set stop conditon = release bus

    i2c_start(SRF02+I2C_WRITE); // set device address and write mode
    i2c_write(0x02);

    i2c_rep_start(SRF02+I2C_READ); // set device address and read mode
    //ret = i2c_readNak(); // read one byte from SRF02
    //ret1 = i2c_readAck(); // read second byte from SRF02
    i2c_stop();

    Cursor_x_y(1,4);
    char message[10];
    sprintf (message,"%i %i", ret1, ret);
    lprint(message);
    }

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    23.02.2005
    Ort
    Riedlingen
    Alter
    37
    Beiträge
    14
    Ach nochwas, der Sensor sollte laut datenblatt bei jeder Messung blinken, das tut er aber nicht!!

    mfg

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    23.02.2005
    Ort
    Riedlingen
    Alter
    37
    Beiträge
    14
    Lötstellen sind alle in Ordnung (alle Lötstellen und Leitungen durchgepiepst)

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    zwischen dem Start der Messung, und dem Auslesen des Wertes, ist der SRF02 nicht ereichbar ! Das kann bis 65ms dauern, man muss also entweder solange warten, oder jeweils überprüfen, ob sich der Slave nach dem Start meldet, wenn nicht, weiter probieren bis er wieder da ist.
    Steht in diversen DB und hier im Wiki SRF02 Beispielprogramm.

    Ich hab jetzt meine SRF02 auch mal in Betrieb genommen (unter Bascom), aber egal was ich mache, es kommt immer was (richtiges) raus (bis jetzt), hab schon das ganze Zimmer hier vermessen (und nachgemessen)
    Von 15cm bis ca. 4m hab hab ich schon alle Werte bekommen, länger ist das Zimmer nicht. Wenn Morgen das Wetter schön ist, gehe ich mal ins freie mit den ganzen Sachen, hier steht zuviel Zeug im Weg herum.

    Zum Test ist noch ein DS1621 (temp.Sensor) am Bus, beide lassen sich mit 400kHz abwechselnd ansprechen.

    PS:
    Meine SRF02 hab ich Anfang Dezember bekommen.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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