Problem bei ON/OFF-Schalter programmierung

Gast #3167735
Lesenswert?

Hallo zusammen,

ich habe ein kleines Gerät gebaut mit LED's gebaut und es funktioniert 
auch alles sehr toll. Jetzt wollte ich noch zusätzlich einen Off/On 
Schalter programmieren, aber es funktioniert gar nichts mehr und der 
Gleichrichter wird einfach sehr heiß!?

Hier der Code den ich verändert habe, für das ON/OFF:
1
//...
2
DDRD &= ~(1 << PD4);              //Pin4 von PortD auf Eingang stellen (ON/OFF)
3
  PORTD = _BV(PD0) | _BV(PD1) | _BV(PD4);          //Widerstände aktivieren für Pin 0, 1 und 4
4
//...
5
while(1)
6
  {
7

8
    if(!(PIND & (1<<PIND4))){    //ON/OFF Schalter
9
      //Do real important stuff
10
                        //....
11
      else{ //OFF Modus
12
             //Schalte alle LED's aus
13
    }

Ich weiß, dass ein On-Off Schalter an der Spannungsquelle wesentlich 
besser ist... Aber trotzdem sollte das so funktionieren, oder? Ich 
benutze einen ATTINY2313 und Atmel Studio 6 und eine eigene Platine.
Gast #3167761
Lesenswert?

Ist schon erschreckend, mit ansehen zu müssen, wie die Fähigkeiten zur 
systematischen Fehlersuche im Facebook-Zeitalter verloren gegangen sind 
(Bezieht sich nicht nur auf diesen, sondern auf praktisch alle 
"Hilfe!"-Threads der letzten Monate)...

Woher sollen wir wissen, warum das Ding heiß wird? Wird wohl irgendwie 
damit zusammenhängen, dass Du die LEDs ausschaltest, wenn es das einzige 
ist, das Du verändert hast...

Systematisches Vorgehen:

1. Stromaufnahme der Gesamtschaltung messen. Steigt sie? Spannung hinter 
dem Spannungsregler messen. Bricht sie ein?
2. Überlegen, welche Teile damit zusammenhängen könnten
3. Gehe zu 1., jedoch statt der Gesamtschaltung die einzelnen Bauteile 
betrachten

Bei konkreten Fragestellungen hier wieder melden, Netiquette 
(speziell Art und Anzahl der Infos) beachten, dann kann auch geholfen 
werden.
Moderator (Firma: Titel) Persönliche Seite #3167772
Lesenswert?

fonsana schrieb:
> Er soll gefaelligst den eigenen Schaltplan zeigen!
Und dann noch ein brauchbares Foto vom Aufbau. Denn der schönste 
Schaltplan nützt nichts, wenn der Aufbau vermurkst ist...

castelli schrieb:
> Ich habe einen Gleichrichter vor dem VCC und einen schalter an PIND4 der
> zu GND führt, was bitte ist denn noch von der Schaltung relevant?
Da fehlt noch einiges bis zur funktionierenden Schaltung und bis zum 
heißen Gleichrichter. Also ist offenbar der Fehler nicht in den hier 
geposteten Informationen...

> Die Programmierung sollte so eigentlich tun, oder?
Die sollte schon das tun was da steht. Nur: wenn irgendwas falsch 
verdrahtet ist, dann kann sie nicht das tun, was da steht...
(Firma: TravelRec.) Persönliche Seite #3167942
Lesenswert?

Patrick schrieb:
> Ist schon erschreckend, mit ansehen zu müssen, wie die Fähigkeiten zur
> systematischen Fehlersuche im Facebook-Zeitalter verloren gegangen sind
> (Bezieht sich nicht nur auf diesen, sondern auf praktisch alle
> "Hilfe!"-Threads der letzten Monate)...

Eine Auto-Erase-Funktion auf dem Forenserver für derartige Threads wäre 
doch mal ´was. Dann würden die "Hilfesuchenden" auch mal lernen, wie 
man um Hilfe fragt.
Gast #3167965
Lesenswert?

> if(!(PIND & (1<<PIND4))){    //ON/OFF Schalter
>   //Do real important stuff
>                     //....
>   else{ //OFF Modus
>          //Schalte alle LED's aus
> }

Ich sehe hier zwei öffnende Klammern, aber nur eine schließende.
Hat zwar nichts mit dem Heißwerden zu tun, aber wenn man einen 
Dreizeiler nicht mal richtig hin bekommt...
Gast #3168483
Lesenswert?

> Na hilmar, bevor du große Töne spuckts, solltest du vielleicht mal deine
> Brille putzen.

Na gut, zählen wir mal:



> if(!(PIND & (1<<PIND4))){    //ON/OFF Schalter
                          ^-- erste öffnende Klammer
>   //Do real important stuff
>                     //....
>   else{ //OFF Modus
        ^--- zweite öffnende Klammer
>          //Schalte alle LED's aus
> }
  ^--- erste schließende Klammer

Hab ich was übersehen, oder wer muß hier die Brille putzen? :-)
Gast #3168522
Lesenswert?

Okay, kann ja mal passieren ;-)

Wenn man nach der Einrückung geht, kann die schließende while-Klammer 
beim Kopieren verloren gegangen sein, aber beim "else" fehlt die 
schließende...

Na ist eigentlich auch egal, mit dem heißen Gleichrichter hat es auf 
jeden Fall nichts zu tun. Aber wenn er keinen Schaltplan und/oder Foto 
zeigt, kann
ihm keiner einen Tipp geben...

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