Schrankbeleuchtung- benötige Hilfe bei der Hardwareauswahl.

Es gibt auch noch das ReceiveDemo_Simple. Das spuckt einem auch die Codes aus. Ich arbeite immer damit. Es gibt allerdings Codes, die nicht mit der RCSwitch Library kompatibel sind.

Danke, das ReceiveDemo_Simple habe ich natürlich auch probiert... Es geht genau so wenig...evtl. die Warnung beim Compilieren gibt nen Hinweis dazu weshalb es nicht geht? Ich habe zu wenig Ahnung davon.

Möglichweise ist es auch so wie Du es sagst. Die Fernsteuerung gibt ein Code aus, womit der Arduino nicht klar kommt. (falsche lib?)

Hier habe ich einen ähnlichen Fall gefunden.
Klick

Dort schreibt jemand, dass man eine ander lib probieren sollte...

Zitat:
Und hast du mal eine andere Library versucht, z.B. die "VirtualWire.h", die tut es bei mir hervorragend.

Da müsste ich nur noch wissen, wo die zu finden und eizupflegen ist, damit ich es probieren kann...

Ich glaube dass ich das Zeug mit 433 Mhz vorerst belassen sollte, und mich auf die wesentliche Aufgabe konzentrieren sollte... spricht drei Schalter und Mosfet faden...

Gruß Lukas

knopers1:
Und hast du mal eine andere Library versucht, z.B. die "VirtualWire.h", die tut es bei mir hervorragend.

Da müsste ich nur noch wissen, wo die zu finden und eizupflegen ist, damit ich es probieren kann...

Ich glaube dass ich das Zeug mit 433 Mhz vorerst belassen sollte, und mich auf die wesentliche Aufgabe konzentrieren sollte... spricht drei Schalter und Mosfet faden...

Die VirtualWire wird dir hierbei nicht weiterhelfen, damit kannst du die Funksteckdosen nicht steuern.
Ich würde die auch vorschlagen, das Projekt erst ohne Funk abzuschließen und wenn es funktioniert, dich um die Funksteuerung zu kümmern.

Kann jemand drüber gucken??? Ich habe dies im Netz gefunden und für meine Schaltung angepasst. Die Schalter S1-S3 sind am 5V dran und D2 (5) angeschlossen. siehe Bild.
Noch zu meinem Verständniss....???
Ist jetzt der Pin D2 für den Sketch als Pin 2 zu bezeichnen, oder ist es doch der Pin (5) ???
Bis dato bin ich ausgegangen, dass der D2 auch als Pin 2 für Sketch zu benennen ist.. Ist es so?
Desweiteren würde ich hierbei die Zeit einbauen wollen, wo ich selbst definieren kann, wie schnell die LED´s faden sollen...Das Hier verstehe ich nicht (int fadeAmount = 5;) ??? Wofür steht es, und wofür die 5 ??? :smiley:

Anbei ein Versuch von mir.

const int buttonPin = 2;     // drei Schalter parallel an Pin 2
const int ledPin =  9;         // pwm ausgang des Nanos an Pin 9

// variable setzen
int buttonState = 0;         // variable for reading the switch status
int brightness = 0;
int fadeAmount = 5;

void setup() {
 // mache die LED Pin 9 als output
 pinMode(ledPin, OUTPUT);      
 // mache die Schalter/den Pin 2 zum Input:
 pinMode(buttonPin, INPUT);     
}

void loop(){
 //Frage den Status des Schalters ab: 
 buttonState = digitalRead(buttonPin);

 // schaue ob der Schalter gedrückt ist an  Pin 2.
 // wenn der Status ist LOW:
 if (buttonState == LOW) {     
   // fade LED on:    
   analogWrite(ledPin, brightness);  
   if (brightness < 255) {
     brightness = brightness + fadeAmount;
   }
 } 
 else {
   // fade LED off:
   analogWrite(ledPin, brightness); 
   if (brightness > 0) {
     brightness = brightness - fadeAmount;
   }
 }
 delay(30);
}

knopers1:
Den Seriellen Monitor habe ich auch gefunden. (siehe Bild)

