Hallo alle zusammen, ich hab ein Problem mit meiner Schaltung, diese soll eine 10W lampe nach 3s von alleine abschalten lassen. Dies tut der controller auch nur schaltet er danach immer wieder von alleine ein. Mir ist aufgefallen das wenn ich 6,7V bis 8,4V bei der Spg. Quelle einstell die Schaltung funktioniert bzw. so geht wie ich mir das vorstelle. Der gleiche Effekt kommt auch wenn ich anstelle einer Lampe eine LED anschließe. Kennt jemand ähnliche Probleme und hat hierzu eine Lösung?
Könnte mit der Leiterbahnführung zu tun habe. Vielleicht helfen ein paar C an den Tastern.
Hi Wo ist da dir Lampe? Wie bekomme ich die Grafik größer? Laut Beschriftung 'Mosfet_P' riecht nach einem P-FET, mit GND verbunden wird's aber wohl eher ein N-FET sein. Wie schaltest Du die Lampe ein, wie aus? Kann die Lampe nach Abschaltung irgendwie wieder aktiviert werden? MfG
Patrick schrieb: > ir ist aufgefallen das > wenn ich 6,7V bis 8,4V bei der Spg. Quelle einstell Der LM1117-5 (5V? sieht man schlecht im Schaltplan) braucht wie jeder (lineare) Spannungsregler eine höhere Eingangsspannung als er am Ausgang zur Verfügung stellt. Bei den alten 7805er waren es 2,5V mehr. Der 1117er ist ein Low-Dropout Regler ... Datenblatt sagt: "The LM1117 is a low dropout voltage regulator with a • Available in 1.8 V, 2.5 V, 3.3 V, 5 V, and dropout of 1.2 V at 800 mA of load current" Damit stabile 5V rauskommen, braucht er schon mal 6,2V am Eingang. Vlt ist das das Problem deiner Schaltung?
Ihr seid mir vielleicht Experten? Die Schalter an den Ports haben keine Pullup-Widerstände. Die Eingänge sind also offen. Ob die internen Widerstände aktiv sind, kann man ohne Source-Code nicht beurteilen.
Cyborg schrieb: > Ob die internen Widerstände aktiv sind, Hast Recht, so etwas setzt man einfach voraus, genau wie N-Fets.
Cyborg schrieb: > Ihr seid mir vielleicht Experten? Ja du doch auch ... Was haben die Taster damit zu tun, wenn es funktioniert, wenn er die Eingangsspannung erhöht ... Zuerst kommt da erstmal der Spannungsregler ;-)
Danke für die zahlreichen Antworten. Anbei der Code, intern sollten die Widerstände geschaltet sein. An der mindest Spannung von 6,2Volt kann es nicht liegen da das auch bei 12V Eingangspg. auftritt. Des weiteren funktioniert ja alles bei wenn ich die LED anschließe bei ca. 2,5Volt. Die Lampe kann mit einem Tasterdruck wieder eingeschaltet werden. Das Bild ist leider nur ein Screenshot da ich sonst nicht in PNG speichern konnte, jetzt hab den Schaltplan mal als PDF angefügt.
1 | #include <avr/io.h> |
2 | #include <util/delay.h> |
3 | |
4 | int main(void) { |
5 | DDRA = 0b00011100; // pin3,4,5 Ausgang (1<<DDA2)(1<<DDA3)(1<<DDA4) |
6 | PORTA = 0b00000011; // pin1,2 eingang (Pull-up ein) (1<<PA0)(1<<PA1) |
7 | |
8 | /* INFO
|
9 | * Taster PA1
|
10 | * Mosfet PA3
|
11 | *
|
12 | * !(PINx & (1<<Pxx)) abfrage
|
13 | * PORTx |= (1<<Pxx) setzen
|
14 | * PORTx &= ~(!<<Pxx) löschen
|
15 | */
|
16 | |
17 | unsigned int dauer_normal = 5; // Automatische abschaltung in Sekunden |
18 | unsigned int dauer_lang = 1; // Lange einschaltdauer (taster >3s) in min |
19 | unsigned int zeit_aus_normal = dauer_normal*1000; // sec umrechnung (Zeit f�r normales ausschalten) |
20 | unsigned int zeit_aus_lang = dauer_lang * 60 * 1000; // umrechnung dauer lang in millisec |
21 | unsigned int taster_dauer = 3; // druck dauer in sec |
22 | unsigned int zeit_taster; |
23 | unsigned int lange_aktiv = 0; |
24 | unsigned int prell_dauer = 50; // in msec |
25 | |
26 | _delay_ms(500); |
27 | PORTA |= (1 << PA2); // Lampe nach start an |
28 | |
29 | while (1) |
30 | {
|
31 | |
32 | if ((PINA & (1 << PINA2)) && !(PINA & (1 << PINA0))) // Lampe an && taster |
33 | {
|
34 | PORTA &= ~(1 << PA2); // Lampe aus |
35 | lange_aktiv = 0; // lange ausschaltdauer zuruecksetzen |
36 | for (uint8_t i=0; i<=prell_dauer; i++) // dauer fuer taster Prellen |
37 | {
|
38 | if (!(PINA & (1 << PINA0))) // Wenn taster noch Prellt neu warten |
39 | {
|
40 | i=0; // Neu warten |
41 | }
|
42 | _delay_ms(1); // Ohne Prellen zaehlen |
43 | }
|
44 | }
|
45 | else if ((PINA & ~(1 << PINA2)) && !(PINA & (1 << PINA0))) // Lampe aus && taster |
46 | {
|
47 | PORTA |= (1 << PA2); // Lampe an |
48 | zeit_aus_normal = dauer_normal*1000; // dauer setzten / zuruecksetzen |
49 | zeit_aus_lang = dauer_lang * 60 * 1000; // dauer setzten / zuruecksetzen |
50 | zeit_taster = taster_dauer * 1000; // Dauer fuer langen tasterdruck |
51 | lange_aktiv = 0; // lange dauer deaktivieren |
52 | for (uint8_t i=0; i<=prell_dauer; i++) // Entprellen abwarten |
53 | {
|
54 | // Wenn Taste noch gedrueckt oder prellt, warte laenger.
|
55 | if (!(PINA & (1 << PINA0))) // Prellen oder taster noch aktiv |
56 | {
|
57 | i=0; // neu warten |
58 | zeit_taster--; // Taster dauer runterzaehlen |
59 | if (zeit_taster == 0) // Taster zeit runtergezaehlt |
60 | {
|
61 | lange_aktiv = 1; // Langes ausschalten aktivieren |
62 | }
|
63 | }
|
64 | _delay_ms(1); // Ohne Prellen oder tasten betaetigung |
65 | }
|
66 | }
|
67 | |
68 | else if (((zeit_aus_normal == 0) || (zeit_aus_lang == 0)) |
69 | && (PINA & (1 << PINA0))) // wenn Zeit abgelaufen && Licht an |
70 | {
|
71 | PORTA &= ~(1 << PA2); // Lampe ausschalten nach zeitdauer |
72 | }
|
73 | |
74 | else // wenn nicht gedrueckt wird ausfuehren |
75 | {
|
76 | if ((PINA & (1 << PINA2)) && !(lange_aktiv)) // wenn die lampe an ist Zeit runterzaehlen |
77 | {
|
78 | zeit_aus_normal--; |
79 | _delay_ms(1); // je 1ms runterzaehlen |
80 | }
|
81 | else if ((PINA & (1 << PINA2)) && (lange_aktiv)) // wenn lampe an und lang aktiv |
82 | {
|
83 | zeit_aus_lang--; |
84 | _delay_ms(1); |
85 | }
|
86 | }
|
87 | }
|
88 | }
|
Was sind es für FET? Heisst die Schaltung nur so, oder befindet sie sich tatsächlich im Kfz?
> && (PINA & (1 << PINA0))) // wenn Zeit abgelaufen && Licht an
Du solltest statt PINA0 was übersichtlicheres verwenden ... Entweder
passt PINA0 nicht oder es passt "& Licht an" nicht ...
Mampf F. schrieb: > Du solltest statt PINA0 was übersichtlicheres verwenden ... Entweder > passt PINA0 nicht oder es passt "& Licht an" nicht ... Du hast recht das sollte wahrscheinlich Lampe aus heißen. Es handelt sich um ein IRLML2502, das musste ein NPN. In Kicad stand nur Mosfet P dran und von Schaltbild dachte ich das wäre ein NPN Mosfet. Ja, bei mir ist zwangsläufig oft und auch oft lange der Kofferraum offen, weshalb ich hier diese Kofferraumlampe automatisch steueren wollte (bj1992), da war sowas noch nicht Standart. Bisher wurde es aber noch nicht im Auto getestet da ja die Lampe immer wieder an geht.
Patrick schrieb: > Mampf F. schrieb: >> Du solltest statt PINA0 was übersichtlicheres verwenden ... Entweder >> passt PINA0 nicht oder es passt "& Licht an" nicht ... > > Du hast recht das sollte wahrscheinlich Lampe aus heißen. Nochmal falsch, und kein Taster betätigt ist.
Patrick schrieb:
Re: Lampe am controller schält immer wieder alleine ein
Ich habe heute Mittag Kartoffeln geschaltet :-)
Ohne jetzt das Programm prüfen zu wollen, zuerst muss geklärt werden ob es ein Hard- oder Software Problem ist. Dazu würde ich ein simples Programm machen, ohne Timer oder Delay, einfach nur einschalten wenn Taster Impuls anliegt. Dann wie gesagt eine RC Schaltung am Eingang um Störimpulse zu minimieren. Die nächste Frage ist natürlich der Aufbau. Lange Leitungen? Steckbrett?
Ich kenn mich nicht sogut aus aber wenn alles mit einer Led funktioniert müsste es doch Hardware sein? Das mit dem Kondensator werd ich morgen mal versuchen.
So hab das ganze jetzt mal mit einem Kondensator, dicht an der 5V Spannungsquelle versucht. Und siehe da mit 1µF Elko ging alles wunder bar, mit einem mir unbekannten (der im Bild) hatte ich bis ca. 15Volt Eingangsspannung eine tadellose Funktion. Bis ca. 10V ging es bei einem 10nF Kondensator. Mit einem 100nF SMD ergab sich keine Verbesserung. Auch wenn ich den Kondensator über Krokodilklemmen angeschlossen hatte war die Funktion, bei allen, nicht gegeben. Kann mir hierzu einer das Phänomen erklären warum das Spannungsabhängig ist wenn doch nach dem Spannungsregler die Spannung eh 5V beträgt?
Die 10pf vor und die zweimal 22pf nach dem Spannungsregler sind aber Schreibfehler?
Ne, diese dachte ich benötigt der Spannungsregler?
Patrick K. schrieb: > Ne, diese dachte ich benötigt der Spannungsregler? Dann solltest du mal dringend das Datenblatt lesen. In meinem steht das vor- und nachher ein 10µ Kondensator gehört, wenn Elko dann LowESR.
Hab gerade nach geschaut, du hast recht, das erklärt einiges. Hab da wohl was voll mit n und µ verwechselt. Also vielen vielen Dank. Könntest du mir nur kurz noch sagen was du mit LowESR meinst.
Patrick K. schrieb: > Könntest du mir nur kurz noch sagen was du mit LowESR meinst. Das war jetzt schwer: erster Link bei Google "lowesr": http://www.elektronik-kompendium.de/sites/bau/0810091.htm
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.