Skalieren

http://sites.prenninger.com/arduino-uno-r3/skalieren

http://www.linksammlung.info/

http://www.schaltungen.at/

                                                                                             Wels, am 2014-10-20

BITTE nützen Sie doch rechts OBEN das Suchfeld  [                                                              ] [ Diese Site durchsuchen]

DIN A3 oder DIN A4 quer ausdrucken
**********************************************************************************
DIN A4  ausdrucken
*********************************************************
Skalieren mit map

map(value, fromLow, fromHigh, toLow, toHigh)

http://arduino.cc/en/pmwiki.php?n=Reference/Map


Beschreibung

Re-Map konvertiert einen Wert von einem Bereich zum anderen.
Das heißt, würde ein Wert von fromLow zu toLow ein Wert von fromHigh zu toHigh zugeordnet bekommen, Werte dazwischen, um Werte in-zwischen etc.
Keine Werte zu begrenzen in dem Bereich, weil out-of-Range-Werte sind manchmal gedacht und nützlich.
Die Funktion constrain () kann entweder vor oder nach dieser Funktion verwendet werden, wenn Grenzen der Bereiche gewünscht sind.
Beachten Sie, dass die "untere Grenze" der beiden Bereich kann größer oder kleiner als die "obere Grenze", so der map ()-Funktion verwendet,

z.B. Werte umkehren
y = map(x, 1, 50, 50, 1); //  wenn Werte unzukehren sind (aus 1 wird 50)

Die map Funktion übernimmt auch negative Zahlen
y = map(x, 1, 50, 50, -100); // (aus 50 wird -100)


Die Funktion map () verwendet Integer-Operationen, so wird nicht Fraktionen zu erzeugen, wenn die Mathematik könnte darauf hindeuten, dass es so zu tun.
Fraktionierte Reste abgeschnitten und nicht gerundet oder gemittelt.

Parameter

value:       Roh-Wert = Integer-Variable
fromLow: die untere Grenze der Strombereich für den Wert
fromHigh: die obere Grenze der Strombereich für den Wert
toLow:    die untere Grenze für den Wert des Zielbereichs
toHigh:   die obere Grenze des Wertes der Zielbereich

Retouren
Der Wert zugeordnet.

Beispiel

/ * 10-bit (0 bis 1023) Analogwert auf 8-bit (0 bis 255) * /
void setup() {}

void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}


Anhang

Für die mathematisch veranlagt, hier ist die gesamte Funktion
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}


*********************************************************


BUCH: Arduino Praxiseinstieg Seite 213


Analoge Temperaturanzeige
In der digitalen Welt sind die meisten Temperaturanzeigen und Wetterstationen mit Digitalanzeigen ausgestattet.
Mit einer kleinen Servoanwendung kann man aber auch eine analoge Temperaturanzeige realisieren.
Die Position des analogen Zeigers, der die aktuelle Umgebungstemperatur auf der Analogskala anzeigt, wird mit dem Servo gesteuert.
Dazu wird eine runde Skala mit einem Winkel von 180 Grad auf ein Blatt oder einen Karton gezeichnet.
Im Drehpunkt wird ein Loch für den Servo gemacht und an der Drehachse des Servos wird nun ein Zeiger aus Papier oder Karton angeschlossen.
Das Temperatursignal wird von einen Temperatursensor LM35 ermittelt.
Der Servo steuert dann den Zeiger für eine Anzeige von 0 bis 50 Grad.

#include <Servo.h>

//Variablen
int tempval;
int tempPin = 0;
int servoval;
// Servo-Objekt erstellen
Servo myservo;

void setup()
{
// Servo an Port 9
myservo.attach(9);
}

void loop()
{
// Temperaturwert vom Analogport 0 lesen
// Daten von LM35
// 0-50 Grad ergeben 0-500 mV = 0-103
tempval = analogRead(tempPin);
// Skalieren des Sollwertes für den Servo
// 103 entsprechen 0-180 Grad
// max. Temp von 50 Grad (linker Anschlag)
// min. Temp von 0 Grad (rechter Anschlag)
servoval = map(tempval, 103, 0, 0, 179);
// Temperaturwert am Servo ausgeben
myservo.write(servoval);

delay(1000);      // 1sec. warten
}


Servoanwendung:
Ansteuerung eines Zeigers für eine analoge Temperaturanzeige
Zur Kalibrierung wird mittels Potentiometer der Analogwert der Temperatur simuliert, der Zeiger korrekt positioniert (Endwert) und auf der Skala angezeigt.
Zur Kontrolle wird nun noch der Minimalwert für eine Temperatur von 0 Grad eingegeben.
Der Zeiger bewegt sich an den Anfang der Skala.
Auch hier wird der Skalawert markiert.
Nun können noch Werte dazwischen, beispielsweise 20 und 30 Grad, mit derselben Methode simuliert und auf der Skala markiert werden.








DIN A4 ausdrucken

*********************************************************

Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:schaltungen@schaltungen.at
ENDE







a
Comments