Beim betätigen des Senders, sieht man eine Reaktion eines der LED am Arduino Nano. Die LED blink für die Zeit viel schneller wenn ich die Fernbedienung betätige. Es kommt aber nichts am serielen Monitor an. Dies bleibt leer.

Mich irritiert das. Das könnte die LED für die serielle Kommunikation sein. Leider zeigt dein Screenshot, wo man den seriellen Monitor findet (das wissen wir), aber nicht den Monitor selber. Es könnte z.B. im Monitor die Baudrate falsch sein, weshalb er nichts anzeigt.

Ja, das ist auch die LED von RX die schneller Blinkt wenn ich die Fernbedienung betätige!
Die Baudrate 57600 sowie 9600 habe ich ausprobiert.
Beim Hochladen sdes Sketches sieht man zum schluss irgendwo ein Eintrag mit 57600, deshalb auch dies probiert... Im Monitor sieht man nichts... keine Reaktion auf die Fernbedienung. Lediglich sieht man, dass die LED für die dauer des Drückens viel schneller blinkt. (Fast schon an bleibt..) Sonst blinkt es einfach nicht konstatnt!

knopers1:
Noch zu meinem Verständniss....???
Ist jetzt der Pin D2 für den Sketch als Pin 2 zu bezeichnen, oder ist es doch der Pin (5) ???
Bis dato bin ich ausgegangen, dass der D2 auch als Pin 2 für Sketch zu benennen ist.. Ist es so?

Du mußt vier verschiedene Bezeichnungen unterscheiden:

  • PD2: Port D Bit 2, interne Bezeichnung aus Sicht des Prozessors, wird bei Inline Assembler verwendet.
  • ATmega328 Pin 32: Pin des Prozessors, beim Nano nicht interessant, schon mehr, wenn Du das IC direkt verwendest wie beim ATtiny.
  • Pin 5 der Platine: dient nur der Orientierung und für ein Schaltbild.
  • 2: Name des Anschlusses innerhalb der Arduino-IDE, um innerhalb der Arduino-Familie eine gewisse Austauschbarkeit der Sketche zu gewährleisten. (Oder so ähnlich.) Auf der Nano-Platine mit "D2" wie "digital" beschriftet, beim UNO einfach nur "2".

const int buttonPin = 2; ist daher richtig.

knopers1:
Kann jemand drüber gucken???

Sieht gut aus.

Geschmackssache: Ich würde dem Gate einen Widerstand (10 k) gegen GND spendieren, um ein definiertes Verhalten des FET sicherzustellen, wenn der Nano-Ausgang hochohmig ist. Außerdem würde ich R1 entfernen, die Schalter gegen GND schalten und den internen PullUp verwenden.

knopers1:
Desweiteren würde ich hierbei die Zeit einbauen wollen, wo ich selbst definieren kann, wie schnell die LED´s faden sollen...Das Hier verstehe ich nicht (int fadeAmount = 5;) ??? Wofür steht es, und wofür die 5 ??? :smiley:

Mit delay(30) bestimmst Du ein Aktivitätsintervall, das brightness inkrementiert/dekrementiert. Du zählst von 0 bis 255. In Schritten von 1 dauert es 256x30ms = 7,68 Sekunden. Bei einer Schrittweite (fadeAmount) von 5 geht es schneller: 256x30ms/5 = 1,536 Sekunden. Aber eine größere Schrittweite macht die Darstellung auch gröber, weshalb ich lieber delay verkleinern würde. Wobei delay dann noch durch millis ersetzt werden muß, damit später die Fernbedienung eine Chance hat. Faden mit millis ist also zunächst Dein Thema.

wowwww, es geht... :slight_smile:

Ich muste aber eine kleine Änderung machen, da die Led´s geleuchtet haben, wenn die Tür zu war. Im offenem Zustand waren sie aus... Ich habe unten im Sketch das LOW gegen HIGH ersetzt und schon geht es richtig :smiley:

Desweitern habe ich den Parameter int fadeAmount = 5; =2 gesetzt und habe gehofft, dass die Zeit des Fadens länger wird. Komischerweise gingen die ganzen LED´s aus nachdem die volle Leuchtstärke erreicht worden ist. Weshalb? Ich habe mehrmalls probiert auch mit dem Wert =4 und auch nocheinmal compiliert und hochgeladen...Keine Änderung...

