Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:4e4th:4e4th:start:msp430g2553_experimente:input

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projects:4e4th:4e4th:start:msp430g2553_experimente:input [2014-08-20 14:20] – [Taster abfragen] mkaprojects:4e4th:4e4th:start:msp430g2553_experimente:input [2016-02-04 00:06] (aktuell) – [Elektretmikrofon] mka
Zeile 62: Zeile 62:
      
   BIN   BIN
-  : SETLEDS  \ n -- \ Binaerwet an den LEDs darstellen.+  : SETLEDS  \ n -- \ Binaerwert an den LEDs darstellen.
     >r  \ Als lokale variable sichern.      >r  \ Als lokale variable sichern. 
     r@ 00000001 and IF green cset ELSE green cclr THEN   \ Bit0 auswerten.     r@ 00000001 and IF green cset ELSE green cclr THEN   \ Bit0 auswerten.
Zeile 91: Zeile 91:
 Man kann den Pegel an P2.3 zusätzlich mit dem Oszilloskop, oder mit einem Multimeter anzeigen. In meinem Aufbau war beides angeschlossen. Mit dem Multimeter wurde die Spannung fortlaufend im MIN/MAX Modus gemessen. Dabei wurde folgendes beobachtet: Man kann den Pegel an P2.3 zusätzlich mit dem Oszilloskop, oder mit einem Multimeter anzeigen. In meinem Aufbau war beides angeschlossen. Mit dem Multimeter wurde die Spannung fortlaufend im MIN/MAX Modus gemessen. Dabei wurde folgendes beobachtet:
  
-   * Spannung an P2.3 wechselt zwischen 1.498V (MIN) und 2.146V (MAX)+   * Spannung an P2.3 variiert zwischen 1.498V (MIN) und 2.146V (MAX)
    * P2.3in schaltet zwischen H (high) und L (low) um.    * P2.3in schaltet zwischen H (high) und L (low) um.
    * Bei MIN wird der Eingang L und bei MAX wird er H.    * Bei MIN wird der Eingang L und bei MAX wird er H.
Zeile 98: Zeile 98:
    * Diese Werte liegen im Bereich der Angaben im Datenblatt.    * Diese Werte liegen im Bereich der Angaben im Datenblatt.
  
-Das Ganze geht natürlich auch mit winzigen Kapazitäten und hohen Widerständen. Oder mit Kapazitätsänderungen von Folien, Oberflächen usw.+Das Ganze geht natürlich auch mit winzigen Kapazitäten und hohen Widerständen. Oder mit Kapazitätsänderungen von Folien, Oberflächen usw. Dieses Verhalten lässt sich dann z.B. dazu benutzen einen {{:projects:4e4th:4e4th:start:msp430g2553_experimente:adc-with-no-adc.pdf|ADC-Wandler ohne ADC-Wandler}} aufzubauen; Prinzip: Per Programm die Takte bis zur Umschaltschwelle zählen (Dank an Jürgen Pintaske für den Artikel).
  
  
Zeile 229: Zeile 229:
 ===== ledcomm beobachten ===== ===== ledcomm beobachten =====
  
-Will man prüfen und nachmessen wie die LEDCOMM-Verbindung arbeitet, ist etwas mehr Aufwanf nötig. Denn die Kapazität an so einer LED so winzig, das schon die Messleitung zum Oszilloskop deren Wert so verändert, dass die Schaltung nicht mehr funktioniert. Die Beobachtung muss also ebenfalls optisch erfolgen, ohne einen elektrischen Kontakt. Mit dem {{:projects:4e4th:4e4th:start:msp430g2553_experimente:bpw40-fototransistor.pdf|Phototransistor BPW40}} in einfacher Schaltung ging das; beide R=10K. Die Fotos zeigen den Aufbau. Die Phototransistoren sitzen unter dem weißen Plastikstück das die Zimmerbeleuchtung abschirmte.+Will man prüfen und nachmessen wie die LEDCOMM-Verbindung arbeitet, ist etwas mehr Aufwanf nötig. Denn die Kapazität an so einer LED ist so winzig, das schon die Messleitung zum Oszilloskop deren Wert so verändert, dass die Schaltung nicht mehr funktioniert. Die Beobachtung muss also ebenfalls optisch erfolgen, ohne einen elektrischen Kontakt. Mit dem {{:projects:4e4th:4e4th:start:msp430g2553_experimente:bpw40-fototransistor.pdf|Phototransistor BPW40}} in einfacher Schaltung ging das; beide R=10K. Die Fotos zeigen den Aufbau. Die Phototransistoren sitzen unter dem weißen Plastikstück das die Zimmerbeleuchtung abschirmte.
  
 {{:projects:4e4th:4e4th:start:msp430g2553_experimente:ledcomm-pt-uca.jpg?200|Zwei BPW40 am Soundkarten-Oszillograph}} {{:projects:4e4th:4e4th:start:msp430g2553_experimente:ledcomm-pt-uca.jpg?200|Zwei BPW40 am Soundkarten-Oszillograph}}
