Im Programmcode sind der verwendete Pin als Konstante und der Lautstärkenpegel als Variable definiert.
// the pin of the potentiometer that is used to control the volume const int volumePin = A5;
// variable for reading the potentiometer status int volumeState = 0;
In der loop() Methode wird der aktuelle Status des Potentiometers ausgelesen. Der ausgelesene Wert wird in den Bereich von 0 bis 100 transformiert, um eine prozentualle Lautstärke zu erhalten. Der ausgelesene Wert wird mit dem gespeicherten Wert verglichen, wenn es eine Änderung um 2% festgestellt wird, wird der gespeicherte Wert durch den neuen ersetzt.
int state; // read the state of the volume potentiometer state = analogRead(volumePin); // set the range of the volume from 0 to 100 state = map(state, 0, 1023, 0, 100); // recognize state (volume) changes in steps of two if (state < volumeState - 1 || state > volumeState + 1) { // remember the new volume state volumeState = state; // print out the state of the volume Serial.print(volumePin); Serial.print(" volume "); Serial.println(volumeState); }
delay(1); // delay in between reads for stability
Hier noch mal der gesamte Programmcode.
// constants won't change // the pin of the potentiometer that is used to control the volume const int volumePin = A5; // variables will change // variable for reading the potentiometer status int volumeState = 0; // the setup routine runs once when you turn the device on or you press reset void setup() { // disable LED L pinMode(13, OUTPUT); digitalWrite(13, LOW); // initialize serial communication at 9600 bits per second Serial.begin(9600); } // the loop routine runs over and over again forever void loop() { int state; // read the state of the volume potentiometer state = analogRead(volumePin); // set the range of the volume from 0 to 100 state = map(state, 0, 1023, 0, 100); // recognize state (volume) changes in steps of two if (state < volumeState - 1 || state > volumeState + 1) { // remember the new volume state volumeState = state; // print out the state of the volume Serial.print(volumePin); Serial.print(" volume "); Serial.println(volumeState); } delay(1); // delay in between reads for stability }
Als nächstes nehme ich mir das MP3 Shield näher unter die Lupe.
Weitere Blogeinträge
- Auswahl der Komponenten
- Das Entwicklungsbrett
- Das erste Einschalten
- Die Entwicklungsumgebung
- Knöpfe (digital)
- Mehrere Knöpfe (digital)
- Mehrere Knöpfe (analog)
- Potentiometer
- Das MP3 Shield
- Auswahl der Komponenten 2
- Auswahl der Komponenten (Zusammenfassung)
- Punkt-Streifenrasterplatine und Knöpfe
- Punkt-Streifenrasterplatine und weitere Komponenten
- Das Gehäuse
- Sketch 1 (setup-Methode)
- Sketch 2 (loop-Methode)
- Sketch 3 (Der komplette Code)
- PC-Software
No comments:
Post a Comment