µC Programm läuft auf dem Programmierboard aber nicht auf dem Steckbrett

  • Hallo,


    Ich hoffe ihr könnt einen µC Neuling helfen.
    Ich habe mir ein kleines Programm in Bascom geschrieben mit dem ich einen Inverter mit Leuchtfolie ansteuern möchte.
    Das Programm hat eigentliche nur 3 Funktionen:
    Einmal Leuchtfolie für ca. 10 Sec. an und dann wieder aus.
    Wenn man länger auf dem Taster drückt, dauer an. Bei erneutem Taster druck Leuchtfolie wieder aus.
    Und die letzte Funktion ist bei Dauer an das die Leuchtfolie nach spätestens 2 Min. von selber wieder ausgeht.


    Auf meinem Programierboard (Pollin Atmel Evaluations-Board) funktioniert alles schon Super.
    Jetzt habe ich mal alles auf Steckbrett gesteckt. Leider funktioniert es dort nicht mehr so richtig.
    Immer wenn ich auf Dauer an gehe (Taster lang gedrückt halten) geht zwar die Leuchtfolie an aber lässt sich nicht mehr ausschalten. Erst nach den Zwei Min Wartezeit geht sie wieder aus.


    Auf dem Steckbrett soll die Rote LED die Leuchtfolie darstellen. Bei den zwei Kabeln ist der Taster.


    Betrieben wird alles mit 5V und externen 8Mhz Quarz. Als µC verwende ich einen Atmega8.


    Habe mal den Code, Schaltplan und ein Bild von meinem Steckbrett angehängt.



    Schaltplan:


    Steckbrett:


    Hoffe ihr könnt mir helfen. Komme einfach nicht mehr weiter.



    Mit Freundlichen Grüßen
    Sascha

  • Anhand deiner Frage vermute ich, dir ist auch nicht ganz klar was ein 10K Widerstand da eigentlich bewirkt.


    Man unterscheidet:

    Pullup Widerstand:

    Das bedeutet, eine Signalleitung wird auf einen definierten High (1) Pegel gelegt (z.B. 5V)
    Demnach muss er eben auch mit dem Highpegel verbunden werden wie z.B. eben 5V.
    Die AVR Controller haben einen internen Pullup Widerstand, der aktiviert werden kann. Es ist aber auch möglich einen externen Pullup zu verwenden.
    Bei 5V wird dieser in der Regel auf 10K ausgelegt.


    Pulldown Widerstand:
    Das bedeutet, eine Signalleitung wird auf einen definierten Low (0) Pegel gelegt (z.B. 0V, GND)
    Demnach muss er eben auch mit dem Lowpegel verbunden werden wie z.B. 0V.
    Die meisten AVR Controller haben keine internen Pulldown Widerstände. (Ausnahme z.B. Atxmega)
    Wird ein Pulldown Widerstand benötigt, muss dieser dann extern angebracht werden.


    Die Pullup und Pulldownwiderstände verwendet man also grundsätzlich um eine Leitung auf einen definierten Pegel zu bringen. Sowohl in Kombination mit Tastern als auch in Bussystemen usw. wird sowas verwendet.


    Wollte dies nur mal ergänzen.


    Gruß Florian

  • Vielen Dank für die Erklärung.
    Wie du schon richtig vermutet hast wusste ich das nicht.


    Ist es dann egal ob ich den internen oder externen Pulluo Wiederstand verwende oder gibt es da eine Faustregel.
    Und woher weiß ich dann ob ich einen Pullup oder Pulldown Wiederstand verwenden soll. Z.b jetzt am Reset.

  • Wenn der Reset Pin unbeschalten ist, hat er kein definierten Pegel.
    Damit kann es passieren, dass der Controller einfach resettet.


    Beim Reset Pin verwende ich immer einen externen Pullup Widerstand.
    Bei Tastern an anderen I/O Eingängen nutze ich gerne auch den internen Pullup Widerstand.


    Gruß Flo