Forum: Mikrocontroller und Digitale Elektronik Grundlegende Frage zur Verwertung von ADC-Daten eines Arduino


von Carsten L. (weweriza)


Lesenswert?

Hallo, habe eine ganz allgemeine Frage, will nur sichergehen das ich das 
richtig sehe.

Also es geht darum, dass mehrere Werte über die verschiedenen analogen 
Eingänge eingelesen werden.
Aufgrund dieser werte (Sensorwerte) sollen dann Motoren angesteuert 
werden.

So, ich habe nun eine Funktion geschrieben die die Werte einliest, und 
eine die aufgrund der Werte Motoren ansteuert. Diese beide Funktionen 
starte ich in der loop Funktion.

Nun die eigentliche Frage:
Es ist doch dann so, dass ich in der Motorsteuerung keine 
while-Schleifen benutzen kann, die sich auf die eingelesenen Sensorwerte 
beziehen oder?
Ich meine innerhalb dieser while-Schleife ändert sich ja der Wert nicht, 
bzw. wird nicht neu eingelesen. Aber ich kann doch nicht nur mit if's 
arbeiten, gibt es da irgend eine bessere Möglichkeit oder habe ich grad 
ein riesen Brett vorm Kopf?

Gruß

von Karl H. (kbuchegg)


Lesenswert?

Carsten L. schrieb:
> Hallo, habe eine ganz allgemeine Frage, will nur sichergehen das ich das
> richtig sehe.
>
> Also es geht darum, dass mehrere Werte über die verschiedenen analogen
> Eingänge eingelesen werden.
> Aufgrund dieser werte (Sensorwerte) sollen dann Motoren angesteuert
> werden.
>
> So, ich habe nun eine Funktion geschrieben die die Werte einliest, und
> eine die aufgrund der Werte Motoren ansteuert. Diese beide Funktionen
> starte ich in der loop Funktion.

Du rufst sie aus der 'loop' auf.
(Du startest nichts. Starten impliziert, dass das dann von alleine 
weitermacht. Tut es aber nicht. Die Funktion wird aufgerufen, macht ihr 
Ding und kommt zurück)

> Nun die eigentliche Frage:
> Es ist doch dann so, dass ich in der Motorsteuerung keine
> while-Schleifen benutzen kann, die sich auf die eingelesenen Sensorwerte
> beziehen oder?

Richtig.,

> Ich meine innerhalb dieser while-Schleife ändert sich ja der Wert nicht,
> bzw. wird nicht neu eingelesen.

Richtig.

> Aber ich kann doch nicht nur mit if's
> arbeiten,

doch.

Die Schleife, die du verzweifelt suchst steckt beim Aufrufer von loop. 
Der sorgt dafür, dass loop, und damit dann auch deine Motorfunktion, 
wieder und immer wieder aufgerufen wird.

Und bei jedem Aufruf kann deine Funktion anhand der Motorposition und 
des jeweils neuesten ADC Wertes entscheiden, ob der MOtor noch 
eingeschaltet bleiben muss (bis zum nächsten Aufruf der Funktion) oder 
ob es Zeit ist den Motor abzuschalten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.