Code: Photosensor steuert Tonhöhe

Code für Photosensor E-Textiles Sample

Mit diesem Beispielcode könnt ihr einen Photosensor in eurem textilen Projekt nutzen. Der Sensor steuert einen kleinen Lautsprecher. Je nach Sensorwert spielt der Lautsprecher eine unterschiedliche Frequenz ab.

Um den Code zu nutzen, öffnet ihr ein neues Fenster in der Arduino IDE und löscht den kompletten Inhalt aus dem Fenster. Dann kopiert ihr den Code unten und fügt ihn in das Fenster ein. Jetzt müsst ihr den Code nur noch auf euer Flora-Board hochladen.

Code: Photosensor steuert Lautsprecher

//Vorbereitung analog:
//Widerstand des Photosensors mit Multimeter messen, dazu den Widerstand auch mal hell beleuchten und mal mit der Hand abdecken
//in meinem Fall liegen die Messwerte zwischen 120 Ohm bei hellem Licht und etwas über 2M Ohm bei Dunkelheit. 
//Um einen Spannungsteiler zu bauen wähle ich einen 470K Ohm Widerstand.

//der Widerstand kann gerne auch textil gestaltet werden

//In der Arduino IDE:
//Zuerst entscheiden wir, an welchen der Flora-Board Pins
//wir unseren Spannungsteiler anschließen wollen
//Wir brauchen analoge Pins!!! für das Ausmessen der Sensoren
//googeln nach Pin-out Diagram des Floras
//-> der digitale Pin 6 ist der analoge Pin 7
//-> der digitale Pin 12 ist der analoge Pin 11
//diese Zahlen stehen NICHT auf dem Board, sondern wurden ergoogelt.

int photosensor = A7; //analoger Pin, wo Sensor angeschlossen ist
int speaker = A11;

void setup() {
pinMode(photosensor, INPUT);
pinMode(speaker, OUTPUT); //LED als Output an Pin A11
Serial.begin(9600); //Monitor aktivieren
Serial.println(„Start“);
}

void loop() {
int wert =analogRead(photosensor);
Serial.println(wert);//Ausgabe des am Photosensor gelesen Wertes auf den Kontrollmonitor
delay(20);

//Per Bildschirm und Auge kalibrieren wir jetzt unseren Sensor
//Welchen Wertebereich liefert der Photosensor im „Normalzustand“?
//Welche Werte sehen wir am Sensor, wenn er abgedunkelt/beleuchtet wird?

//Normaler Wertebereiche :_________________
//Wertebereich bei Beleuchtung:__________________
//Wertebereich bei Abdunklung:__________________

//den gelesenen Wert in einen Frequenzbereich abbilden
wert = map(wert, 0, 85, 100, 5000); //Frequenzen niedriger als 100 können nicht abgespielt werden
Serial.println(wert);
tone(A11, wert, 50); //Tondauer 50 Millisekunden, wert= abgespielte Frequenz
}

Zurück zur Code-Übersicht: -> Code für E-Textiles Workshop Samples