Hallo,
habe einen ATmega16 und würde gerne 4 Spannungen miteinander
vergleichen. Der ATmega16 hat ja einen internen Komparator, der aber wie
ich weis nur 2 Spannungen miteinander vergleichen kann.
Gibt es eine andere Möglichkeit mehr als 2 Spannungen mit dem ATmega16
zu vergleichen, vielleicht über den ADC?
Die 4 Spannungen sind die Ausgangsspannungen von 4 Sensoren,damit ich
weiss ob alle gut funktionieren ,muss ich die vergeilchen
Wäre toll, wenn mir jemand mit Beispielprogramm helfen könnte .
Danke
Beispiel:
u1, u2 sind die gespeicherten Werte vom AD-Wandler (Wie das geht steht
doch im Tutorial)
if (u1 > u2) {
/* tue was */
} else {
/* tue was anderes */
}
Viel Erfolg
Da sind nicht nur zwei spannungen sondern 4 ,die miteinander vergleichen
sollen.daraus will ich wissen welche von denen bzw welche sensor
funktioniert nicht gut
zum beispiel:
sensor1 liefert 1,9v sensor2 2,1v sensor3 2v sensor4 1v
das heißt sensor4 funktioniert nicht
Anonym0 schrieb:> Da sind nicht nur zwei spannungen sondern 4 ,die miteinander vergleichen> sollen.
Da es keine Operatoren zum Vergleich von mehr als zwei Werten gibt,
musst Du einen Vergleich von vier Operanden selbst schreiben. Sowas
nennt man "programmieren". ;-)
Da Du wahrscheinlich sowieso nie den Fall haben wirst, dass alle vier
Werte identisch sind, definierst Du entweder einen Bereich von absoluten
Werten in dem alle vier Werte sein müssen oder eine maximale Differenz
die bei jeweils paarweisem Vergleich nicht überschritten werden darf.
Etwas besser lesbar, könnte man auch die Werte sortieren und den
grössten und den kleinsten Wert entweder gegen den absoluten Bereich
oder gegen die maximale Differenz prüfen.
Anonym0 schrieb:> Danke für die Antwort aber den Tutorial hilft nicht viel weil da kein> beispiel über den Spanungsvergleich gibt
Du meinst du kannst keine Vergleiche nach denen Wünschen machen, wenn du
erst mal die 4 Werte hast?
Anonym0 schrieb:> Da sind nicht nur zwei spannungen sondern 4 ,die miteinander vergleichen> sollen.daraus will ich wissen welche von denen bzw welche sensor> funktioniert nicht gut
Definiere ein Kriterium, woran du erkennen kannst, welcher Sensor 'nicht
gut funktioniert' und programmiere es aus.
> zum beispiel:> sensor1 liefert 1,9v sensor2 2,1v sensor3 2v sensor4 1v> das heißt sensor4 funktioniert nicht
Warum? Woran erkennst du das?
(Und nein: Die Antwort "durch scharfes Hinschauen" gilt nicht.
Du brauchst eine Vorschrift, an die sich deine kleine 6-jährige
Schwester einfach nur strikt halten muss um zum Schluss zu kommen: der
ist schlecht)
Es gibt doch genug Analogeingänge: alle 4 Werte mittels AD-Wandlung
ermitteln und per Software vergleichen. Das ist trivial, Du musst nur
die Beispiele aufbohren (CAVE: nicht den internen Komparator benutzen!)
Das sind Ultraschallsensoren je näher an einer z.beispiel Wand sind
die,desto größer den Ausgangsspanung.
d.h die sollen fast gleiche Spannungen liefern.
Was willst du den überhaupt machen/vergleichen. Willst du die Sensoren
grundsätzlich auf Funktion überprüfen (Plausibilität) oder schlichtweg
nur die Zustände auswerten? Also was Steuern/Regeln? Der Begriff
"vergleichen" sagt hier absolut garnix aus. Was, warum, wieso, was soll
passieren? Man kann ein Problem nur korrekt Lösen wenn man das Problem
bzw. die Aufgabenstellung richtig/einfach Formuliert. Mit allen
Parametern.
so das ist steuerung von einparkhilfe mit LEDs Anzeige und akustische
Warnalarm.wie alle wissen die einparkhilfe funktioniert mit hilfe von
mehrere ultraschallsensor.
was ich jetzt nun will dass nach bestimmter zeit soll ein Test
durchgeführt werden damit man weiss ob die 4 Sensoren funktionieren.wenn
ja den Programm läuft weiter und wenn nicht dann halt Fehlermeldung.
hab mir gedacht dass diese Test könnte mit Hilfe von dem vergleich von
Ausgangsspannungen von den 4 Sensoren.
Anonym0 schrieb:> hab mir gedacht dass diese Test könnte mit Hilfe von dem vergleich von> Ausgangsspannungen von den 4 Sensoren.
Ja ok.
Bis hier her klingt das ja erst mal nicht schlecht.
> d.h die sollen fast gleiche Spannungen liefern.
definiere 'fast'.
Genau darum geht es beim programmieren: Das man auch einmal kreativ ist
und sich was ausdenkt.
Du ganz persönlich: Wie würdest du vorgehen?
Du hast 4 Werte von den Sonsoren:
512 430 640 390
Ist einer dieser Werte schlecht?
Wenn ja, welcher? Wie hast du das festgestellt? Wonach hast du dich
gerichtet? Hast du eine Formel benutzt? Wenn ja, welche?
Keine Programmiersprache der Welt kann dir das abnehmen, dass du auch
mal kreativ an die Dinge herangehst und dir was ausdenkst. Du und
niemand anderer definiert das Kriterium wonach ein fehlerhafter Sensor
erkannt wird.
Wenn du sagst: ich nehme den Mittelwert aller 4 Messungen und wenn einer
der 4 Werte mehr als 10% vom Mittelwert abweicht, dann gilt er als
schlecht.
Wenn du das so festlegst, dann ist das so.
Wenn du sagst: Nein das will ich so nicht haben, ich nehme den Median
aller 4 Werte und mach von dort weg wieder die 10% Regel
dann gilt das als dein Kriterium.
Wenn du sagst: ....
Aber DU bist derjenige, der hier Gott spielt und sich die Welt der
Abstandssensoren und der Erkennung von schlechten Messwerten so
erschafft, wie er es für richtig befindet.
Es gibt kein richtig und kein falsch. Richtig ist erst mal das was du
definierst. Wenn das dann in der Praxis nicht funktioniert, dann war die
zugrundeliegende Idee schlecht.
@ Lamtaoua (Gast)
>Da sind nicht nur zwei spannungen sondern 4 ,die miteinander vergleichen>sollen.
Oh Gott, da musst du ja TATSÄCHLICH mal ein klein wenig selber
nachdenken. Unzumutbar!