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
@ 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.
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?
@ 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.
Wenn du mit
pinMode(button, INPUT);
einen Pin auf Eingang gesetzt hast, dann kannst du die Pull-Ups mit
digitalWrite(button, HIGH);
aktivieren.
Danach solltest du kontinuierlich eine 1 lesen.
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 ;)
> OK, das mit dem "digitalWrite(button, LOW);" stimmt. Das ist der Befehl> um den 20KOhm Widerstand gegen Masse einzuschalten.> Funktioniert trotzdem nicht.
Oh mann...
Der AVR hat nur pullUPs und keine PullDOWNs....
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
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 >.<
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
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.
Eine eigene Frage?
Dieser Thread ist über 14 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.