Gast
#3249425
Hallo, Wir arbeiten derzeit für die Uni an einem Projekt welches auf eine Lageregelung hinauslaufen soll. Dazu freunden wir uns gerade mit den ADC Funktionen des STMF4 disovery boards an. Testweise soll derzeit nur die Spannung an einem Poti eingelesen werden und ein PWM proportional dazu generiert werden. Die einfach Grundformel dafür war: "pwm=(adcvariable/Max)*100;" wobei pwm und advariable double und Max eine preprozessorkonstante mit dem Bereich des ADCs ist. Das funktioniert zufriedenstellend und deckt den PWM Bereich in etwa komplett ab. Um jetzt den Bereich des PWMs zu verfeinern (eben in den 20-30% in denen auch tatsächlich geregelt werden soll)bzw das poti von linkem bis rechten Anschlag nur zB von 30-50% PWM laufen zu lassen haben wir diese Formel benutzt: "pwm=(((adcvariable/(Max/(rangemax-rangemin)))+rangemin)/Max)*100;" wobei rangemax und rangemin dann eben zB 30 und 50% von "Max" sind. Gebe ich diese Formel nun so in den taschenrechner ein kommt dabei ein Sinnvolles ergebnis heraus. Bzw das exakt gleiche wenn rangemin 0 ist und rangemax = Max In der Praxis hat der µC dann allerdings einen deutlich kleineren Bereich obwohl rangemax=max rangemin=0. Kann mir jemand Tippsgeben was ich hier übersehen könnte bzw. wie die Formel auszusehen hat damit die Rechenschritte im Code korrekt abgearbeitet werden? PS: Gibt es eine Möglichkeit mit Atollic True Studio live Werte zu monitoren? Lg