- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 39 von 39

Thema: SRF02 Probleme

  1. #31
    Anzeige

    E-Bike
    Hi!

    Ich hab auch so meine Probleme mit dem SRF02, ich hab ihn per I2C an einen modifizierten Asuro gehängt. Und ich arbeite wie bad_american mit dem I2C Lib von Peter Fleury. Doch bei mir will er auch nicht richtig.

    Ich schaffe es, die Messung zu starten (leuchtet kurz rot), doch er bockt beim abfragen der Werte herum.

    Ich hab die Anschlüße jetzt nicht von dem "bösen" Flussmittel befreit, da ich mir beim besten Willen nicht vorstellen kann, dass das Flussmittel die übertragung stört.

    Ich vermute eher, dass es an der Software, aber ich finde den Fehler nicht:
    Code:
    #define I2C_ADDRESS_SONAR 0xE0
    
    unsigned int get_distance(void)
    {
    	unsigned int cdistance = 0;
    	
        if(!start_i2c(I2C_ADDRESS_SONAR+I2C_WRITE))
        {
          i2c_write(0);		//Set register
          i2c_write(0x51);	//Execute ranging command (in cm)
          i2c_stop();		// set stop conditon = release bus
          
          Msleep(70);		//Wait for ranging to be completed	
          
          start_i2c(I2C_ADDRESS_SONAR+I2C_WRITE);
          i2c_write(2);		//Set register to high ranging byte
          i2c_stop();
          start_i2c(I2C_ADDRESS_SONAR+I2C_READ);
    	  cdistance += i2c_readAck();
          cdistance <<= 8;
    	  i2c_stop();
                
    	  
    	  start_i2c(I2C_ADDRESS_SONAR+I2C_WRITE);
          i2c_write(3);		//Set register to high ranging byte
          i2c_stop();
          start_i2c(I2C_ADDRESS_SONAR+I2C_READ);
    	  cdistance += i2c_readAck(); 
    	  i2c_stop();      
        }
        
        return cdistance;
    }
    
    unsigned char start_i2c(unsigned char addr)
    {
    	unsigned char ret = i2c_start(addr);
        if ( ret ) 
        {
          i2c_stop();
          errorMessage(2, "I2C Device not found", 15);
        }
        return ret;
    }
    Wäre schön wenn ihr mir helfen könntet.

    MFG
    BWA

  2. #32
    Neuer Benutzer Öfters hier
    Registriert seit
    12.10.2006
    Beiträge
    21
    Meine Tests haben klar gezeigt, dass Flussmittel zu dem Effekt führen kann.
    Ich arbeite mit Bascom und kann Dir deshalb nicht groß helfen, empfehle Dir aber, mal das mit dem Sensor mitgelieferte Bascom-Beispiel zu verwenden. Das funktioniert auf Anhieb.
    radebeul

  3. #33
    Kann ich leider nicht, da ich keine die Standard I2C pins schon belegt habe, und deshalb hab nur die möglichkeit, das ganze per software, in dem Fall die I2C lib von Peter Fleury, machen kann.

    MFG
    BWA

  4. #34
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hi berniwa,
    von HardwarePins hat ja keiner was gesagt,
    und wenn man Bascom nix anderes sagt, macht es I2C auch per Software.

    Da das Beispiel mit Bascom läuft, könnte man so den Fehler eingrenzen.

  5. #35
    Neuer Benutzer Öfters hier
    Registriert seit
    12.10.2006
    Beiträge
    21
    SCL und SDA sind bei den AVR nicht an die Standardpins gebunden, in Bascom erfolgt die Zuweisung z. B. mittels <config scl=portx.y> .
    Falls Dir niemand helfen kann, dann sage mir Deine Pins für SCL und SDA, damit ich Dir das modifizierte Programm als hex-File schicken kann.

    radebeul

  6. #36
    Hi!

    Also ich hab heute mal das Modul selbst an einem PIC getestet und es funktioniert wie eine 1 außerdem hab ich den I2C mit einem PCF8574 getestet, was auf ohne muken funktioniert hat.

    Das problem an Bascom ist, dass ich meinen kompleten Code bereits in C habe, und das ist nicht wenig.

    MFG
    BWA

  7. #37
    Hi!

    Ich habs jetzt geschafft.

    Der SRF02 war schlichtweg zu langsam um micht zu verstehen bzw. mein Taktsignal hat ihm bei 100kHz nicht gefallen.
    Nach sicher 50h Arbeit bin ich draufgekommen, dass der SRF02 meinen Atmega8 bei 50kHz (dem I2C ist die Frequenz ja grundsätzlich egal, so lange sie nicht zu hoch ist) ohne Probleme versteht.

    MFG
    BWA

  8. #38
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.136
    Echt spannend, und eine Erleichteung, dass das Ding funktioniert.
    Wirklich toll (danke), dass immer auch die Auflösung noch mitgeteilt wird,
    es scheint als hätten wir damit wieder eine der Grenzen erkannt.

    Hoffentlich kann ein späterer Anwender bei Problemen darauf zurückgreifen.

    Der Titel des Threads spricht ja dafür.

    Manfred

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

    könnte da noch was andres reinfunken,
    denn ich hab den mit 400kHz angesprochen, und nie ein Problem gehabt

    Hab den mit dem RN-Control (Mega32 mit 16MHz), + GLCD für die Anzeige, angeschlossen, und bin so im Garten rumgelaufen. Im Halbsekundentakt hab ich die Anzeige aktualisieren lassen.

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

LiFePO4 Speicher Test