PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SRF10 Problem



java-robotik
05.12.2005, 15:24
Hallo,
wir haben den SRF10 am Handyboard angeschlossen (I²C)! Wir programmieren das Handyboard mit Interactive C!

Leider funktionieren die Messungen irgendwie nicht, d.h. wir bekommen keinen sinnvollen wert zurück!


Kann uns einer von euch helfen? wie müssen wir den SRF10 über I²C ansteuern??


Vielen Dank im voraus

java-robotik
17.12.2005, 23:36
Wir sind echt auf eure Hilfe angewiesen! Die LED am SRF10 blinkt zwar, aber wir kriegen keine Messwerte zurück! Nun wissen wir halt nicht ob wir was falsch machen, oder ob irgendetwas kaputt ist!

Gibt es irgendeine Möglichkeit den Sensor zu testen?? Ohne das man dafür ein Controller braucht?? Denn wir haben nur das eine Handyboard! Wie können wir die I²C Schnittstelle am handyboard testen? Wir haben leider keinen anderen Sensor den wir da anschließen können!

Florian
18.12.2005, 09:25
Hallo java-robotik!
Ich gehe einfach mal davon aus, dass der Sensor wohl funktionieren wird ...!
Ihr könntet euch zum Anfang und zum Testen des I²C ersteinmal einen Portexpander besorgen, also z.B. den PCF8574 oder auch einen Temperatursensor o.ä.!
Mit diesen Bausteinen könnt ihr ersteinmal testen, ob euer I²C generell funktioniert.
Zuerst solltet ihr die Ausgabe testen und danach das Einlesen.
Wenn das dann alles funktioniert, dann macht ihr mit dem SRF08 weiter.

Wenn irgendetwas noch nicht funktioniert könnt ihr euch ja wieder melden, aber gewöhnt euch bitte an, den Code mitzuposten bzw. Codeausschnitte.
Ohne diesen können wir euch nicht helfen, deswegen hat sich sicherlich so lange keiner gemeldet!

Viel Erfolg!

java-robotik
18.12.2005, 10:38
Danke erstmal! Hab grad mal bei reichelt geguckt! Die haben den Chip, nur haben die 4 verschiedene Versionen!
Ich denke mal der Chip alleine ohne irgendeinen Schaltung bringt uns auch nix, oder?? Kannst du uns vielleicht irgendwie ein Tipp zu einer Schaltung oder ein Link oder so geben? Das wäre echt Klasse, denn wir sind noch totale anfänger, und haben nicht wirklich Ahnung :D ;) ...

Den Code werde ich morgen nachliefern, da ich im moment keinen Zugriff darauf habe, er liegt auf dem Dateiserver in der Schule :(

Manf
18.12.2005, 11:02
Ich nehme an die Hilfestellungen des Herstellers Wiring and Software examples for popular controllers sind bekannt.
Nur der Vollständigkeit halber.
Manfred

Wiring and Software examples for popular controllers
http://www.robot-electronics.co.uk/shop/Examples.htm

http://www.robot-electronics.co.uk/htm/using_the_i2c_bus.htm

Florian
18.12.2005, 12:22
Hallo java-robotik!
Am Besten schaust Du mal im Datenblatt (http://www.junun.org/MarkIII/datasheets/PCF8574.pdf) nach, für den Portexpander benötigst Du eigentlich keine weitere Grundbeschaltung!
Du benötigst halt nur LEDs und Taster für die Aus-/Eingabe und Widerstände, um mit den Tastern die Eingänge des Portexpanders vernünftig auf Pegel zu ziehen, wie bei den AVRs auch.
Die Versionen des Chips sind im Grudne genommen egal, es sei denn, Du hast etwas spezielles vor, was nur die eine Version kann oder nicht kann!

Jan_Weber
18.12.2005, 14:36
Die VErsionen unterscheiden sich im Gehäuse (SMD und DIP), außerdem in ihrer Basisadresse. Die -A Versionen haben eine andere Basisadresse als die Non-As, damit man mehr als 8 PCF8574 an einen I2C-Bus hängen kann.

Suche dir die DIP-Version bei Reichelt aus, die ist am einfachsten zu handeln.

Jan

Florian
18.12.2005, 15:02
Hallo Jan!
Gab es da nicht eigentlich noch andere Unterschiede, außer der Adressierung?

java-robotik
18.12.2005, 19:43
Evtl basteln wir uns auch den I2C Bus Adapter https://www.roboternetz.de/phpBB2/viewtopic.php?t=4509

Jan_Weber
18.12.2005, 20:21
@Florian: Da gibt es keine weiteren Unterschiede.

Jan

Florian
18.12.2005, 20:25
Hmmmmm, nagut! ;o)

java-robotik
19.12.2005, 12:56
Interactive C Code für das Handyboard!


#use "i2c-treiber.ic"

void main(){
int v,add;
i2c_init();

start_press();
i2c_init();
add = 224;
while(!stop_button()) {

i2c_write_byte(add,81); // cm abfrage
msleep(70L);
v =i2c_receive_2byte(add);
printf("\n %d %d ",add, v);
sleep(1.0);
add = add + 2; /* Zu testzwecken, falls die Adresse widererwachtens falsch sein sollte */
}

}*/
printf("Ende!");
}

