Forum: Mikrocontroller und Digitale Elektronik ATmega8: LEDs leuchten, wenn ich mit dem Finger nur in die Nähe komme!


von Kai P. (Gast)


Angehängte Dateien:

Lesenswert?

HILFEE!!!

Ich habe 10 nagelneue ATmega8 von Reichelt bekommen. Nachdem ich den 
ersten programmiert hatte und die Schaltung testen wollte, spielte diese 
plötzlich verrückt. Die angeschlossenen Schalter schienen sich selbst zu 
betätigen.

Soweit so gut. Ich habe stundenlang nach dem Fehler gesucht und 
schließlich eine Minimalst-Schaltung aufgebaut, die ich auch auf ALLEN 
ATmega8 ausprobiert habe.

Ich konnte es kaum glauben. Sobald ich mit der Hand auch nur annähernd 
in die Nähe des AVR kam (5-10 cm), schienen sich die Schaltereingänge 
von selbst zu betätigen (siehe Bild).

Hier der verwendete Code:

$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 16
$swstack = 20
$framesize = 40

Config Pind.0 = Input
Config Pind.1 = Input
Config Portd.2 = Output                                     'LED grün
Config Portd.3 = Output                                     'LED gelb
Config Portd.4 = Output                                     'LED rot

Config Debounce = 40

Set Pind.0
Set Pind.1

Main:
Do
 Debounce Pind.0 , 0 , Switch
 Debounce Pind.1 , 0 , Switch
Loop

Switch:
 Toggle Portd.2
 Toggle Portd.3
 Toggle Portd.4
Goto Main

End


Ich habe das ganze mit internem Pullup, mit externen 10k Pullup und auch 
ohne Pullups probiert (Debounce entsprechend angepasst, versteht sich).

Was passiert hier? Ich kann mir nicht vorstellen, dass alle Chips defekt 
sind. Ich habe auch verschiedene Ports ausprobiert. Es ist vollkommen 
egal, wo ich die Schalter und die LEDs anschliesse. Der Effekt ist immer 
der gleiche.

Vielen Dank im Voraus.

Liebe Grüße,
Kai

von R. F. (rfr)


Lesenswert?

Dein Aufbau enthält keinen einzigen Kondensator.

Gruss

Robert

von Tobi W. (todward)


Lesenswert?

Auf dem bild sind aber einige fehler in der minialschaltung zu sehen.

1) Der abblock Kerko muss so nah wie moglich an den AVR
2) Der RESET mit muss einem Pull-up gegen Vcc versehen werden.
3) Nimm in deinem code den Sprungpunkt >>Main<< weg und das >>goto 
Main<< ersetzt du durch >>return<<. Der debounce befehl sprint einen Sub 
an und der muss mit return beendet werden.

Veruch das mal
Gruß
Tobi

von Christian U. (z0m3ie)


Lesenswert?

Wenn ich das richtig sehe, sollten Pullup Widerstände helfen ;)

von Kai P. (Gast)


Lesenswert?

Danke zunächst mal für die Tips.

Ich habe nun folgende Änderungen gemacht:

10k Pullup RST-5V
100n KerKo direkt an Pin7 und Pin8

Code:

Do
 Debounce Pind.0 , 1 , Switch
 Debounce Pind.1 , 1 , Switch
Loop

Switch:
 Toggle Portd.2
 Toggle Portd.3
 Toggle Portd.4
Return

Immer noch das gleiche. Sobald ich in die Nähe des µC komme, beginnt die 
Switch-Schleife. Nehme ich die Hand wieder weg, stoppt sie wieder.

von Kai P. (Gast)


Angehängte Dateien:

Lesenswert?

Anbei noch der aktuelle Aufbau.

von Christian U. (z0m3ie)


Lesenswert?

nein ich meinte Pullups an dei Eingänge, sonst ist doch klar das die 
eingänge toggeln. Oder man schaltet die internen Pullupds dafür an, ich 
kenn mich mit Bascom nicht aus aber schaut für mich nicht so aus als ob 
die an sind...

von Kai P. (Gast)


