14.06.2007, 15:21
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).
Danke,
Gruß Jonas
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).
Danke,
Gruß Jonas