Hier der Code! Im Anhang is die Datei ic-treiber.ic die über uses verwendet wird!

Jan_Weber
19.12.2005, 15:55
Ich bin mir nicht sicher, da ich das SRF10 nicht habe und die I2C-Funktionen von IC nicht kenne, aber kontrolliere mal die Addresse. Hängen die Funktionen von IC selbsttätig das R/W-Bit an? Die ADresse selber hat ja nur 7 Bit.

Gruß,

Jan

java-robotik
19.12.2005, 17:16
http://www.roboter-teile.de/datasheets/srf10.pdf#search='srf10%20datenblatt'

Hier der Link zum datenblatt des SRF10!

Was meinst du genau mit "Hängen die Funktionen von IC selbsttätig das R/W-Bit an?" ??

m.a.r.v.i.n
20.12.2005, 09:31
Hallo java-robotik,

Hast du dir das BASCOM Beispiel aus dem RN-Wissen angesehen?
https://www.roboternetz.de/wissen/index.php/Sensorarten#SRF08_Programmbeispiel

Dort wird zum auslesen des Messergebnisses folgende Befehlsfolge gesendet:
In Interactive C sieht das so aus:



...
i2c_write_byte(add,81); // Messwert in cm und messung starten
msleep(70L);
v =i2c_receive_2byte(add); // oder add+1???
...


In dem BASCOM Beispiel sieht man auch, das die Leseadresse add+1 ist.
Deshalb ist die Frage von Jan schon berechtigt.
Wie ist das in der Interactive C Funktion gelöst?

Wenn du nicht sicher ist ob der SRF richtig angeschlossen ist, hilft vielleicht auch eine Abfrage der Version, wie im Datenblatt beschrieben.


Gruß Peter

java-robotik
01.03.2006, 13:20
also, nun ist sicher gestellt das der Ultraschall richtig angeschlossen ist.

Der Sensor liefert trotzdem immer noch nur die reinsten "Schrott" Werte. Es ist nicht ausgeschlossen, dass der US Sensor bei den Einbau arbeiten, beim Transport oder sonst was "einen" abgekriegt hat! Kann man das testen? Mit einem Oszi oder so?

Außerdem gehen wir nun davon aus, dass der I²C Bus des Handyboards wohl funktioniert...

Manf
01.03.2006, 13:46
Was man immer messen kann ist die Spannung an den Wandlern, am Sender und am Empfänger. Dann kommt ein Verstärker... ganz genau ist es auf dem Foto nicht zu erkennen.
Manfred

[flipv:fdc8637630][fliph:fdc8637630]http://www.active-robots.com/products/sensors/devantech/srf10back-750.jpg[/fliph:fdc8637630][/flipv:fdc8637630]