Arduino Uno Eingang "flattert"

Gast #2774496
Lesenswert?

Hallo erstmal,
ich habe seit 2 Tagen mein Arduino Uno.
Dieser funktionierte auch immer tadellos, bis heute.
Sobald ich eine un-beschaltete Litze in einen Eingang stecke (egal 
welcher), fängt dieser an wie wild zwischen 1 und 0 hin- und 
herzuspringen.
(Das habe ich dem Serial-Monitor entnommen.)

sobald ich dann das Gehäuse (Masse) des USB-Ports vom Arduino mit dem 
Finger berühre, bleibt der Eingang auf einem zufälligen Wert stehen.
(1 oder 0, ändert sich aber nicht!)

Ich bin mir nun nicht sicher, ob ich mit irgendetwas den µC zerschossen 
habe oder ob dies wohl eher ein Fehler des Boards ist.
Und vor allem wie ich diesen beheben kann oder ob ich einen neuen µC 
brauche.

Dies sind meine ersten Versuche mit µC - Programmierung daher werde ich 
Fachausdrücke mit Sicherheit nicht verstehen ;)

Danke schon mal für eure Hilfe und euer Verständnis.

Weisni
#2774511
Lesenswert?

@  Weisni (Gast)

>Sobald ich eine un-beschaltete Litze in einen Eingang stecke (egal
>welcher), fängt dieser an wie wild zwischen 1 und 0 hin- und
>herzuspringen.

Logisch, du hast einen offenen CMOS-Eingang und eine Antenne. Der ist 
sehr empfindlich und reagiert auf kleinste Signale.

>Und vor allem wie ich diesen beheben kann

Schalte in der Software die internen Pull-Up Widerstände ein. Oder legen 
deinen Eingang fest auf GND oder VCC.
Gast #2774565
Lesenswert?

int led1 = 11;
int led2 = 12;
int led3 = 13;
int counter = 0;
int button = 7;
int buttonStatus = LOW;
int buttonStatusOld = HIGH;
int i;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(button, INPUT);
  digitalWrite(button, LOW);
  Serial.begin(9600);
}
void loop()
{
  buttonStatus = digitalRead(button);
  Serial.println(buttonStatus);
}


So habe ich den Probrammiert. das "digitalWrite(button, LOW);" sagt doch 
Pull-down Widerstand oder nicht?

Und selbst wenn ich HW mäßig einen 50k Widerstand zwischen Pin und Masse 
hänge und den Taster mit 5V verbinde springt er trotzdem noch hin und 
her.
Erst wenn ich ihn per "Freiluft - verdrahtung" direkt an den Widerstand 
hänge bleibt er auf 0.

Vorher hatte das doch auch so Funktioniert..
bin ich zumindest der Meinung.

Trotzem Danke, villeich vertue ich mich auch nur und hab ein Brett vor 
dem Kopf das du hoffentlich beseitigen kannst. :)

Und als Nebenfrage, wieso hört er auf seinen Zustand zu wechseln wenn 
ich das Gehäuse vom USB anfasse?
#2774571
Lesenswert?

@  Weisni (Gast)

>So habe ich den Probrammiert. das "digitalWrite(button, LOW);" sagt doch
>Pull-down Widerstand oder nicht?

Nicht. ICh kenn mich mit Arduino nicht aus, musst du in der Doku 
nachlesen.

>Und selbst wenn ich HW mäßig einen 50k Widerstand zwischen Pin und Masse
>hänge und den Taster mit 5V verbinde springt er trotzdem noch hin und
>her.

Da sollte nicht sein.

>Und als Nebenfrage, wieso hört er auf seinen Zustand zu wechseln wenn
>ich das Gehäuse vom USB anfasse?

Kann man so einfach nicht sagen.
Gast #2774584
Lesenswert?

OK, das mit dem "digitalWrite(button, LOW);" stimmt. Das ist der Befehl 
um den 20KOhm Widerstand gegen Masse einzuschalten.
Funktioniert trotzdem nicht.

Kann ich villeich irgendwie den IC kaputt gemacht haben?
Ich würde jetzt auch aus Testgründen mir einen neuen ATMega328 holen 
aber da wo ich den jetzt auf Anhieb hernehmen würde, ist der Bootloader 
nicht aufgespielt. Wie das geht weiß ich leider auch nicht. Bin gerade 
am Googlen aber finde momentan nichts nützliches.

Trotzdem Danke für deine Hilfe ;)
Gast #2774589
Lesenswert?

Hi

>OK, das mit dem "digitalWrite(button, LOW);" stimmt. Das ist der Befehl
>um den 20KOhm Widerstand gegen Masse einzuschalten.
>Funktioniert trotzdem nicht.

ATMegas haben keinen intern zuschaltbaren Pull-Down-Widerstand.

>Kann ich villeich irgendwie den IC kaputt gemacht haben?

Quatsch. Du hast nur deinen ersten Zufallsgenerator gebaut.

MfG Spess
Gast #2774595
Lesenswert?

Genau das habe ich gerade auch gemerkt..
Arbeite mit dem Buch "Die elektronische Welt mit Arduinos entdecken"
Da stand dann viel über "Pullup und Pulldown" hab gedacht der hat also 
auch interne Pulldown Widerstände...

Besten dank :) Funktioniert alles wieder.
Verstehe zwar immer noch nicht wieso der externe Pulldown nicht 
funktioniert,aber mir ist immerhin schon mal geholfen.

Vielen Dank :)
Tut mir leid.. Doofheit >.<
#2774600
Lesenswert?

Weisni schrieb:
> So habe ich den Probrammiert. das "digitalWrite(button, LOW);" sagt doch
> Pull-down Widerstand oder nicht?

Macht es Dir soviel Spaß, nur rumzuraten?
Warum schaust Du nicht einfach mal ins Datenblatt?
Da gibt es extra ein Kapitel zu den IOs.


Der IC ist definitiv nicht kaputt, Du hast nur einen floatenden Pin.

Bei langen Leitungen können auch bei 50k Pullup Störungen einkoppeln. Da 
hilft entweder den Widerstand kleiner zu machen (1k) oder besser eine 
Entprellroutine zu verwenden.


Peter
Gast #2774608
Lesenswert?

Ja ich habe noch keinen einzigen Blick in das Datenblatt geworfen weil 
ich mit dem Buch gearbeitet habe. Den Rest habe ich auf Arduino.cc 
nachgelesen.
Mit dem 1kOhm Widerstand geht es :)

Danke, Danke vielmals.

Dann lade ich mir das Datenblatt jetzt erstmal runter, und schaue 
demnächst zuerst in das Datenblatt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren