Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Hans-Peter Diettrich Newsgroups: de.sci.electronics Subject: Re: Rechnen ist schwer Date: Fri, 10 Feb 2017 13:46:47 +0100 Lines: 24 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net CIlW6YOQ+tO0UFSelEiNVAQtvmtIstQYPzfq9ESbKpFl9GqR/0 Cancel-Lock: sha1:QZsmva6BbAN4odp27+DsPG/jXl0= User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 In-Reply-To: Xref: csiph.com de.sci.electronics:223085 Am 10.02.2017 um 10:51 schrieb Peter Thoms: > Hallo, > > wie denn das? > > Ich stoppel gerade an einem AVR-Prozessor in C und bekomme vom 10-Bit > AD-Wandler einen int-Wert von 8-Bit heraus, der mir erst mal reicht. > > In dummer Weise aber nicht lange: > Was ich aber für eine Regelung bräuchte wäre einen Nullpunkt, mittig im > Wertebereich. > Bspw. wäre int. 100 der Nullpunmkt (Initialwert, man trifft ja nie genau > 127) und Abweichungen lägen linear um die 100 verteilt herum. > > Wie geht das? Du kannst dafür die map() Funktion verwenden, um den Bereich des ADC (0-1023) in einen beliebigen anderen (ganzzahligen) Bereich abzubilden. Siehe Reference zu map(), dort findest Du ein Beispiel und auch die Formel. Oder Du programmierst das selbst: aus = (analogRead(A0) - 512) * irgendwas; DoDi