3. November 2010
Aufbau eines Spannungsteilers mit einem Drucksensor auf dem Breadboard Mit einer antistatischen Matte bauen wir einen passiven Drucksensor, mit welchem wir die Helligkeit einer LED beeinflussen können. Source Code mit Glättung#define LED 11 //pin 11 fürs LED auswählen #define SENSOR 0 //SENSOR mit analog 0 verbunden long helligkeit = 0; // LED Helligkeit long daten[] = {0, 0, 0}; long ergebnis = 0; void setup() { pinMode( LED, OUTPUT ); //LED ist output Serial.begin( 9600 ); //öffnet serial port @9600 baud } void loop() { helligkeit = analogRead( SENSOR ); //liest input zwischen 0-1023 (analog) helligkeit = helligkeit / 4; //passt die Helligkeit auf 0-255 an daten[0] = daten[1]; daten[1] = daten[2]; daten[2] = helligkeit; glaetten(); //analogWrite( LED, ergebnis ); Serial.print("Daten: "); Serial.print(daten[0]); Serial.print(" / "); Serial.print(daten[1]); Serial.print(" / "); Serial.println(daten[2]); Serial.print("Ergebnis: "); Serial.println( ergebnis ); //ausgabe Serial.println(); //zeile abstand delay( 1000 ); } void glaetten() { ergebnis = ((daten[0] + daten[1] + daten[2]) / 3); }#################################################################################################### Mehrere Schwellenwerte für drei LEDs (grün, orange, rot) Mit unserem improvisierten Drucksensor gaben wir verschiedene Schwellenwerte aus Je nach Druck auf unseren Drucksensor leuchtet ein anderes LED. Source Code
#define LEDred 9 #define LEDorange 10 #define LEDgreen 11 #define SENSOR 0 //SENSOR mit analog 0 verbunden long helligkeit = 0; // LED Helligkeit long daten[] = {0, 0, 0}; long ergebnis = 0; void setup() { pinMode( LEDred, OUTPUT ); //LED ist output pinMode( LEDorange, OUTPUT ); pinMode( LEDgreen, OUTPUT ); Serial.begin( 9600 ); //öffnet serial port @9600 baud } void loop() { helligkeit = analogRead( SENSOR ); //liest input zwischen 0-1023 (analog) helligkeit = helligkeit / 4; //passt die Helligkeit auf 0-255 an daten[0] = daten[1]; daten[1] = daten[2]; daten[2] = helligkeit; ampel(); Serial.print("Daten: "); Serial.print(daten[0]); Serial.print(" / "); Serial.print(daten[1]); Serial.print(" / "); Serial.println(daten[2]); Serial.print("Ergebnis: "); Serial.println( helligkeit ); //ausgabe Serial.println(); //zeile abstand delay( 700 ); } void ampel() { digitalWrite( LEDred, LOW ); digitalWrite( LEDorange, LOW ); digitalWrite( LEDgreen, LOW ); if( helligkeit > 225 ){ digitalWrite( LEDgreen, HIGH ); } else if( helligkeit > 170 ){ digitalWrite( LEDorange, HIGH ); } else{ digitalWrite( LEDred, HIGH ); } } <pre>