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