Elektrofeld-Monitor         

von Johannes Schmitz                     
      
Elektronik-Labor  Projekte  AVR  Sparrow  Contest          


Überall gibt es elektrische Felder und Ladungen, aber meist merkt man nichts davon. Außer wenn man einen elektrischen Schlag verspürt. Da ist es schon besser, wenn man vorher weiß ob und wie jemand geladen ist. Der Tiny13 zeigt es an. Rot steht für positive Ladungen, grün für negative Ladungen. Je nach Ladung reagiert der Sparrow schon auf eine Entfernung bis zu 30 cm, und zwar ganz ohne eine zusätzliche Antenne. Wenn man die Füße bewegt und seine Hand in die Nähe der Platine hält, werden Ladungen erkannt. Und wenn man den Sparrow in der Hand hält wird bei geeigneten Schuhen jeder Schritt deutlich angezeigt.

Der offene Eingang B4 (=ADC2) ist hier der Messeingang für statische elektrische Ladungen. Die zugehörigen elektrischen Felder erzeugen durch Influenz eine Änderung der Spannung am Eingang. Ein offener Eingang kann aber jede Spannung annehmen. Für einen mittleren Ruhepegel sorgt die rote LED am Nachbarport, die mit dem Pullup des Ports jeweils kurz auf ca. 1,5 V gebracht wird. Eine abwechselnde Messung an ADC3 und ADC2 lädt dann den offenen Anschluss langsam auf etwa 1,5 V auf. Feldänderungen führen jedoch zu Abweichungen von der mittleren Spannung und können daher angezeigt werden.

Das Programm mittelt die Messungen über einen Zeitraum von 60 ms und filtert damit alle 50-Hz-Störsignale heraus. Zusätzlich gibt es eine Langzeit-Mittelwertbildung. Das aktuelle Signal wird laufend mit diesem Mittelwert verglichen um Änderungen elektrischer Felder zu erkennen. Nach dem Start leuchten die LEDs zunächst einige Sekunden lang, bis der Mittelwert eingeschwungen ist.  Dann sieht man nur noch ein sehr schwaches Leuchten der roten Referenz-LED. Nun ist der Sparrow scharf für externe Felder.


Download: Sparrow_E_Field.zip
Direkt laden: http://tiny.systems/categorie/cheepit/ElektrofeldMonitor.html

'Sparrow_E_Field.bas
'Static Electric field monitor
'Positiv red, negativ green

$regfile = "attiny13.dat"
$crystal = 1200000
Baud = 9600
$hwstack = 8
$swstack = 4
$framesize = 4

Dim D As Word
Dim Dd As Word
Dim Ddd As Word
Dim Dummy As Word
Dim Mean As Word
Dim N As Byte
Open "comb.1:9600,8,n,1,INVERTED" For Output As #1


Config Adc = Single , Prescaler = Auto
Start Adc

Do
  Dd = Ddd / 8
  Ddd = Ddd - Dd
  D = 0
  For N = 1 To 10
     Portb.3 = 1
     Waitus 6
     Dummy = Getadc(3)                                      'red LED
     D = D + Getadc(2)
     Portb.3 = 0
     Waitms 6
  Next N
  D = D / 10                                                '60 ms
  Ddd = Ddd + D
  Mean = Ddd / 8                                            '>1000 ms
  'Print #1 , D
  'print #1 , Mean
  'Print #1 , " "
  If D > Mean Then
     D = D - Mean
     If D > 2 Then
       Ddrb.3 = 1
       Portb.3 = 1                                          'red
       Waitms 100
       Ddrb.3 = 0
       Portb.3 = 0
     End If
  Else
     D = Mean - D
     If D > 2 Then
       Ddrb.1 = 1
       Portb.1 = 1                                          'green
       Waitms 100
       Portb.1 = 0
     End If
  End If
Loop

End



Elektronik-Labor  Projekte  AVR  Sparrow Contest