PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschiedliche Fototransistorwerte



AppeL
10.07.2008, 16:34
So, hier mal ein kleines Problem:

Wenn ich die Werte der Fototransistoren ausgeben lasse, hab ich bei dem rechten Transistor höhere Werte als bei dem linken, obwohl der Lichteinfall gleich ist. Ich hab Asuro auch schon gedreht aber rechts bleibt stärker.. Auch bei gleichmäßiger Bestrahlung bleibt rechts stärker als links. Hier mal einige Stichprobenwerte:



// wenn ich im Licht sitze
Links: 8
Rechts: 15

//wenn das Licht vom Fenster frei auf die Transistoren fallen kann
Links: 29
Rechts: 44

//mit Licht und einem weißen Blatt als Boden
Links: 53
Rechts: 78

// aus ca 20cm Abstand mit der Taschenlampe von oben auf das Blatt (indirekte Einstrahlung)
Links: 130
Rechts: 147


Hier noch das Programm zum Auslesen:

#include <stdlib.h>
#include "asuro.h"



void main(void)

{

Init();

void sleepms(float ms) {
int i=0;
for (i=0; i<((ms/1000*72000)/256)-1; i++)
Sleep(255);
}

unsigned int data[2];
char left[10], right[10];

SerWrite("Transistor Test\n", 17);
sleepms(500);

while(1) {
LineData(data);

itoa(data[0], left, 10);
itoa(data[1], right, 10);

SerWrite("\n\nLinks: ", 9);
SerWrite(left, strlen(left));
SerWrite("\nRechts: ", 9);
SerWrite(right, strlen(right));

sleepms(500);
}


return 0;

}


Zur Sicherheit hab ich auch noch ein Foto von den (leider nicht so symetrisch angebrachten) Fototransistoren. Der rechte (auf dem Foto links) hat mehr Abstand zur LED und zum Ball. Eventuell mehr Lichteinfall deswegen?

hai1991
13.07.2008, 16:35
hallo,
so viel ich weiß kann einerseits die unsymetrie schuld sein, anderer seits sind es 2 sensoren und dh., dass beide bei gleicher lichteinstrahlung nicht unbedingt den selben wert liefern (außer in ausnahmefällen). dies ist zT. wegen der toleranzen der sensoren

dh. du wirst nie die selben werte erhalten, aber wie man an deinen beispielen sehen kann sind sie immer fast gleich
dies ist aber im normalfall nicht so wichtig, da man doch immer einen untergrund der gut reflecktiert, und einen der schleicht reflecktiert verwenden soll, zb. weißes blatt mit schwarzer linie

pinsel120866
13.07.2008, 18:42
Hi AppeL,

sieh dich mal im Forum um, es gibt hier irgenwo einen Code der die Werte der Sensoren via Hyperterminal ausgibt.

AppeL
13.07.2008, 20:04
o_O
Ich hab doch die Werte da oben mitm Terminal (allerdings Cutecom, da ich unter Ubuntu programmiere) ausgelesen

oder meinst du was anders?

und vielleicht sollte ich einfach zum linken Wert immer 10 addieren oder so, damits erstmal ungefähr passt..
klar, dass die transistoren fast nie genau die selben Werte angeben, aber rechts ist ja quasi immer stärker als links, außer ich strahle links direkt an

pinsel120866
13.07.2008, 20:48
Ich meine den Threat "Asuro ermittlelt die Werte selber" von sternthaler. Allerdings werden die von dir benötigten Werte damit nicht ermittelt, wenn ich mich recht erinnere. Du könntest aber mit 2 kurzen Schrumpfschläuchen die LEDs teilabdecken um die Werte anzugleichen.

damaltor
14.07.2008, 17:21
zwei sensoren sind nie absoult gleich, so ist das leider. aber das ist kein großes problem, da deine werte fast gleich sind. solche dinge mss man softwareseitig lösen, da kann man nichts dran ändern. auch ein ersetzen der sensoren würde nicht viel helfen, die toleranzen der bauteile sind relativ groß. zum vergleich: bei einem meiner asuros liegen die werte um ca 150 auseinander.

Sternthaler
20.07.2008, 04:57
Hallo AppeL,

wie schon beschrieben, sind die Messwerte der Sensoren seltenst gleich.
Deine Abweichungen halten sich aber tatsächlich in einem akzeptablen Rahmen.
Die nicht symmetrische Anordnung zu deiner LED, ist mit deinem angegebenen Programm vollkommen unerheblich, da in deinem Programm die LED ja nicht benutzt wird, und somit keinen unsymmetrischen Lichtschein erzeugt. (Dein Programm sieht auch komplett fehlerfrei aus.)
Deine Sensoren scheinen also tatsächlich leicht (ist wirklich nur wenig) unterschiedlich zu sein.

pinsel120866 hat ein Programm von mir angesprochen. https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=31073
Dort werden die Nettowerte aller Sensoren an den PC gesendet. Somit auch die Daten der Linien-Sensoren.
Zum testen habe ich unter den Sensoren ein schmales, schwarzes Uhren-Armband auf weißem Grund liegen und schiebe es ein wenig nach rechts und links. Schon Bruchteile von Millimetern reichen aus um die Sensoren zu beeinflussen.

Gruß Sternthaler