Monday, December 15, 2014

Audino - Arduino MP3-Player (8) - Potentiometer

Um die Lautstärke zu regulieren ist ein 10k Ohm Potentiometer vorgeshen. Der mittlere Pin des Potentiometers habe ich mit dem A5-Pin des Arduinos verbunden. Die äußeren Pins des Potentiometers werden mit der 5V-Stromversorgung und der Masse verbunden.




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

  1. Auswahl der Komponenten
  2. Das Entwicklungsbrett
  3. Das erste Einschalten
  4. Die Entwicklungsumgebung
  5. Knöpfe (digital)
  6. Mehrere Knöpfe (digital)
  7. Mehrere Knöpfe (analog)
  8. Potentiometer
  9. Das MP3 Shield
  10. Auswahl der Komponenten 2
  11. Auswahl der Komponenten (Zusammenfassung) 
  12. Punkt-Streifenrasterplatine und Knöpfe
  13. Punkt-Streifenrasterplatine und weitere Komponenten
  14. Das Gehäuse
  15. Sketch 1 (setup-Methode)
  16. Sketch 2 (loop-Methode)
  17. Sketch 3 (Der komplette Code)
  18. PC-Software


No comments:

Post a Comment