Forum: Mikrocontroller und Digitale Elektronik Problem bei ON/OFF-Schalter programmierung


von castelli (Gast)


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.

von Martin K. (maart)


Lesenswert?

castelli schrieb:
> und der
> Gleichrichter wird einfach sehr heiß!?

Das ist auch völig richtig so, denn richtigerweise wird dieses Bauteil 
"Gleich-riecht-er" geschrieben.
Vielleicht ist der Draht 42 schuld?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin Kreiner schrieb:
> Vielleicht ist der Draht 42 schuld?
Mit einem Schaltplan könnte man das erahnen...

von castelli (Gast)


Lesenswert?

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?

Die Programmierung sollte so eigentlich tun, oder?

von Patrick (Gast)


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.

von M. N. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Mit einem Schaltplan könnte man das erahnen...

Oder mit einem anderen Schaltplan :-)
http://www.mino-elektronik.de/power_at90s/powerat90s.htm

von fonsana (Gast)


Lesenswert?

M. N. schrieb:
> Oder mit einem anderen Schaltplan :-)

Nix da! Er soll gefaelligst den eigenen Schaltplan zeigen!

fonsana

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


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.

von hilmar (Gast)


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...

von Martin K. (maart)


Lesenswert?

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

von hilmar (Gast)


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? :-)

von atmel (Gast)


Lesenswert?

der Rest des Codes ist doch geheim, die fehlende Klammer sollte doch nur 
auf den falschen Weg führen.....

von hilmar (Gast)


Lesenswert?

Ach sooo, das erklärt doch alles ;-)

Wenn man oben die Klammer bei while noch mitzählt, sind es sogar 3 
öffnende und eine schließende...

von Martin K. (maart)


Lesenswert?

Ok, ich gehe mal schnell Brillenputztücher besorgen.

Die Klammern wird er beim copy&paste wohl vergessen haben, andernfalls 
hätte der Compile das Programm sicherlich nicht übersetzt.

von hilmar (Gast)


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...

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
Noch kein Account? Hier anmelden.