- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 3 von 3

Thema: I2C Adressändeung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi toopic,

    die Bytes 0xA0, 0xAA, 0xA5 dürfen nicht mit ">> 1" nach rechts geschoben werden, weil das keine Adressen sind.
    Diese Bytes werden halt an deine Adress 0x70 gesendet, gefolgt von deiner neuen Adresse (0xYY >> 1).
    Gruß
    Dirk

  2. #2
    Danke für deine Hilfe Dirk,

    das hat mir sehr geholfen. Jetzt habe ich es entlich doch noch geschafft.
    Hier wäre der Sketch:





    #include "Wire.h"

    #define currentAddress 0x70 //aktuelle Adresse reinschreiben / type in current address
    #define newAddress 0x74 //neue Adresse reinschreiben / type in new adress

    void setup() {

    delay (10000); //Delay for Serial Monitor

    Serial.begin(115200);
    Wire.begin();
    Wire.beginTransmission(currentAddress);
    Wire.write(0x00);
    Wire.write(0xA0);
    if (Wire.endTransmission()) {
    Serial.println("Error writing 1. command byte (maybe adress already changed)");
    return;
    }
    Wire.beginTransmission(currentAddress);
    Wire.write(0x00);
    Wire.write(0xAA);
    if (Wire.endTransmission()) {
    Serial.println("Error writing 2. command byte");
    return;
    }
    Wire.beginTransmission(currentAddress);
    Wire.write(0x00);
    Wire.write(0xA5);
    if (Wire.endTransmission()) {
    Serial.println("Error writing 3. command byte");
    return;

    } Wire.beginTransmission(currentAddress);
    Wire.write(0x00);
    Wire.write(newAddress << 1);
    if (Wire.endTransmission()) {
    Serial.println("Error writing new adress byte");
    return;
    }
    Serial.print("Successfully configured new Address: ");
    Serial.println(newAddress);
    }

    void loop() {
    }



    Man muss darauf achten, dass auf dem Datenblatthttp://www.robot-electronics.co.uk/htm/srf02techI2C.htm die Befehle um die Adresse zu ändern nicht in der richtigen Reihenfolge sind. In diesem Sketch stimmt die Reihenfolge und so funktioniert es.
    Am Anfang des Sketches habe ich einen Delay eingebaut, damit man Zeit hat den Serial Monitor zu öffnen und die Erfolgreiche Änderung auch zu sehen. Denn ansonsten führt das Programm den Befehl aus und wenn man den Serial öffnet will es ihn nochmal ausführen, hat aber bereits eine andere Adresse und gibt daher eine Error Warnung an.

    Freundliche Grüsse,

    Toopic

Ähnliche Themen

  1. Problem mit I2C Sensor DRMOD-I2C-RVI
    Von muerzi im Forum Sensoren / Sensorik
    Antworten: 23
    Letzter Beitrag: 22.02.2010, 18:29
  2. I2C-Bus, analog <-> I2C
    Von Normalo im Forum Elektronik
    Antworten: 26
    Letzter Beitrag: 29.12.2008, 19:24
  3. Antworten: 2
    Letzter Beitrag: 10.08.2006, 12:18
  4. Problem: Zwei MEGA8 via I2C-Bus koppeln (mit I2C-slave-Lib)
    Von Ulfens im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 11.01.2006, 15:25
  5. *I2C* maximale eingänge per i2c auf 8 digitale Pins
    Von Christian Sturm im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 22.06.2004, 19:44

Berechtigungen

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

Labornetzteil AliExpress