mikrocontroller.net

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


Autor: Kai P. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: R. Freitag (rfr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Aufbau enthält keinen einzigen Kondensator.

Gruss

Robert

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig sehe, sollten Pullup Widerstände helfen ;)

Autor: Kai P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kai P. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei noch der aktuelle Aufbau.

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Kai P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kai P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yalu (Gast)
Datum:

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

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

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

Autor: Gast? (Gast)
Datum:

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

http://www.mikrocontroller.net/articles/Datei:Mega...

Autor: Kai P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SUPER!!! Das wars - vielen Dank, yalu!!!

LG Kai

Autor: Kai P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.