Goedenavond allen, ik zit met het volgende probleem.
Er zijn 5 IR sensoren. Deze zijn op zo'n manier geschakeld aan de microcontroller dat elke sensor met elkaar vergeleken wordt en deze vergelijking als signaal binnenkomt. Een voorbeeld:
Sensor1 COMPARE Sensor2 (in de schakeling)
De microcontroller ontvangt een hoog signaal op de input wanneer 1 > 2, anders is het een laag signaal.
Simpel gezegd om de sensor met de hoogste input te bepalen zitten deze vergelijkingen elk op een input:
a. S1 > S2
b. S1 > S3
c. S1 > S4
d. S1 > S5
e. S2 > S3
f. S2 > S4
g. S2 > S5
h. S3 > S4
i. S3 > S5
j. S4 > S5
Dit worden echter een bult IF statements om te bepalen welke S het hoogste signaal heeft, waar ik eigenlijk een mooi algoritme voor probeer te vinden. Helaas laat mijn inzicht hier mij op het moment in de steek. Ik hooop dat mijn uitleg duidelijk is en mensen mij een zetje in de goede richting kunnen geven?
--------
edit:
hmm ik zie net in:
Mocht het makkelijker kunnen of maak ik hier een fout dan hoor ik het graag
Er zijn 5 IR sensoren. Deze zijn op zo'n manier geschakeld aan de microcontroller dat elke sensor met elkaar vergeleken wordt en deze vergelijking als signaal binnenkomt. Een voorbeeld:
Sensor1 COMPARE Sensor2 (in de schakeling)
De microcontroller ontvangt een hoog signaal op de input wanneer 1 > 2, anders is het een laag signaal.
Simpel gezegd om de sensor met de hoogste input te bepalen zitten deze vergelijkingen elk op een input:
a. S1 > S2
b. S1 > S3
c. S1 > S4
d. S1 > S5
e. S2 > S3
f. S2 > S4
g. S2 > S5
h. S3 > S4
i. S3 > S5
j. S4 > S5
Dit worden echter een bult IF statements om te bepalen welke S het hoogste signaal heeft, waar ik eigenlijk een mooi algoritme voor probeer te vinden. Helaas laat mijn inzicht hier mij op het moment in de steek. Ik hooop dat mijn uitleg duidelijk is en mensen mij een zetje in de goede richting kunnen geven?
--------
edit:
hmm ik zie net in:
C:
1
2
3
4
5
6
7
8
9
10
| if (a and b and c and d) highest = S1; elseif (e and f and g) highest = S2; elseif (h and i) highest = S3; elseif (j) highest = S4; else highest = S5; |
Mocht het makkelijker kunnen of maak ik hier een fout dan hoor ik het graag
[ Voor 22% gewijzigd door Verwijderd op 01-12-2004 01:05 ]