Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w009f8cd/blog/wp-settings.php on line 520

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w009f8cd/blog/wp-settings.php on line 535

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w009f8cd/blog/wp-settings.php on line 542

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w009f8cd/blog/wp-settings.php on line 578

Deprecated: Function set_magic_quotes_runtime() is deprecated in /www/htdocs/w009f8cd/blog/wp-settings.php on line 18

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /www/htdocs/w009f8cd/blog/wp-includes/wp-db.php on line 306

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /www/htdocs/w009f8cd/blog/wp-includes/cache.php on line 431

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /www/htdocs/w009f8cd/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /www/htdocs/w009f8cd/blog/wp-includes/class.wp-dependencies.php on line 31

Strict Standards: Redefining already defined constructor for class WP_Http in /www/htdocs/w009f8cd/blog/wp-includes/http.php on line 61
Analoger Input - einfache Sensoren « Physical Computing

Analoger Input - einfache Sensoren

Die Möglichkeit mit Mikrokontrollern analoge Signale auszulesen, eröffnet uns sehr spannende Anwendungen, doch bevor wir uns in das nächste Beispiel vertiefen, noch ein paar Worte zur Natur der analogen Signale.

Wir hatten gelernt, dass digitale Signale entweder an oder aus sind, d.h. in einem Stromkreis mit 5V Versorgungsspannung ist ein digitales Signal entweder 0V oder 5V.
Ein analoges Signal verhält sich etwas anders, da sich hier die Spannung verändert. In oben genanntem Stromkreis könnte ein analoges Signal jeden Wert zwischen 0V und 5V einnehmen. Anders ausgedrückt: Über die Spannung wird ein Wert übertragen. Wie die Spannung so verändert werden kann, werden wir in einem späteren Artikel zu Spannungsteilern sicher mal erklären, jetzt wollen wir jedoch erstmal eine Anwendung mit dem Lichtsensor vorstellen.

Dazu brauchen wir: 1 Arduino, 1 Breadboard, 1 Lichtsensor, 1 Widerstand (Größe muss erst bestimmt werden), 1 Multimeter

Um herauszufinden wie groß der Referezwiderstand für den Lichtsensor sein muss, benutzen wir die Axel-Benz-Formel - in dem entsprechenden Artikel ist auch erklärt was man mit dem Multimeter machen muss.

Anschließend bauen wir die Schaltung auf: GND führt zum Widerstand, Widerstand wird mit Sensor verbunden, Sensor mit +5V. Zwischen Widerstand und Sensor kommt noch die Verbindung zum Pin.

Schaltung für analogen Input vom Lichtsensor Fritzing Sketch

Dann muss nur noch der Code aufs Arduino übertragen werden und schon sind wir fertig. Hier habe ich wieder eine angepasste Version von einem Beispiel aus der Arduino Bibliothek. Die Brenndauer der LED wird hier durch die Helligkeit im Raum bestimmt.


/*
* AnalogInput
* by DojoDave <http://www.0j0.org>
*
* Turns on and off a light emitting diode(LED) connected to digital
* pin 13. The amount of time the LED will be on and off depends on
* the value obtained by analogRead(). In the easiest case we connect
* a potentiometer to analog pin 0.
*
* http://www.arduino.cc/en/Tutorial/AnalogInput
*/

int potPin = 0;    // select the input pin for the potentiometer
int ledPin = 13;   // select the pin for the LED
int val = 0;       // variable to store the value coming from the sensor

void setup() {
pinMode(ledPin, OUTPUT);  // declare the ledPin as an OUTPUT
}

void loop() {
val = analogRead(potPin);    // read the value from the sensor
digitalWrite(ledPin, HIGH);  // turn the ledPin on
delay(val);                  // stop the program for some time
digitalWrite(ledPin, LOW);   // turn the ledPin off
delay(val);                  // stop the program for some time
}

Jetzt ist es an euch, andere Anwendungen zu entdecken und auszuprobieren. Wir freuen uns übrigens sehr, wenn ihr von euren Erfahrungen in den Kommentaren berichtet.

Noch ein Tip: Exakt die gleiche Schaltung kann man auch für einen FSR-Sensor benutzen (der z.B. messen kann, wie stark man mit dem Finger drauf drückt).

You can follow any responses to this entry through the RSS 2.0 feed.