Hi Leute,
in einem Uni-Projekt verwende ich die SRF02 Ultraschallsensoren zur Distanzbestimmung!
Bei Distanzen von 20 bis ca. 200cm funktionieren sie auch echt gut!
Beträgt die tätsächliche Distanz mehr als ca. 200cm, springen die Werte zwischen ca. 200cm und 250cm hin und her....
Auf über 300cm oder bis zu den 600cm komme ich überhaupt nicht!
Habt ihr eventuell ne Idee wodran es liegen könnte?
Gruß Thilo
Hallo ThiloM,
Habt ihr eventuell ne Idee wodran es liegen könnte?
bei größeren Distanzen wird der Empfänger empfindlicher gestellt. Hier können dann schon Reflexionen neben oder hinter dem Sensor für Werte sorgen.
Gruß, Michael
Hi Michael,
danke für deine Antwort! Also in der Halle hier habe ich keinen einzigen Gegenstand zwischen dem Sensor und der Testwand! Auch wenn ich den Sensor zur 5 Meter hohen Decke drehe, bekomme ich keine Werte über 250cm....
Gruß Thilo
Hallo ThiloM,
ich kann mir vorstellen, daß du deine Messung statt in cm in Zoll gestartet hast.
Das kann man aber nur an deinem Programm sehen, wenn du es postest.
Ein Programmbeispiel findet man auch im Datenblatt: www.robotikhardware.de/download/srf02doku.pdf (http://www.robotikhardware.de/download/)
Gruß, Michael
Naja kann nicht sein da ja die Distanzen bis 200cm wunderbar passen....
Also ich lese den Sensor wie folgt aus:
unsigned short srf02_read(char adress) {
unsigned short s;
twi_package_t packet_received;
char data_received[RECEIVE_DATA_LENGTH] = { 0 };
data_received[0] = DATEFORMAT;
packet_received.chip = adress >> 1;
packet_received.addr = 0x02;
packet_received.addr_length = 1;
packet_received.buffer = data_received;
packet_received.length = 2;
twi_read_twice((30 + (int) adress), &packet_received);
s = (unsigned short)(data_received[0] << 8);
s += (unsigned short) (data_received[1]);
if (adress == 0xE0){
sendDebugValues(s,(data_received[0]),data_received[1],0,0,0);
}
return s;
Die Ausgabe für die Entfernungen sind dann z.B.:
204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 272.000, 1.000, 16.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 202.000, 0.000, 202.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 202.000, 0.000, 202.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 202.000, 0.000, 202.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 205.000, 0.000, 205.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 205.000, 0.000, 205.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 272.000, 1.000, 16.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 274.000, 1.000, 18.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 206.000, 0.000, 206.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 205.000, 0.000, 205.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 272.000, 1.000, 16.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 208.000, 0.000, 208.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 206.000, 0.000, 206.000, 0.000, 0.000, 0.000, #<\r><\n>
Hilft das was?
Gruß Thilo
}
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.