Lesenswert?

Doch, die internen Pullups sind an. Hier noch einmal der komplette Code:

$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 16
$swstack = 20
$framesize = 40

'Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , 
Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0

Config Pind.0 = Input                                       'Schalter 
EIN/AUS
Config Pind.1 = Input 
'REED-Kontakt (Melder 1)
Config Portd.2 = Output                                     'LED grün
Config Portd.3 = Output                                     'LED gelb
Config Portd.4 = Output                                     'LED rot

Config Debounce = 40

Set Pind.0                                                  'PullUp ein
Set Pind.1                                                  'PullUp ein


Do
 Debounce Pind.0 , 0 , Switch
 Debounce Pind.1 , 0 , Switch
Loop

Switch:
 Toggle Portd.2
 Toggle Portd.3
 Toggle Portd.4
Return


End

von Kai P. (Gast)


Lesenswert?

Ich bin eben mal mit einem Wanzensuchgerät (HF-Detector) durch die 
Wohnung und habe nach möglichen Störquellen gesucht. Außer dem Üblichen 
(Telefone, usw.) habe ich festgestellt, dass ich selbst der Sender bin - 
kein Witz. Sobald ich die Antenne des Detectors an den Körper halte, 
Vollausschlag.

Ich selbst habe aber keinerlei Elektronik, Sender, Funkschlüssel, 
Transponder, etc. an mir getragen.

Danach habe ich die Spannung an meinem Händen gemessen und kam immerhin 
auf 0,02 bis 0,05 Volt.

Dass am Körper eine gewisse Spannung zu messen ist, wusste ich. Aber 
dass ich selbst "sende", also ein HF-Signal ausstrahle, das war mir neu.

Könnte es demnach sein, dass ich als "Sender" die Schaltung wirklich so 
stark beeinflussen kann?

Wie gesagt, sobald ich der Schaltung auf etwa 10cm nahe komme, löst der 
Toggle aus.

von yalu (Gast)


Lesenswert?

Ich kenne mich zwar mit diesem Bascom nicht aus, aber sollte
1
Set Pind.0                                                  'PullUp ein
2
Set Pind.1                                                  'PullUp ein

nicht
1
Set Portd.0                                                 'PullUp ein
2
Set Portd.1                                                 'PullUp ein

heißen? Die Pullups werden jedenfalls über die PORT- und nicht über die
PIN-Register aktiviert.

von Gast? (Gast)


Lesenswert?

Hatte der Atmega nicht immer noch VCC und GND-Pins auf der 
gegenüberliegenden Seite?

http://www.mikrocontroller.net/articles/Datei:Mega8_Tutorial.png

von Kai P. (Gast)


Lesenswert?

SUPER!!! Das wars - vielen Dank, yalu!!!

LG Kai

von Kai P. (Gast)


Lesenswert?

Gast? schrieb:
> Hatte der Atmega nicht immer noch VCC und GND-Pins auf der
> gegenüberliegenden Seite?

Ja, hat er. Die sind aber nur für die ADC-Ports gedacht (PIN 26-23). 
Wenn die ADCs nicht angeschlossen werden, braucht man die beiden nicht 
anzuschliessen.

von yalu (Gast)


Lesenswert?

Kai P. schrieb:
> Gast? schrieb:
>> Hatte der Atmega nicht immer noch VCC und GND-Pins auf der
>> gegenüberliegenden Seite?
>
> Ja, hat er. Die sind aber nur für die ADC-Ports gedacht (PIN 26-23).
> Wenn die ADCs nicht angeschlossen werden, braucht man die beiden nicht
> anzuschliessen.

Sicher? Im Datenblatt steht:

  "AVCC is the supply voltage pin for the A/D Converter, Port C (3..0),
  and ADC (7..6). It should be externally connected to VCC, even if the
  ADC is not used. If the ADC is used, it should be connected to VCC
  through a low-pass filter. Note that Port C (5..4) use digital supply
  voltage, VCC.

Bevor du dich über weitere seltsame Phänomene wunderst, würde ich auch
AVCC und den zweiten GND anschließen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.