Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
de:examples:sensor:potentiometer [2010/11/10 00:22] Wemberde:examples:sensor:potentiometer [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Potentiometer ====== ====== Potentiometer ======
  
-//Necessary knowledge : [HW] [[en:hardware:homelab:sensor]], [HW] [[en:hardware:homelab:digi]], [ELC] [[en:electronics:voltage_divider]], [AVR] [[en:avr:adc]], [LIB] [[en:software:homelab:library:adc]], [LIB] [[en:software:homelab:library:module:segment_display]]//+//Notwendiges Wissen: [HW] [[en:hardware:homelab:sensor]], [HW] [[en:hardware:homelab:digi]], [ELC] [[en:electronics:voltage_divider]], [AVR] [[en:avr:adc]], [LIB] [[en:software:homelab:library:adc]], [LIB] [[en:software:homelab:library:module:segment_display]]//
  
 ===== Theorie ===== ===== Theorie =====
  
-[{{  :examples:sensor:potentiometer:sensor_potentiometer_designator.png?120|Electric symbol of potentiometer}}]+[{{  :examples:sensor:potentiometer:sensor_potentiometer_designator.png?120|elektrisches Symbol eines Potentiometers}}]
  
-Ein Potentiometer ist ein elektronisches Widerstandsbauelement, dessen Widerstandswerte mechanisch veränderbar sindEs hat mindestens drei Anschlüsse und wird vorwiegend als stetig einstellbarer Spannungsteiler eingesetzt.+Ein Potentiometer ist ein elektronisches Widerstandsbauelement mit drei Anschlüssen. Zwischen den beiden Seitenkontakten ist der Widerstand fixzwischen Seiten- und Mittelkontakt ist er variabelIm Grunde ist ein Potentiometer ein Spannungsteiler, dessen Widerstand zwischen den Seiten- und Mittelkontakten hergestellt wird.
  
  
-[{{  :examples:sensor:potentiometer:sensor_potentiometer_turn.jpg?120|Single-turn potentiometer}}] +[{{  :examples:sensor:potentiometer:sensor_potentiometer_turn.jpg?120|einfaches Drehpotentiometer}}]
- +
-Ein typisches Potentiometer besteht aus einem Widerstand mit einer leitenden Oberfläche und einem Schiebekontakt (slider). Je näher der Slider zum Rand des Widerstands ist, des do geringer ist der Widerstand zwischen Slider und Ecke des Widerstands. Ein Material mit hohem Widerstand oder einer Spule aus Widerstandsdraht kann als Widerstand fungieren. Einige Potentiometer haben lineare oder logarithmische Verhältnisse zwischen Widerstand und Sliderposition. Potentiometer sind normalerweise einfache Drehpotentiometer (siehe Bild), aber es gibt auch Schiebepotentiometer. Ein spezieller Typ von Potentiometer sind digitale Potentiometer, wo die Regulation des Widerstands intern über Signale geschieht.+
  
 +Ein typisches Potentiometer besteht aus einem Widerstand mit einer leitenden Oberfläche und einem Schiebekontakt (slider). Je näher der Schiebekontakt am Rand des Widerstandes angebracht ist, desto geringer ist der Widerstand zwischen Slider und Ecke des Widerstands und umgekehrt. Ein Material mit hohem Widerstand oder einer Spule aus Widerstandsdraht kann als Widerstand fungieren. Bei einigen Potentiometern sind die Beziehungen zwischen Widerstand und Sliderposition linear oder logarithmisch. Potentiometer sind normalerweise einfache Drehpotentiometer (siehe Bild), es gibt aber auch Schiebepotentiometer. Ein spezieller Typ von Potentiometer sind digitale Potentiometer, bei denen die Regulation des Widerstands intern über Signale geschieht.
  
 ===== Übung ===== ===== Übung =====
  
-Am HomeLab ist ein 4,7kΩ Drehpotentiometer. Das Potentiometer ist zwischen der Erde und dem +5V Potential angeschlossen, und der Slider ist am Kanal 3 des analog-digital Konverters angeschlossen. Mit dieser Verbindung kann der Spannungsoutput des Potentiometers zwischen 0-5V reguliert werden. Der digitale Wert der Potentiometeroutputspannung kann gemessen werden wenn die Vergleichsspannung vom AVR digital-analog Konverters vom AVCC Pin genommen wird. die Folgende Funktion für den ACR ADC sind der HomeLab Library.+Am HomeLab Modul befindet sich ein 4,7 kΩ Drehpotentiometer. Das Potentiometer ist mit der Masse und dem +5 V Potential angeschlossen, und der Schiebekontakt ist am Kanal 3 des analog-digital Konverters angeschlossen. So kann der Spannungsoutput des Potentiometers zwischen 0 und 5 V reguliert werden. Der digitale Wert der Potentiometeroutputspannung kann gemessen werden indem die Vergleichsspannung vom AVR digital-analog Konverter vom AVCC Pin genommen wird. die Folgende Funktionen für den ACR ADC sind in der HomeLab Bibliothek enthalten.
  
 ~~CL~~ ~~CL~~
Line 79: Line 78:
 </code> </code>
  
-Die Funktion //adc_init// muss am Anfang des Programms stehen, sie sorgt dafür, dass der ADC funktioniert. Die Vergleichsspannung muss entweder vom AREF oder AVCC Pin kommen, oder die eingestellte interne Spannung von 2,56V muss ausgewählt werden. Dazu muss der Taktzyklus des Konverters mit einem Prescaler gesetzt werden (Faktor des Frequenzteilers), welcher den Controller Taktzyklus teilt. Die Konversion ist mit höheren Taktzyklen schneller, jedoch kann die Genauigkeit drunter leiden. Die Funktion //adc_get_value// ist zum Messen, man kann den Kanal aussuchen und sie gibt 10 Bit Ergebnisse als 16 Bit Integers aus. +Die Funktion //adc_init// muss zu Beginn des Programms ausgeführt werden. Sie sorgt dafür, dass der ADC funktioniert. Die Vergleichsspannung muss entweder vom AREF oder AVCC Pin kommen, oder es muss die eingestellte interne Spannung von 2,56 V ausgewählt werden. Dazu muss der Taktzyklus des Konverters mit einem Vorzähler gesetzt werden (Faktor des Frequenzteilers), welcher den Taktzyklus des Controllers teilt. Die Umsetzung ist schneller, wenn höhere Taktzyklen verwendet werden, jedoch kann die Genauigkeit drunter leiden. Die Funktion //adc_get_value// dient zur Messung. Es kann der Kanal gewählt werden und sie gibt 10-Bit Ergebnisse als ganze 16-Bit Zahlen aus. Die Funktion zur Messung wartet bis die Konversion beendet ist und gibt das Ergebnis erst dann aus.
-Die Funktion zum Messen wartet bis die Konversion beendet ist und gibt das Ergebnis erst aus, wenn jede Messung beendet ist.+
  
-In den zuvor erklärten Beispielprogrammen werden die ADC und die 7-Segment Nummern Indikator Library genutzt. Der 10 Bit Wert des ADC wird mit 10 multipliziert und durch 1024 dividiert um einen Wert zwischen 0-9 zu bekommen. Der Wert 10 kann nicht erreicht werden, weil in der C-Sprache nur Integer-werte berechnet werden und keine gerundeten Ergebnisse. +In den zuvor erklärten Beispielprogrammen werden die Bibliotheken des ADC und des 7-Segment-Zifferanzeige genutzt. Der 10-Bit Wert des ADC wird mit 10 multipliziert und durch 1024 dividiert um einen Wert zwischen 0 und 9 zu erhalten. Der Wert 10 kann nicht erreicht werden, weil in C nur ganzzahligewerte berechnet werden und keine gerundeten Ergebnisse. 
-Eine Funktion um die Ergebnisse des ACSs zu mitteln wird benutzt um das Ergebnis genauer zu machen,Dadurch abgeleitet gibt das Programm einen Wert von 0-9 aus, welcher mit der Position des Potentiometers entspricht.+Um die Genauigkeit des Ergebnisses zu erhöhen, wird eine Funktion zur Berechnung des Durchschnitts der Ergebnisse des ACSs genutztDaraus abgeleitet gibt das Programm auf der Anzeige einen Wert von 0 bis 9 aus, welcher der Position des Potentiometers entspricht.
  
 <code c> <code c>
 // //
-// Example program of potentiometer on the Sensor module +// Beispielprogramm für das Potentiometer des Sensormoduls 
-// The position of the potentiometer is displayed on the 7-segment indicator+// Die Position des Potentiometers wird auf der 7-Segmentanzeige dargestellt
 // //
 #include <homelab/adc.h> #include <homelab/adc.h>
Line 94: Line 92:
  
 // //
-// Selecting the channel+// Auswahl des Kanals
 // //
-//  1 = photoresistor +//  1 = Photoresistor 
-//  2 = thermistor +//  2 = Thermistor 
-//  3 = potentiometer+//  3 = Potentiometer
 // //
 #define ADC_CHANNEL 3 #define ADC_CHANNEL 3
  
 // //
-// Main program+// Hauptprogramm
 // //
 int main(void) int main(void)
Line 109: Line 107:
  int value;  int value;
  
- // Adjusting 7-segment indicator+ // Anpassung der 7-Segmentanzeige
  segment_display_init();  segment_display_init();
  
- // Adjusting ADC+ // Anpassung des ADC
  adc_init(ADC_REF_AVCC, ADC_PRESCALE_8);  adc_init(ADC_REF_AVCC, ADC_PRESCALE_8);
  
- // Endless loop+ // Endlosschleife
  while (true)  while (true)
  {  {
- // Reading 4 times rounded values of the channel+ // Liest viermal gerundete Werte aus dem Kanal
  value = adc_get_average_value(ADC_CHANNEL, 4);  value = adc_get_average_value(ADC_CHANNEL, 4);
  
- // Displaying the hundreds of the indicated value+ // Zeigt Hunderter des angezeigten Wertes an
  segment_display_write(value * 10 / 1024);  segment_display_write(value * 10 / 1024);
  }  }
 } }
 </code> </code>
de/examples/sensor/potentiometer.1289348537.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0