Forum: Mikrocontroller und Digitale Elektronik Arduino Nano Klon macht aus 5 min 5 sec


von Furio Xerus (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

Zeige deinen Quelltext, ein Foto vom Aufbau und den Schaltplan.

von Einer K. (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

Noch eine Frage dazu: Tritt das Problem nur beim Arduino Nano Klon auf, 
ein originaler geht aber?

von Mario M. (thelonging)


Lesenswert?

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.

von Jens M. (schuchkleisser)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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?

von imkeller (Gast)


Lesenswert?

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

von Einer K. (Gast)


Lesenswert?

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

von Joachim B. (jar)


Lesenswert?

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.

von Manuel H. (furioxerus)


Angehängte Dateien:

Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von Klaus R. (klara)


Lesenswert?

Furio Xerus schrieb:
> Arduino Nano Klon macht aus 5 min 5 sec

Das kannst Du mal sehen wie schnell der Klon ist.
mfg Klaus

von Manuel H. (furioxerus)


Lesenswert?

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

von Runterholer C++ (Gast)


Lesenswert?

Ich habe mal gelesen dass die Chinesen bereits Atmel Chips kopieren, wie 
damal die ftdi. Kann das die Ursache sein?

von Wolfgang (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von Unmöglich (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Also:
> Liefere Fakten!

Hast Du eine Art mit anderen Menschen umzugehen. Arbeite mal an Deiner 
sozialen Kompetenz.

von my2ct (Gast)


Lesenswert?

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.

von Möglich (Gast)


Lesenswert?

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.

von Runterholer C++ (Gast)


Lesenswert?

my2ct schrieb:
> Die Welt besteht nicht nur aus rosa Wattebäuschchen.

Und selbst wenn, jemand der darüber jammert wird sich auch dort finden!

von Stefan F. (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von MaWin (Gast)


Lesenswert?

Stefanus F. schrieb:
> Irgend ein Haken ist immer.

Wenigstens hast du es nicht mit "ck" geschrieben ;-)

von Kontrolletti (Gast)


Lesenswert?

Mit welchen Fuse-Einstellungen hast du den Bootloader aufgespielt?

von Manuel H. (furioxerus)


Angehängte Dateien:

Lesenswert?

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

von Einer K. (Gast)


Lesenswert?

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.

von imkeller (Gast)


Lesenswert?

Einfache Dinge zuerst
Teste den Blink Sketch
1 Sekunde ein und eine Sekunde aus !
Da kann man problemlos beurteilen
ob 1 Sekunde stimmt !

von Einer K. (Gast)


Lesenswert?

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

von Sebastian S. (amateur)


Lesenswert?

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?

von Einer K. (Gast)


Lesenswert?

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
}

von Manuel H. (furioxerus)


Angehängte Dateien:

Lesenswert?

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

von Matthias S. (da_user)


Lesenswert?

Du hast den Bootloader erst programmieren müssen?

Kann es sein, dass da noch der int. Osz. mit 1Mhz aktiviert ist?

von Einer K. (Gast)


Lesenswert?

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!

von W.S. (Gast)


Lesenswert?

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.

von Sebastian S. (amateur)


Lesenswert?

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
von Einer K. (Gast)


Lesenswert?

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.

von Sebastian S. (amateur)


Lesenswert?

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.
von Manuel H. (furioxerus)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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.

von Manuel H. (furioxerus)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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

von Ralph S. (jjflash)


Lesenswert?

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

von Sebastian S. (amateur)


Lesenswert?

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