Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

PHC Aufgabe 6: Passiver Drucksensor

3. November 2010

Es ist beeindruckend, mit wie wenig Aufwand sich ein Drucksensor bauen lässt. Alles, was es dazu braucht, sind zwei Kupferplatten und einige Lagen elektrostatischer Schaumstoff, der sich zusammendrücken lässt. Das ganze wird an unser Arduinoboard gehängt und fertig ist der Sensor (fast).

Mit unserem improvisierten Drucksensor gaben wir verschiedene Schwellenwerte aus

Die verschiedenen Druckstufen werden ausgegeben in drei LED-Farben: Grün bedeutet, dass kein oder sehr wenig Druck ausgeübt wird. Eine gelbe Anzeige erscheint, wenn moderater Druck ausgeübt wird. Bei einer roten LED ist der Druck maximal, eine Steigerung kaum möglich.

Grün

Orange

Rot

- Der Sourcecode wurde geprüft, indem die wichtigen Meldungen in die Konsole geschrieben werden. So kann die Funktionalität in Echtzeit nachgeprüft werden.

In der Ausgabe werden die Daten überprüft

Sourcecode:
<pre>#define LED 11                 //pin 13 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);
}