Zeile 295: Zeile 295:
  
  
-==== Spannung zwischen drei Widerständen ablesen ====+==== Ohmsche Widerstände ====
  
 Das Bild ändert sich wenn man einen Spannungsteiler anschließt. Der ADC-Wert stellt sich auf den Wert am Spannungsteiler ein, und die Schwankungsbreite der Werte wurde etwas geringer. Ein Tantal-Kondensator zwischen dem Eingang und Vss ([[http://de.wikipedia.org/wiki/Tiefpass|Tiefpass]]) glättet das Rauschen noch weiter. Das Bild ändert sich wenn man einen Spannungsteiler anschließt. Der ADC-Wert stellt sich auf den Wert am Spannungsteiler ein, und die Schwankungsbreite der Werte wurde etwas geringer. Ein Tantal-Kondensator zwischen dem Eingang und Vss ([[http://de.wikipedia.org/wiki/Tiefpass|Tiefpass]]) glättet das Rauschen noch weiter.
Zeile 330: Zeile 330:
  
  
-==== Spannungsteiler aus ohmschem- und Fotowiderstand ====+==== Fotowiderstand ====
  
 Aus dem vorherigen Versuch lässt sich leicht ein Weiterer machen, mit dem ein [[http://de.wikipedia.org/wiki/Fotowiderstand|Fotowiderstand (LDR)]] beobachtet werden kann. Ein Laserpointer diente als schaltbare punktgenaue Beleuchtung direkt auf den LDR. Der kleine Fotowiderstand stammte aus einer Grabbelkiste, no-name, billig. Seine Widerstandswerte bei verschiedener Beleuchtung waren: Aus dem vorherigen Versuch lässt sich leicht ein Weiterer machen, mit dem ein [[http://de.wikipedia.org/wiki/Fotowiderstand|Fotowiderstand (LDR)]] beobachtet werden kann. Ein Laserpointer diente als schaltbare punktgenaue Beleuchtung direkt auf den LDR. Der kleine Fotowiderstand stammte aus einer Grabbelkiste, no-name, billig. Seine Widerstandswerte bei verschiedener Beleuchtung waren:
Zeile 343: Zeile 343:
 {{:projects:4e4th:4e4th:start:msp430g2553_experimente:ldr-beleuchten.png?500 |...und beleuchtet mit einem roten Laserpointer im schummrigen Kellerlicht.}} {{:projects:4e4th:4e4th:start:msp430g2553_experimente:ldr-beleuchten.png?500 |...und beleuchtet mit einem roten Laserpointer im schummrigen Kellerlicht.}}
  
 +==== Elektretmikrofon ====
  
 +Ersetzt man den Fotowiederstand durch eine [[https://de.wikipedia.org/wiki/Elektretmikrofon]]Elektret-Mikrofonkapsel erhält man eine einfache Möglichkeit Schall aufzuzeichnen. Der Feldeffekt-Transistor der Mikrofonkapsel wirkt dabei wie ein schallempfindlicher Widerstand. Die Spannungsschwankungen können direkt mit dem ADC-Eingang erfasst werden. Es ist bei diesem Aufbau nicht nötig einen Kondensator dazwischen zu geben. Die Mikrofonkapsel stammte aus einem ausgemustertem //USB headset//, war also für die niedrige Spannung von 5V geeignet. 
  
 +Die Abfrage des ADC10-Eingangs kann mit Forth einfach durchgeführt werden. Das kleine Testprogramm registriert den Spannungspegel als ganzzahligen Wert. Minimum und Maximum werden gespeichert. So kann die Amplitude, die eine Schallwelle am Spannungsteiler auslöst, ermittelt werden. Der verwendete Mikroprozessor wäre schnell genug die Schallwelle feiner abzutasten, hat aber nicht genug RAM um die Werte alle zu speichern. Hier ging es ja auch nur um das Prinzip, und das kann man schon erkennen wenn die Extremwerte registriert werden. 
  
 +Im Beispiel "Händeklatschen" ist schön zu erkennen wie die Amplitude sich mit dem Schalldruck ändert. Am ADC10 wurden dabei registriert:
 +  test3
 +  81 435 981 900 ok
  
 +Die Pegel lagen zwischen 81 und 981 was eine Differenz von 900 ergibt, der Messbereich war 0...1024. Es lässt sich also ein sehr deutliches großes Signal einfach finden. (Die Mikrofonkapsel war recht unempfindlich, man musste schon laut klatschen und auch ganz in der Nähe. Aber so ist es wohl gewollt bei solchen Mikrofonen aus einem headset.) Das Bild am Oszilloskop zeigt welche Pegel beim Händeklatschen entstanden sind. Die starken Ausschläge dauerten 6.95mS mit einer Spanungsschwankung von 2.72V.  
 +
 +{{:projects:4e4th:4e4th:start:msp430g2553_experimente:spannungsteilerschaltung-mic.png?200|Das Elektretmikrofon wird mit Spannung versorgt über einen Widerstand}} {{:projects:4e4th:4e4th:start:msp430g2553_experimente:adc-r-mic.jpg?200|Testaufbau Elektretmikrofon am ADC-Eingang des LaunchPad}} 
 +{{:projects:4e4th:4e4th:start:msp430g2553_experimente:klatschen-pegel.png?200|Pegel beim Händeklatschen.}}
 +
 +  \ mikrofon test  4e4th
 +  
 +  \ ADC input Versuche
 +  
 +  hex
 +  01B0 CONSTANT ADC10CTL0
 +  01B2 CONSTANT ADC10CTL1
 +  01B4 CONSTANT ADC10MEM
 +  004A CONSTANT ADC10AE0
 +  
 +  0020 constant p1in
 +  0021 constant p1out
 +  0022 constant p1dir
 +  0027 constant p1ren
 +  
 +  bin
 +  \ FEDCBA9876543210
 +  \                 SREF_1      1*0x2000 VREF+ and VR- 
 +  \    1              ADC10SHT_2  2*0x800  16 x ADC10CLKs
 +  \          1        REF2_5V     0x040    ADC10 Ref 0:1.5V / 1:2.5V 
 +  \                 REFON       0x020    Reference on
 +  \            1      ADC10ON     0x010    ADC10 On/Enable 
 +  0011000001110000  CONSTANT ADCSETUP
 +  
 +  0000000000000010  CONSTANT ENC      \ Enable Conversion.
 +  0000000000000001  CONSTANT ADC10SC  \ sample-and-conversion start.
 +  0000000000000100  CONSTANT ADC10IFG
 +  0100000000000000  CONSTANT INCH4    \ input chanel 4 <------------
 +  00000001 CONSTANT BIT0
 +  00000010 CONSTANT BIT1
 +  00000100 CONSTANT BIT2
 +  00001000 CONSTANT BIT3
 +  00010000 CONSTANT BIT4
 +  00100000 CONSTANT BIT5
 +  01000000 CONSTANT BIT6
 +  10000000 CONSTANT BIT7
 +  
 +  : ADC-INIT
 +    adcsetup ADC10CTL0 !
 +    inch4 ADC10CTL1 !        \ input channel 4
 +    bit4  ADC10AE0  c! ;     \ Analog Input Enable P1.4 = CA4
 +  : ADC+   1 ADC10CTL0 cset ;  \ Start ADC10  
 +  : ADC-   1 ADC10CTL0 cclr ;  \ STOP ADC10 
 +  : ADC \  -- adcmem       sample & convert once
 +    ENC ADC10SC +  ADC10CTL0 cset  
 +    BEGIN ADC10IFG ADC10CTL0 cget UNTIL adc10mem ;
 +  
 +  hex  variable MINIMUM   variable MAXIMUM 
 +  
 +  : INIT     
 +    bit4  p1dir cclr  \ P1.4 is input
 +    bit4  p1ren cclr  \ resistor disable
 +    bit4  p1out cset
 +    adc- adc-init adc+ 
 +    FFFF minimum !   0 maximum !  ;
 +  
 +  decimal  
 +  : range   ( n -- )
 +    dup minimum @ umin minimum !
 +    maximum @ umax maximum ! ;
 +  
 +  : .adc
 +    minimum @ u. 
 +    adc @ dup u. range 
 +    maximum @ u. 
 +    maximum @ minimum @ - u. ;
 +  
 +  : TEST      init page BEGIN  1000 ms page .adc  key? UNTIL ;
 +  : TEST2     init page BEGIN          page .adc  key? UNTIL ;
 +  : TEST3     init begin adc @ range key? until cr .adc ;
 +  
 +  : .DATA   init 50 0  DO cr adc @ u. LOOP ;
 +  : .DATA2  init 50 0  DO cr 100 ms adc @ u. LOOP ;
 +  
 +  ( finis )
projects/4e4th/4e4th/start/msp430g2553_experimente/input.1408537242.txt.gz · Zuletzt geändert: 2014-08-20 14:20 von mka