Den Wert wieder =5 gestellt und delay(30) auf (120) gestellt. Jetzt sieht es gut aus. Faden geht wesentlich länger.

@agmue
Vielen Dank für deine Mühe! Ich weiß es zu schätzen...
denoch verstehe ich etwas noch nicht... Ich fragte wie ich die Faden-Zeit verlägern könnte.

Zitat von Dir.

"Mit delay(30) bestimmst Du ein Aktivitätsintervall, das brightness inkrementiert/dekrementiert. Du zählst von 0 bis 255. In Schritten von 1 dauert es 256x30ms = 7,68 Sekunden. Bei einer Schrittweite (fadeAmount) von 5 geht es schneller: 256x30ms/5 = 1,536 Sekunden. Dies habe ich verstanden, jedoch konnte ich es nicht Umsetzen, da die LED´s sich abschalten, sobald die 5 gegen einen anderen Wert ersetzt werden.

Dann schreibst Du dies:

Aber eine größere Schrittweite macht die Darstellung auch gröber, weshalb ich lieber delay verkleinern würde. Wobei delay dann noch durch millis ersetzt werden muß, damit später die Fernbedienung eine Chance hat. Faden mit millis ist also zunächst Dein Thema."

Wieso verkleinern? Wenn ich doch die Zeit des Fadens verlängern möchte, muß delay nicht vergrößert werden? Sorry für die Fragen.. ich kappiere es nicht.

const int buttonPin = 2;     // drei Schalter parallel an Pin 2
const int ledPin =  9;         // pwm ausgang des Nanos an Pin 9

// variable setzen
int buttonState = 0;         // variable for reading the switch status
int brightness = 0;
[b]int fadeAmount = 5;[/b]

void setup() {
// mache die LED Pin 9 als output
pinMode(ledPin, OUTPUT);     
// mache die Schalter/den Pin 2 zum Input:
pinMode(buttonPin, INPUT);     
}

void loop(){
//Frage den Status des Schalters ab:
buttonState = digitalRead(buttonPin);

// schaue ob der Schalter gedrückt ist an  Pin 2.
// wenn der Status ist LOW:
[b]if (buttonState == HIGH) { [/b]   
  // fade LED on:   
  analogWrite(ledPin, brightness); 
  if (brightness < 255) {
    brightness = brightness + fadeAmount;
  }
}
else {
  // fade LED off:
  analogWrite(ledPin, brightness);
  if (brightness > 0) {
    brightness = brightness - fadeAmount;
  }
}
[b]delay(30);[/b]
}

Warum setzt du deinen Sketch nicht in Code-Tags, wie wir das auch machen ?
Schaltfläche im Editorfenster "</>" verwenden. Dann ist dieser auch besser lesbar.

Jetzt wo Du es erwähnst , probiere ich es beim nächsten mal... Sorry, ich muss mir dies eingewöhnen.

knopers1:
Jetzt wo Du es erwähnst , probiere ich es beim nächsten mal... Sorry, ich muss mir dies eingewöhnen.

Das kannst du noch nachträglich in deinem Post machen.

Beitrag bearbeiten, Sketch markieren und die Schaltfläche klicken.

knopers1:
Vielen Dank für deine Mühe! Ich weiß es zu schätzen...

Danke, liest man mal gerne :slight_smile:

knopers1:
Wieso verkleinern? Wenn ich doch die Zeit des Fadens verlängern möchte, muß delay nicht vergrößert werden?

Was Du möchtest, wußte ich nicht, daher habe ich versucht, deutlich zu machen, welche Wirkung fadeAmount und delay, nämlich eine reziproke (entgegengesetzte):

kürzeres Faden: fadeAmount größer, delay kleiner
längeres Faden: fadeAmount kleiner, delay größer

knopers1:
Desweitern habe ich den Parameter int fadeAmount = 5; =2 gesetzt und habe gehofft, dass die Zeit des Fadens länger wird. Komischerweise gingen die ganzen LED´s aus nachdem die volle Leuchtstärke erreicht worden ist. Weshalb? Ich habe mehrmalls probiert auch mit dem Wert =4 und auch nocheinmal compiliert und hochgeladen...Keine Änderung...

