Hallo liebes Forum, vergleichbare Probleme habe ich hier im Forum nicht finden können, daher bitte ich um eure Hilfe. Ich verzweifle bald an meinem aktuellem Projekt. Es sollte nichts kompliziertes werden und funktioniert auf dem Uno R3 ganz normal. Ich habe eine kleine Küchenbeleuchtung zusammengebastelt, aber seit ich das Programm auf dem Nano Klon betreibe spinnt irgendwie alles. Mein erstes kleines Problemchen war, dass der Klon keinen Bootloader hatte also habe ich den vom Uno aufgespielt, um ein wenig mehr Speicher zur Verfügung zu haben. Die Klone habe ich hier gekauft: https://www.ebay.de/itm/5x-Nano-V3-0-Modul-ATmega328P-USB-5V-Board-16MHz-Arduino-kompatibel-CH340G-18et/283426392638?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649 Nun zu den eigentlichen Problemen 1. Ich habe in diesem Projekt einen Lichtsensor sowie einen Bewegungsmelder verwendet. Der Bewegungsmelder liefert gute arbeit, aber der Lichtsensor spinnt völlig. Bei jedem Programmstart sind die Werte (die ich mir zur Kontrolle ausgeben lasse) immer anders und schwanken plötzlich um nur ein paar bit (trotz Handylampe und abdecken des Sensors mit dem Finger). Die Leitungslänge sollte kein Problem sein, da ich ein 0,25mm² Kabel verwende und nur ca. 1 Meter Kabellänge habe. 2. Die LED leiste wird über einen Mosfet über die PWM Funktion gesteuert damit ich das ganze so hell haben kann wie ich das gerne hätte und ein schönes ein- und ausfaden bekomme. Selbstverständlich habe ich mir auch hier die PWM-Werte wärend dem dimmen anzeigen lassen, ab etwa 115 (von 225) ist das Licht auf einen Schlag an. Nichts mehr mit ein- oder ausfaden. 3. Nun zum skurielsten aller Probleme: Ich habe den Nano auch noch mit einem Taster versehen um das Licht auch bei bedarf einschalten zu können. Nun ist es aber so das ich den internen Timer mittels While-Schleife programmiert habe und diese die Sekunden zählt die ich vorgegeben habe, um die Millis nicht über den 16 bit Bereicht zu jagen. Das funktioniert auch so ohne Probleme, bis ich das Verbindungskabel aus meinem PC ziehe. Hierbei ist es sogar egal ob ich die Arduino IDE geöffnet habe oder nicht. Wenn ich den Nano angeschlossen habe und den Taster betätige läuft das Programm mit Ausnahme der Fehler 1 & 2 Problemlos. Sobald ich aber das Kabel aus dem PC ziehe und den Tastet betätige läuft der LED-Streifen nur für 5 Sekunden anstatt 5 Minuten. Falls noch etwas fehlen sollte bitte ich um eine kurze Meldung. Danke schonmal im Voraus Furio Xerus
Zeige deinen Quelltext, ein Foto vom Aufbau und den Schaltplan.
Furio Xerus schrieb: > Nun ist es aber so das ich den internen Timer mittels While-Schleife > programmiert habe und diese die Sekunden zählt die ich vorgegeben habe, > um die Millis nicht über den 16 bit Bereicht zu jagen. Das ist eine seltsame Idee! Erstens: Millis() liefert 32 Bit Zweites: Ein Überlauf ist kein Problem, solange deine Schaltzeiten kleiner 49 Tage sind. Furio Xerus schrieb: > Falls noch etwas fehlen sollte Du siehst deinen Kram vor dir. Wir sehen nichts. Also keine Diagnose, kein Test und keine Hilfe möglich.
Noch eine Frage dazu: Tritt das Problem nur beim Arduino Nano Klon auf, ein originaler geht aber?
Furio Xerus schrieb: > Sobald ich aber das Kabel aus dem PC ziehe und den Tastet betätige läuft > der LED-Streifen nur für 5 Sekunden anstatt 5 Minuten. Klingt nach Problemen in der Spannungsversorung, die den Nano resetten lassen. Ansonsten möchte ich den Vorpostern beipflichten.
In dem Roman sind so viele falsche Annahmen das es schon weh tut. Hier mal ein paar, die zumindest Chancen haben: - LDR am langen Kabel, ohne Entstörung, direkt in der Nähe zur PWM: zu hochohmig, eine Antenne und softwareseitig nicht gefiltert - Nicht dimmbare LED-Leiste, Störungen in der Spannungsversorgung oder ein gravierender Softwarefehler versauen die PWM - falscher Umgang mit der millis()-Funktion, falsche Variablengrößen, falsche Deklarationen - fehlende Masseverbindungen, Kondensatoren, Pullups Schaltplan, Bilder, Code posten. Stell dich drauf ein, alles nochmal und diesmal "doppelt so groß" zu bauen, denn Elektronik ist nicht nur Batterien einlegen, und programmieren ist nicht nur 3 Zeilen aus einem Wiki zu kopieren.
Furio Xerus schrieb: > Falls noch etwas fehlen sollte bitte ich um eine kurze Meldung. Was hat das mit dem Titel "Arduino Nano Klon macht aus 5 min 5 sec" auf sich?
Der Nano Klone ist 100% kompatibel mit dem Original (Open Source) Der Furio muss lernen , wie man einen Bootloader in den Nano hinein bekommt oder 50 Pfennig mehr fuer einen Vorinstallierten ausgeben. Die Schuld an Allem bei den Anderen suchen !!! Wake up !!!
imkeller schrieb: > Der Furio muss lernen , wie man einen Bootloader in den Nano hinein > bekommt Na, na, das scheint ihm doch gelungen zu sein. Furio Xerus schrieb: > also habe ich den vom Uno aufgespielt, Das halte ich für eine gute Idee! Und zeigt, dass sich unser Furio Xerus durchaus mit dem Thema beschäftigt hat. imkeller schrieb: > !!! Wake up !!! Also selber: "Augen auf, den Geist mach weit!" imkeller schrieb: > Der Nano Klone ist 100% kompatibel mit dem Original Ist er nicht! FTDI vs. CH340
imkeller schrieb: > Der Nano Klone ist 100% kompatibel mit dem Original (Open Source) ach echt, die verschiedenen USB Wandler unterschlägst du? CH340 vs. FTDI vs. da war noch einer.... was natürlich verschiedene Treiber benötigt.
Danke schonmal für die schnellen Antworten, obwohl ich mich doch frage wie der ein oder andere hier Beiträge liest. Wie gesagt, auf dem Uno funktioniert alles einwandfrei. Mich interessiert eher ob jemand schon mal so ähnliche Probleme mit einem Klon hatte und wie ich diese beheben kann. Ich bin kein Experte auf dem Gebiet, aber absolut bescheuert bin ich auch nicht. Die Sensoren sind fertige gekaufte (Anschlüsse sind GND, VCC, Sensorwert oder Zustand), als Versuch habe ich noch ein LDR nach Anleitung des Arduino Grundlehrgangs ausprobiert und habe genau das gleiche Ergebnis. Code habe ich wohl durch das speichern auf der Cloud zerschossen, aber vom Uno habe ich noch ein paar Bilder des Aufbaus. Stromversorgung ist ein 12V Netzteil das 1A liefert (die LED-Leiste zieht ca. 330 mA). Damit lief auf der Uno schon absolut problemlos. Mit dem Nano wurden natürlich die Pins angepasst und einen Verbindungsfehler kann ich auch ausschließen. Der einzige weitere Unterschied ist tatsächlich die Kabellänge von ca. 1 Meter. Hierbei verwende ich Dreiardige Leitungen mit je 0,25mm² ungeschirmt. Diese laufen aber nicht unmittelbar nebeneinander, sondern haben ca. 30 cm Luft zueinander, weil ich Störungen entgegenwirken wollte. Die Idee mit der Antenne nehme ich dankend an, das könnte durchaus mein Fehler sein. Vielen Dank für die konstruktiven Vorschläge.
Manuel H. schrieb: > Stromversorgung ist ein 12V Netzteil das 1A liefert (die LED-Leiste > zieht ca. 330 mA). Damit lief auf der Uno schon absolut problemlos. Kann sein... Nur: Der Regler des Nano ist mit 12V 330mA hoffnungslos überfordert. Heiß werden, muss er. Manuel H. schrieb: > Mich interessiert eher ob jemand schon mal so ähnliche Probleme mit > einem Klon hatte und wie ich diese beheben kann. Du hast was falsch gemacht. z.B. wichtige Parameter unbeachtet gelassen. Hältst aber geheim, was du falsch machst. Weiterhin: So keine Hilfe möglich. Tipp: 1. Verlasse die Jammerphase! 2. Trete in die Analysephase ein.
Furio Xerus schrieb: > Arduino Nano Klon macht aus 5 min 5 sec Das kannst Du mal sehen wie schnell der Klon ist. mfg Klaus
Arduino Fanboy D. schrieb: > Manuel H. schrieb: >> Stromversorgung ist ein 12V Netzteil das 1A liefert (die LED-Leiste >> zieht ca. 330 mA). Damit lief auf der Uno schon absolut problemlos. > > Kann sein... > Nur: Der Regler des Nano ist mit 12V 330mA hoffnungslos überfordert. > Heiß werden, muss er. Heiß wird nichts, der Mosfet ist recht stark. Es ist ein originaler IRF740. Sobald ich meinen Code wieder zusammen habe lade ich ihn auch hoch. Ich wende mich an euch, weil es nicht klappt wie ich es mir vorgestellt habe. Wenn ich einen Fehler gemacht habe möchte ich es wissen um daraus zu lernen. Sonst macht das alles doch gar keinen Sinn? Gruß und Danke Furio
Ich habe mal gelesen dass die Chinesen bereits Atmel Chips kopieren, wie damal die ftdi. Kann das die Ursache sein?
Manuel H. schrieb: > Der einzige weitere Unterschied ist tatsächlich die Kabellänge von ca. 1 > Meter. Hierbei verwende ich Dreiardige Leitungen mit je 0,25mm² > ungeschirmt. Das Kabel ist hoffentlich so angeschlossen, dass dort nicht der Strom für die LEDs drüber läuft bzw. der Spannungsabfall für den Arduino und damit für die Sensorauswertung unsichtbar ist. -> Skizze des Aufbaus
Runterholer C++ schrieb: > Ich habe mal gelesen dass die Chinesen bereits Atmel Chips kopieren, wie > damals die ftdi. Kann das die Ursache sein? Solche Gedankengänge sollte man erst erwägen, wenn alle anderen möglichen Ursachen zu 1000% ausgeschlossen sind. Denn kopierte Chips funktionieren normalerweise. Das galt auch damals für die FTDI Chips - die hatten funktioniert. Nur hat FTDI den dazu passenden Treiber zurückgezogen und durch einen anderen ersetzt, der die Chips "kaputt" machte.
Manuel H. schrieb: > Heiß wird nichts, der Mosfet ist recht stark. Es ist ein originaler > IRF740. Du sagtest, du hättest 12V angeklemmt. Siehe: Manuel H. schrieb: > Stromversorgung ist ein 12V Netzteil das 1A liefert (die LED-Leiste > zieht ca. 330 mA). Damit lief auf der Uno schon absolut problemlos. Der UNO mit 12V lese ich daraus! Stimmt nicht? OK... Aber mögen tue ich sie nicht, solche Verwirrspielchen. Manuel H. schrieb: > Wenn ich einen Fehler gemacht habe möchte ich es wissen um daraus zu > lernen. Sonst macht das alles doch gar keinen Sinn? Bisher gibst du uns keine Chance. Darum bezeichne ich das als Jammern. Also: Liefere Fakten! Ansonsten wird meine Unterstützung jetzt und hier enden.
Arduino Fanboy D. schrieb: > Also: > Liefere Fakten! Hast Du eine Art mit anderen Menschen umzugehen. Arbeite mal an Deiner sozialen Kompetenz.
Unmöglich schrieb: > Hast Du eine Art mit anderen Menschen umzugehen. Arbeite mal an Deiner > sozialen Kompetenz. Kaum bringt jemand die Sache auf den Punkt, schon wird an der sozialen Kompetenz gezweifelt. Die Welt besteht nicht nur aus rosa Wattebäuschchen.
Unmöglich schrieb: > Arduino Fanboy D. schrieb: >> Also: >> Liefere Fakten! > > Hast Du eine Art mit anderen Menschen umzugehen. Arbeite mal an Deiner > sozialen Kompetenz. Einfache klare Ansage. Weder Beleidungungen noch sonst irgend etwas sozial relevantes enthalten. Aber oft wird leider die Wahrheit sagen schon als Körperverletzung betrachtet.
my2ct schrieb: > Die Welt besteht nicht nur aus rosa Wattebäuschchen. Und selbst wenn, jemand der darüber jammert wird sich auch dort finden!
Arduino Fanboy D. schrieb: > Bisher gibst du uns keine Chance. > Liefere Fakten! Ein Foto hat er ja schon mal gezeigt, da sehe ich keinen Fehler. Aber auch keinen Arduino Nano Klon! Jetzt fehlt noch der Quelltext und der Schaltplan.
my2ct schrieb: > Kaum bringt jemand die Sache auf den Punkt, schon wird an der sozialen > Kompetenz gezweifelt. Wenn wir soziale Höhenflieger wären, würden wir nicht unsere Freizeit vor dem Computer verbringen, habe ich Recht? Irgend ein Haken ist immer.
Stefanus F. schrieb: > Irgend ein Haken ist immer. Wenigstens hast du es nicht mit "ck" geschrieben ;-)
Mit welchen Fuse-Einstellungen hast du den Bootloader aufgespielt?
Wie ich den Bootloader aufspiele habe ich mir in ein paar Foren zusammengelesen und es schlussendlich nach einem Youtube-Video umgesetzt: https://www.youtube.com/watch?v=oce7D72Mdwo Verwendet habe ich den Uno und die Arduino IDE, hier ist ja glücklicherweise alles hinterlegt was man braucht. Im beigefügten Schaltplan habe ich den LDR mal in der "Kennenlern"-Variante gezeichnet, weil ich einen Fertigen nicht gefunden habe. Aber genau so einen habe ich zu Testzwecken auch mal angehängt. Meinen Code konnte ich nochmal retten:
1 | int Light = A0; //Lichtsensor |
2 | int LightTrue = 500; //Lichtwert |
3 | int Movement = 2; //Bewegungsmelder |
4 | int Button = 3; //Ein-/Aus-Taster |
5 | const int LED = 4; //LED-PWM gesteuert |
6 | int Brightness = 100; //Helligkeit in % |
7 | int Time = 5; //Verweilzeit in Minuten |
8 | int Dimm = 100; //Ein und ausdimmen |
9 | int Counter = 0; //Schleifenzähler für Sekunden |
10 | |
11 | void setup() { |
12 | Serial.begin(9600); |
13 | pinMode(3, INPUT); |
14 | pinMode(4, OUTPUT); |
15 | pinMode(2, INPUT); |
16 | Time = Time * 60; //Macht aus Time Minuten |
17 | Brightness = 2.55 * Brightness; |
18 | }
|
19 | void loop() { |
20 | Light = analogRead(A0); |
21 | Button = digitalRead(3); |
22 | Movement = digitalRead(2); |
23 | Serial.print("Lichtwert: "); |
24 | Serial.print(Light); |
25 | Serial.print(" Bewegungsmelder: "); |
26 | Serial.print(Movement); |
27 | Serial.print(" Taster: "); |
28 | Serial.println(Button); |
29 | if (Light > LightTrue && Movement == HIGH || Button == HIGH) { |
30 | while (Dimm < Brightness) { //Hochdimmen |
31 | analogWrite(LED, Dimm); |
32 | Dimm++; |
33 | Serial.print (" Dimmwert: "); |
34 | Serial.println(Dimm); |
35 | delay(5); |
36 | }
|
37 | while (Counter < Time) { //Counter pro Sekunde |
38 | Serial.print(" Counter: "); |
39 | Serial.println (Counter); |
40 | Serial.print(" Sollwert: "); |
41 | Serial.print(Time); |
42 | Counter++; |
43 | delay(1000); //Warte 1 Sekunde |
44 | }
|
45 | while (Dimm > 100) { //Runterdimmen |
46 | analogWrite(LED, Dimm); |
47 | Dimm--; |
48 | Serial.print (" Dimmwert: "); |
49 | Serial.println(Dimm); |
50 | delay(5); |
51 | }
|
52 | }
|
53 | }
|
Das ist vielleicht nicht die zu erwartende Umsetzung, aber für mich war dieser Code am logischsten. Aber irgendwo muss ja ein Fehler sein...
Für mich nicht! Beispiel: > Counter++; Counter zählt einmal hoch bis zum Vergleichswert, und dann niemals wieder. > Time = Time * 60; //Macht aus Time Minuten Böse! Niemals sollte sich die Einheit ändern. Wenn, dann eher so:
1 | const unsigned long verweilzeit = 5UL * 60 * 1000; // ms Verweilzeit |
Was ich tun würde: Endliche Automaten bauen! Alle delay() eliminieren.
Einfache Dinge zuerst Teste den Blink Sketch 1 Sekunde ein und eine Sekunde aus ! Da kann man problemlos beurteilen ob 1 Sekunde stimmt !
Manuel H. schrieb: > int Light = A0; //Lichtsensor Mache da mal ein > const byte Light = A0; //Lichtsensor draus ... Dann wird dich diese Zeile anspringen > Light = analogRead(A0); und das, mit Fug und Recht
Hast Du keine Angst, dass der Aufbau schlecht riecht? Ich kenne das Teil nicht, aber alle Referenzen, die ich gesehen habe, sprechen von 5V Versorgungsspannung. Ich kenne auch den FET nicht, aber meist wird hier noch etwas Hühnerfutter verwendet (niedriger Reihenwiderstand; hoher gegen Masse). Was mir aber wirklich gefällt ist Dein R1. Hat der wirklich den Wert: Nix?
So .... Der FET ist kein LL Type. Auch fehlen ihm ein Pulldown und evtl ein Gate Widerstand. Pin 4 des Nano ist nicht PWM fähig. Ich schlage Pin 9 als Alternative vor. Hier ein primitiver Automat
1 | const byte light = A0; // Lichtsensor |
2 | const byte movement = 2; // Bewegungsmelder |
3 | const byte button = 3; // Ein-/Aus-Taster |
4 | const byte led = 9; // LED-PWM gesteuert |
5 | |
6 | const int lightTrue = 500; //Licht-schwell-wert |
7 | const unsigned long verweilzeit = 5UL * 60 * 1000; // ms Verweilzeit |
8 | const unsigned long dimmSpeed = 10; // ms - kleine Zahlen, hohe Geschwindigkeit |
9 | |
10 | |
11 | bool anforderung = false; // Dimm Anforderungsmerker |
12 | |
13 | |
14 | void anforderungErmitteln() |
15 | {
|
16 | if(analogRead(light) > lightTrue) |
17 | {
|
18 | if(digitalRead(button) || digitalRead(movement)) |
19 | {
|
20 | anforderung = true; |
21 | }
|
22 | }
|
23 | }
|
24 | |
25 | void dimmAutomat() |
26 | {
|
27 | static enum {StartDimm,UpDimm,VerweilDimm,DownDimm} state = StartDimm; |
28 | static unsigned long timestamp = 0; |
29 | static byte dimValue = 0; |
30 | |
31 | switch(state) |
32 | {
|
33 | case StartDimm : if(anforderung) |
34 | {
|
35 | state = UpDimm; |
36 | timestamp = millis(); |
37 | }
|
38 | break; |
39 | |
40 | case UpDimm : if(millis() - timestamp < dimmSpeed) break; |
41 | dimValue++; |
42 | analogWrite(led,dimValue); |
43 | timestamp = millis(); |
44 | if(dimValue > 254) state = VerweilDimm; |
45 | break; |
46 | |
47 | case VerweilDimm : if(millis() - timestamp < verweilzeit) break; |
48 | timestamp = millis(); |
49 | state = DownDimm; |
50 | break; |
51 | |
52 | case DownDimm : if(millis() - timestamp < dimmSpeed) break; |
53 | dimValue--; |
54 | analogWrite(led,dimValue); |
55 | timestamp = millis(); |
56 | if(dimValue < 1) |
57 | {
|
58 | state = StartDimm; |
59 | anforderung = false; // Anforderung konsumieren |
60 | }
|
61 | break; |
62 | }
|
63 | }
|
64 | |
65 | void setup() |
66 | {
|
67 | // pinMode(led, OUTPUT); // tut keine Not
|
68 | pinMode(button, INPUT); |
69 | pinMode(movement, INPUT); |
70 | }
|
71 | |
72 | void loop() |
73 | {
|
74 | anforderungErmitteln(); |
75 | dimmAutomat(); |
76 | }
|
Hey, danke für die schnelle Rückmeldungen. Arduino Fanboy D. schrieb: > Der FET ist kein LL Type. > Auch fehlen ihm ein Pulldown und evtl ein Gate Widerstand. Das stimmt, einen Gate Widerstand habe ich drin, nur vergessen einzuzeichnen. (Habe mir das Programm erst für diese Skizze rausgesucht und war wohl etwas schusselig) Braucht er einen Pulldown? Ich ging davon aus das er sich selbst entleert, wenn beim Gate keine Spannung mehr anliegt. Der Idee nach, er ist noch geschlossen und verliert die Spannung. Solange die Spannung ausreicht um zu schließen ist eine Verbindung zur Masse vorhanden. Ist die Spannung am Gate zu klein brauch ich auch keine Masse? Oder ist das nur ein Trugschluss? > Pin 4 des Nano ist nicht PWM fähig. > Ich schlage Pin 9 als Alternative vor. Danke für den Hinweis, da bin ich wohl auch in der Zeile verrutscht. Ich werde das mal ausprobieren und mich dann entsprechend melden. Vielen Dank für den Sinnvollen Content Gruß Furio
Du hast den Bootloader erst programmieren müssen? Kann es sein, dass da noch der int. Osz. mit 1Mhz aktiviert ist?
Manuel H. schrieb: > Braucht er einen Pulldown? Ich ging davon aus das er sich selbst > entleert, wenn beim Gate keine Spannung mehr anliegt. Wie sollte er das tun? Wohin? Manuel H. schrieb: > Oder ist das nur ein Trugschluss? Aber sowas von!
Manuel H. schrieb: > Die Sensoren sind fertige gekaufte (Anschlüsse sind GND, VCC, Sensorwert > oder Zustand), als Versuch habe ich noch ein LDR nach Anleitung des > Arduino Grundlehrgangs ausprobiert und habe genau das gleiche Ergebnis. Kannst du vielleicht mal versuchen, dir und uns klarzumachen, WIE du deine LEDs per PWM steuerst? "Die Leitungslänge sollte kein Problem sein, da ich ein 0,25mm² Kabel verwende und nur ca. 1 Meter Kabellänge habe..." LEDs sind schnell im Vergleich zu Glühbirnen. Und meterlange Leitungen sind prächtige Antennen, mit denen du prima stören kannst - dich selbst und andere. Wenn also du per PWM irgendwas analoges steuern willst, dann mach das über einen deftigen Tiefpaß, so daß dahinter vom PWM nix mehr zu sehen ist und nur noch dessen Mittelwert, also ne Gleichspannung auftritt. Und mit der steuerst du die Ansteuerung deiner LEDs - und zwar so, daß du den Strom durch die LEDs steuerst, nicht die Spannung. "ab etwa 115 (von 225) ist das Licht auf einen Schlag an..." Im Moment sieht mir das eher danach aus, als ob du dich wunderst, daß 3 in Reihe geschaltete LEDs erst bei ca. 8 Volt mit Leuchten anfangen und dann bei 9.5 Volt schon fast ausglühen. "Der Bewegungsmelder liefert gute arbeit, aber der Lichtsensor spinnt völlig." Ja eben! Wenn du die LEDs nicht per Gleichstrom leuchten läßt, sondern sie per PWM, also zerhackt leuchten läßt, dann kann es dir passieren, daß dein Lichtsensor völlig verschiedene Werte liefert, je nachdem, ob er grad in der Leuchtpause mißt oder dann, wenn die LEDs an sind. Fazit: Du hast dein Projekt nicht wirklich zuvor durchdacht. Das ist alles. W.S.
Etwas zur Grundbeschaltung eines FETs. Du kannst in Deiner Konfiguration einen FET als Kondensator betrachten. Ist der Ausgang, während des Einschaltens, undefiniert, so ist auch die Gate Spannung undefiniert. Die modernen FETs mögen aber nur "eindeutige" Zustände. Also entweder aus oder an. Mit dem "linearen" Zustand kann man sie prima in den Halbleiterhimmel schicken. Also wenn er, warum auch immer, nur ein bisschen leitet. Erst wenn sich der Rechner vom Einschaltschreck erholt hat, ist ein Ausgang definiert. Aus diesem Grunde spendiert man ihm einen hochohmigen Widerstand vom Gate gegen Masse. Je nach dem so um die 100K, sodass der Ausgang nicht belastet wird. Beim Einschalten sieht es wiederum so aus: Ein Kondensator muss geladen werden. Dies sollte so schnell wie möglich geschehen um den linearen Bereich zu übergehen. Aber ein guter Kondensator stellt auch einen Kurzschluss, gegen Masse, dar. Manche Mikroprozessoren mögen das aber nicht. Im schlimmsten Falle schickst Du den Ausgang ins Nirwana. In der nächsten Stufe resettest Du das Teil eventuell bei jedem Einschalten. Deshalb verpasst man dem Teil einen Reihenwiderstand im niederohmigen Bereich. Letzterer sollte aber wiederum nicht zu hoch sein, um nicht auf diesem Wege langsam Einzuschalten und so den linearen Bereich zu betreten. Die obigen Ausführungen gelten natürlich nicht für FETs, die explizit für den linearen Bereich geeignet sind. Diese haben aber, normalerweise nichts am Ausgang eines Mikrokontrollers zu suchen
:
Bearbeitet durch User
Sebastian S. schrieb: > Die obigen Ausführungen gelten natürlich nicht für FETs, die explizit > für den linearen Bereich geeignet sind. Diese haben aber, normalerweise > nichts am Ausgang eines Mikrokontrollers zu suchen Jetzt siehst du mich aber sehr erstaunt! Es gibt lineare FET und digitale FET? Wie kann man die im/am Datenblatt unterscheiden? Du meinst mit digitalen FET die ProFET? Nee... Kann auch nicht sein..... --- Nachtrag: Nichts gegen deine Erklärung. Die ist ok. Aber die Differenzierung, in analoge und digitale FET, finde ich sehr befremdlich.
Die modernen FETs erreichen ihre, z.T. phänomenalen, Werte nur im Schaltbereich also Gesperrt oder Leitend. Der Übergangsbereich ist dabei Tabu. Das hängt mit dem internen Aufbau der Leistungsfets zusammen. Aus diesem Grunde sollte man diesen Bereich so schnell als möglich durchlaufen. "Richtige" digitalen FETs (so man diesen Begriff überhaupt verwenden sollte), sind meist FETs mit integrierter, digitaler Logik.
Beitrag #5828342 wurde von einem Moderator gelöscht.
Hey alle zusammen, habe jetzt mal die zwei bereits gefunden Fehler ausgebügelt. Den Counter habe ich direkt nach der Schleife wieder auf 0 gesetzt und das Dimm-Problem ergibt sich durch einen PWM-fähigen Pin. Eine Sache habe ich jetzt aber noch nicht ganz verstanden: Wie schirme ich meine Signalleitung vom LDR ab? Nur mit einer Abschirmung oder kann das auch Softwareseitig behoben werden? Ich habe leider nichts zum Thema Antenne und Entstörung gefunden. Gruß Furio
Manuel H. schrieb: > Wie schirme ich meine Signalleitung vom LDR ab? Gar nicht. Schalte einen 100µF Kondensator parallel zum LDR. Das ist billiger und einfacher.
Stefanus F. schrieb: > Gar nicht. Schalte einen 100µF Kondensator parallel zum LDR. Das ist > billiger und einfacher. Also parallel zum LDR direkt? Wie kann ich das Problem angehen, wenn ich hier einen fertigen Sensor habe? Parallel zur Leitung? Sry für die vlt blöde Frage, aber ich weiß es in dem Punkt wirklich nicht besser.
> Also parallel zum LDR direkt? Ja. Der schließt alle eingestreuten Wechselspannungen quasi kurz. > Parallel zur Leitung? Ja. An welchem Ende, ist weitgehend egal. Ich würde ihn dort anschließen, wo sich die Auswertende Schaltung befindet.
Sebastian S. schrieb: > "Richtige" digitalen FETs (so man diesen Begriff überhaupt verwenden > sollte), sind meist FETs mit integrierter, digitaler Logik. : - ) Nennt man das dann nicht integrierte Schaltung (IC) in FET-Technologie? Es gibt Transistoren (unipolare und bipolare) die schlicht auf Schalteranwendungen getrimmt sind (und das dann auch im Datenblatt so bei Anwendungsmöglichkeiten publiziert wird). Kaufbare Transistoren bei denen der Bereich zwischen leitend und sperrend "tabu" ist dürften dann schon Exoten sein. Ein wirklicher Transistorschalter wäre das hier: https://www.kit.edu/kit/pi_2017_128_12-millionen-chf-fur-forschung-an-atomaren-bauteile.php und das Video dazu: https://www.youtube.com/watch?v=zHixKQVqFuQ&feature=youtu.be Aaaaaber: Diesen "DurchEinAtomSteuerbarerTransistor" gibt es im Laboraufbau schon ein paar Jahre, soviel ich weiß ist aber bei der Umsetzung in einen produktfähigen Baustein noch überhaupt gar nichts geschehen (schade eigentlich).
@Ralph Ich weis nicht, ob Du absichtlich alles falsch verstehst oder einfach nur genügsam bist. Klar kann man Schuhe, Strümpfe und Hosen in einen Sack stecken. Schreibt man dann noch Klamotten drauf stimmt es ja sogar. Es bleibt aber "Durcheinander". Ich habe an keiner Stelle von Transistoren gesprochen sonder explizit von FETs. Grundsätzlich haben Transistoren eine andere Struktur wie FETs. Leistungs-FETs wiederum sind anders aufgebaut als FETs die in der "normalen" Signalverarbeitung vorkommen. ICs die oft in MOS-Technologie aufgebaut sind sind wieder eine andere Schublade. Also bitte nicht alles in einen Sack.
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.