Toopic
28.04.2014, 16:10
Hey zusammen,
Ich habe ein kleines Problem. Ich will zwei srf02 Ultraschallsensoren über I2C an meinem Arduino Uno anschliessen. Ich habe inzwischen herausgefunden, dass ich die Adressen der slave's ändern muss. Ich habe auch die Befehle gefunden mit denen ich das anstellen kann:
Changing the I2C Bus Address
To change the I2C address of the SRF02 you must have only one sonar on the bus. Write the 3 sequence commands in the correct order followed by the address. Example; to change the address of a sonar currently at 0xE0 (the default shipped address) to 0xF2, write the following to address 0xE0; (0xA0, 0xAA, 0xA5, 0xF2 )
(gefunden bei http://www.robot-electronics.co.uk/htm/srf02techI2C.htm#Address)
ich habe jedoch nicht 0xE0 als Standart, sondern 0x70. dafür muss ich die Adresse ja einfach um einen Byte nach rechts verschieben.
was ich allerdings nicht ganz verstehe: wie und wo muss ich die Befehle anordnern, damit die Adresse auch geändert wird.
meine bisherigen Versuche waren nicht gerade von Erfolg gekrönt.
#include <Wire.h>
#define srfAddress ( 0xE0 >> 1, 0xA0 >> 1, 0xAA >> 1, 0xA5 >> 1, 0xF2 >> 1) // Address of the SRF08
#define cmdByte 0x00 // Command byte
#define rangeByte 0x02 // Byte for start of ranging data
byte highByte = 0x00; // Stores high byte from ranging
byte lowByte = 0x00; // Stored low byte from ranging
void setup()
{
}
void loop()
{
}
Vielen Dank schon im voraus,
Freundliche Grüsse,
toopic
Ich habe ein kleines Problem. Ich will zwei srf02 Ultraschallsensoren über I2C an meinem Arduino Uno anschliessen. Ich habe inzwischen herausgefunden, dass ich die Adressen der slave's ändern muss. Ich habe auch die Befehle gefunden mit denen ich das anstellen kann:
Changing the I2C Bus Address
To change the I2C address of the SRF02 you must have only one sonar on the bus. Write the 3 sequence commands in the correct order followed by the address. Example; to change the address of a sonar currently at 0xE0 (the default shipped address) to 0xF2, write the following to address 0xE0; (0xA0, 0xAA, 0xA5, 0xF2 )
(gefunden bei http://www.robot-electronics.co.uk/htm/srf02techI2C.htm#Address)
ich habe jedoch nicht 0xE0 als Standart, sondern 0x70. dafür muss ich die Adresse ja einfach um einen Byte nach rechts verschieben.
was ich allerdings nicht ganz verstehe: wie und wo muss ich die Befehle anordnern, damit die Adresse auch geändert wird.
meine bisherigen Versuche waren nicht gerade von Erfolg gekrönt.
#include <Wire.h>
#define srfAddress ( 0xE0 >> 1, 0xA0 >> 1, 0xAA >> 1, 0xA5 >> 1, 0xF2 >> 1) // Address of the SRF08
#define cmdByte 0x00 // Command byte
#define rangeByte 0x02 // Byte for start of ranging data
byte highByte = 0x00; // Stores high byte from ranging
byte lowByte = 0x00; // Stored low byte from ranging
void setup()
{
}
void loop()
{
}
Vielen Dank schon im voraus,
Freundliche Grüsse,
toopic