Der Wert 255 ist weder durch 4 noch durch 2 teilbar. Die Integer-Variable brightness zählt bis 256, dann wird dieser Wert in byte verwandelt, was den Wert 0 ergibt und die LEDs ausschaltet.

Mein Tipp:

// int fadeAmount = 1;
...
    if (brightness < 255) {
      brightness++;
      analogWrite(ledPin, brightness);
    }
...
    if (brightness > 0) {
      brightness--;
      analogWrite(ledPin, brightness);
    }
...
  delay(24);

@agmue,

Vielen Dank, ich habe deine Änderung direkt ausprobiert. Läuft viel geschmeidiger wie dies, was ich teilweise fabriziert habe. Ich habe viel von Dir gelernt! Besten dank.

Jetzt kommt eine weitere Frage.

Ich habe einen DigiSpark bestellt. Dieser lässt sich bekannterweise mit einem Arduino Uno flashen.
Zumindest habe ich ein paar gute Anleitungen gefunden. Desweiteren ist dort bereits ein Spg.-Regler eingebaut, Die Versorgungspannung des Attiny85 vom Digispark ist sehr flexibel. Im Datenblatt steht dort 7-35V. Das kommt mir gerade gelegen, da bereits eine 12V Spg.versorgung für den LED-Lichtschlauch vorhanden ist.

Ich habe aber zur Zeit nur einen Nano. In ein paar Wochen sollte noch ein Mega aus China hier eintreffen.

Lässt sich mit dem Nano auch ein Attiny85 flashen? Jemand damit Erfahrung gemacht?

knopers1:
Lässt sich mit dem Nano auch ein Attiny85 flashen? Jemand damit Erfahrung gemacht?

Ja, gerade probiert mit einem ATtiny85. Gleiche Verkabelung wie beim UNO :slight_smile:

besten Dank, dann versuche ich das ganze Zeug auf den Attiny85 zu portieren. Danach versuche ich es halbwegs auf eine Lochrasterplatine unterzubringen.

Hallo,

bin gerade dabei die Schaltung auf die Lochrasterplatine zu planen. Angedacht war die 12V für den LED-Streifen auch als Spg.versorgung für den Nano zu nutzen. Laut Datenblatt des Nanos könnte man eine externe Spg. zwischen 7-20V an Vin des Nanos anlegen. Der Spd-regler des Nanos wird aber verdammt warm, wenn ich die 12V anlege. Soll ich mir gedanken machen, oder ist es normal und auf dauer nicht schädlich...
Die 7V geben schön die Hitze ab...Ich habe bedenken, dass es abraucht.

Der Spannungsregler wandelt die überschüssige Energie in Wärme um, das ist normal. Ich nutze daher gerne Step-Down-Schaltregler, die werden nicht heiß. Zusammen mit einem Schrank wohl die bessere Wahl.

knopers1:
dann versuche ich das ganze Zeug auf den Attiny85 zu portieren.

Das soll ein nackter attiny85 werden, kein Digispark?
Dann brauchst du sowieso einen 12V->5V Regler, das sollte dann ein Stepdown werden.

Danke für euere Hilfe...

das soll ein Nano oder Digispark sein. Sie sollten aber laut Datenblatt beide 12V ohne bedenken abkönnen...
Jetzt habe ich einen LS7809 gekauft :frowning: Mein Gedanke war die Spg. auf 9V runter zu kriegen, dann erst auf Vin des Nanos oder Digisparks.

l7809-voltage-regulator simple circuit.jpg

Das bringt nicht viel. Der 7809 ist genau so wie der Regler auf dem Nano ein Regler, der den Strom verheizt. Vorteil ist lediglich, dass die Verlustwärme auf zwei Teile verteilt wird. Effizient sind die Step-Down-Regler, da sie die Energie wandeln. Er ist Vergleichbar mit einem Getriebe. Soll ein Antriebsrad langsam laufen, dann kannst du ein Getriebe nutzen und hast kaum Verluste, oder du machst eine dicke Bremse dran, die einfach das Rad durch Reibung runterbremst und heiß wird, dann hast du einen Linearregler wie den auf dem Nano oder den 7809.