achtung!!! anfängerfragen!!! ich habe seit kurzem mit mikrokontrollern angefangen. und habe nun seit ein paar tagen das stk500. hab natürlich direkt mit rumprobiert. und jetzt tun sich mir ein paar fragen auf. als erstes hab ich einfach mal ein kleines prog geschrieben, das bei gedrücktem schalter eine led aufleuchten lassen soll. der schalter ist an port a0 (at90s8515) und mit internem pull-up. und wenn ich den schalter auf ground lege leuchtet die led. hat also funktioniert. und jetzt wollte ich es auch mal andersrum ausprobieren. hab also den internen pull-up weggelassen und den schalter auf +5v gelegt. dabei tut sich aber nix. die led leuchtet nicht. wenn ich aber den portpin nur mit dem finger berühre geht die led sofort an (und bleibt danach auch manchmal noch kurz an). wieso ist das so? und warum geht die led nicht an, wenn ich pina0 auf +5v lege?
Du hast keinen definierten Pegel am Eingang. Wenn Du den Schalter gegen +5V hast, mußt Du den Portpin mit einem Pull-down Widerstand (1..10kOhm gegen Masse) beschalten. Eingänge sind sehr hochohmig, d.h. sie brauchen nur sehr geringe Stromstärken, um zu reagieren. Deshalb leuchtet die LED bei Berührung mit dem Finger. Ich würde sogar wetten, daß sie mit 50Hz flackert (sieht man nur mit einem Oszi), weil der menschl. Körper die 50Hz der Netzspannung irgendwo auffängt.
ah. du hast recht. so funktionierts. im anhang hab ich das mal aufgemalt. du hast das doch so gemeint, oder? auf jeden fall klappt es so. vielen dank für deine hilfe! kennst du ein gutes programm zum schaltplan zeichnen? mit paint ist das ein wenig umständlich :-)
Eagle in der Light Version --> ist auch gratis SPLAN 5.0 Oder schau doch einfach mal im Conrad-Katalog, dort sind auch noch mehrere Programme mit diversen Fähigkeiten aufgelistet. Alex
danke! eagle ist wirklich nicht schlecht. p.s.: hat das auf meiner zeichnung jetzt so gestimmt?
jep. Der Vollständigkeit halber könntest Du den Taster noch entprellen, indem Du einen 100nF Kondensator zwischen avr-pin und masse anschließt. Oder das entprellen in der Software erledigen.
ok, dann hab ich noch ne frage. und zwar wie man den eingang mit nem transistor schaltet. ich hab nochmal aufgemalt, wie ich mir das vorgestellt habe. is wahrscheinlich falsch. vielleicht kann mich da mal jemand korrigieren. die obere zeichnung (interner pullup aktiviert) hab ich schonmal ausprobiert und hat auch funktioniert. zu der unteren (kein interner pullup) wollt ich erstmal eure meinung hören. is da denn auch der pulldownwiderstand (wie beim schalter) notwendig. und wie sieht es mit der notwendigkeit von R1 aus (für beide schaltungen)? ist der wirklich nötig oder kann ich den getrost weglassen? sorry für diese blöden fragen, aber ich fange grade erst mit dem thema an :) achja: was genau bedeutet entprellen?
das einfachste ist, mit dem internen pullup zu arbeiten. Dann brauchst du nur noch extern einen npn-Transistor, Kollektor auf den Eingangspin, Emitter an Masse, an die Basis kommt das Signal. Basiswiderstand nicht vergessen. Und beachten: diese Anordnung invertiert das Signal, also H-Pegel an der Basis -> L-Pegel am Portpin. Weitere Widerstände sind nicht nötig. Sperrt der Transistor, erzeugt der pullup den H-Pegel.
Ein mechanischer Schaltkontakt prellt beim Einschalten, man kann sich das wie ein federn vorstellen. Dadurch entsteht nicht nur ein, sondern mehrere Schaltimpulse irgendwo im msec - Bereich. Der Controller ist schnell genug, die zu zählen, das kann manchmal zu ungewollten Effekten führen. Deswegen: Entprellen. Suche mal hier im Forum, da gibts sicherlich noch einige Beiträge dazu, evtl. auch mal in der Codesammlung reinschauen.
ok. ich habs nochmal aufgemalt. aber wie muss es denn sein, wenn ich den internen pullup nicht aktiviert habe? gibts bestimmt situationen wo das nicht geht, oder (interrupt, uart...)? wie muss ich den input dann beschalten? meine zeichnung ist da sicherlich nicht ganz richtig, oder?
sorry das ich euch hier so mit meinen blöden fragen nerve, aber wer trotzdem nett, wenn mir das jetzt mal jemand erklären könnte :-) jeder hat ja mal klein angefangen.
Dasselbe wie "ohne interne pullup" aber dazu ein 4K7 von Kollektor nach +5V. Gr.
ich wollte aber wissen, wie es "ohne internen pullup" geht :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.