- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 2 von 2

Thema: Großes Problem mit SRF08!

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    25.01.2006
    Ort
    Weißenhorn
    Beiträge
    70

    Großes Problem mit SRF08!

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich habe ein Problem mit meinem Ultraschallsensor.
    Der Lichtsensor funktioniert einwandfrei, aber der Abstand wird nicht gemessen. Der Wert springt immer um 120 und die kleine Diode blinkt die ganze Zeit(und auf dieser Seite entstehen schnelle "Klack"-Geräusche).

    Ich habe mit diesem Programm getestet:

    Demonstration zur Nutzung des Ultraschallsensors SRF08 von Devantech

    Autor: Thomas Krause
    Datum: 21.02.2005
    Rev: 1.0

    Krause Robotik
    */

    // Einbinden der I2C-Bibliothek
    #use i2c_hb_expbrd.ic
    // Hauptprogramm
    void main()
    {
    int entfernung;
    int licht;

    printf("\n SRF08-Test";
    sleep(2.0);

    i2c_init(); // initialisiere I2C-Bus

    //Starte Schleife. Bricht ab, wenn der Stopknopf gedrueckt wird
    while(!stop_button())
    {
    //Messung auslsoeen
    // in Register 0 wird das Komando 81 geschrieben. Damit wird eine
    Messung ausgeloest und das
    // Ergebnis wird in cm angegeben
    i2c_write_2byte(224, 0, 81); // Adresse des SRF08 ist werkseitig
    224.
    sleep(0.065); // 65 ms warten, um abzusichern, dass die MEssung
    fertig ist
    // Messung fertig

    //Aulesen des Ergebnisses
    // Zum SRF08 schreiben, welches Register ausgelesen werden soll.
    i2c_write_byte(224, 2); // Register 2 --> High-Byte des
    Messergebnisses
    entfernung = i2c_receive_byte(224) * 256; // Auslesen des
    High-Bytes des Messergebnisses
    i2c_write_byte(224, 3); // Register 3 --> Low-Byte des
    Messergebnisses
    entfernung = entfernung + i2c_receive_byte(224); // Low-Byte
    auslesen und zum Ergebnis addieren

    i2c_write_byte(224, 1); // Register 1 --> Messwert des
    Lichtsensors
    licht = i2c_receive_byte(224); // Auslesen des Lichtsensors

    printf("\nEntf: %d Licht: %d", entfernung, licht); // Anzeigen des
    Ergebnisses
    }

    }


    Der Sensor hat bei mir schon an meinem alten Roboter funktioniert(und ich meine, dass die Diode da nur ein mal beim Anschalten geblinkt hat).
    Als Board dient das Handyboard und am I²C hängt auch noch ein funktionierender CMPS03 (Kompass).

    Danke,
    Gruß Jonas

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    25.01.2006
    Ort
    Weißenhorn
    Beiträge
    70
    Hallo,
    habe gerade diesen Thread gefunden: https://roboternetz.de/phpBB2/viewtopic.php?t=3991

    Könnte bei es bei mir das gleiche Problem geben (CMPS03 und SRF08 auf dem I²C)?

    Gruß Jonas

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad