[Casecon] Light Glass [Worklog]

Also der kapazitive Sensor ist echt nichts, was einen überfordert ;) Aber ich kann verstehen, dass du ihn nicht verbauen willst - irgendwann wird's eben doch sehr umfangreich :ugly: Und mit deinen Arduinos hast du ja schon eine kleine Herausforderung angenommen :D
 
@MadPolygon
du meinst den Ultraschall Sensor, dort gab es Werte zum einstellen ja habe aber nicht weiter probiert.

@HighEnd111
Ja ich hatte das Tutorial dafür schon mal überflogen, war jetzt nichts wovor ich mich scheuen würde.
Genau die Herausforderung reicht mir erst mal.
In kommenden Projekten werde und muss ich komplexere Sachen einfließen lassen aber als Grundkurs sollte das jetzt erst mal reichen. ;)


Da gab es noch eine Frage von mir!
Ich darf den Treiber ja nicht ständig unter Strom lassen.
Kann ich den über einfache Befehle wie "LOW" oder "0" Werte programmieren oder muss ich mit einem Relay arbeiten?
 
Ach wenn ich das hier so mit lese bekomme ich ja schon richtig Lust mich selbst such in die Materie einzuarbeiten xD

Das letzte mal als ich sowas gestartet habe, hab ich mich bissl in Delphi eingelesen gehabt und dort ne Setup.exe erstellt, in welcher Sprache wird denn das Arduino beschrieben?
 
Üblicherweise in C mit ner standardbibliothek die die wichtigsten Sachen ab werk bereitstellt. Dazu noch ne IDE die darauf abgestimmt ist. @bennySB
 
Da gab es noch eine Frage von mir!
Ich darf den Treiber ja nicht ständig unter Strom lassen.
Kann ich den über einfache Befehle wie "LOW" oder "0" Werte programmieren oder muss ich mit einem Relay arbeiten?

Wenn ich das richtig gesehn habe, dann hat das Treiberboard keinen Enable Pin. Du hast aber zwei Pins die überbrückt sein müssen, damit das Board läuft. Wenn du die trennst, kannst du vermutlich das Board ausschalten.
 
Dank euch allen :daumen:

Benny ATAKKKKE ! Jetzt oder nie ! :D

Hmm Noname.... so wird's leider nicht klappen. Wenn die Tür zu ist kann ich keinen Pin mehr rausziehen.:what:
Das Problem war ja gleich bei meinen ersten Tests als ich alles ein paar Stunden laufen lies und am nächsten Tag der Treiber und sogar der Nano hin war.
Übrigens kann ich mich nicht erinnern überhaupt 2 Nanos programmiert zu haben.
Und da bei dem zweiten Nano auch die grüne LED blinkte(WerksSketch), vermute ich das der von Hause aus hin war.(kann nichts drauf laden)

zurück zum Thema, komisch find ich halt wenn alles angeschlossen ist (IR FB, Treiber, Motor, Nano) und ich dann den Saft einschalte sind und bleiben alle Treiber LED´s aus.
Sobald ich die FB benutze macht der Motor was er soll, alle 4 LEDs blinken auf dem Treiber, wenn der Motor seine Steps durch hat bleiben 2 LEDs auf dem Treiber an.
Und dann denk ich mal wird er wieder nach und nach heiß. Mir wurde von anderer Seite ein Relay empfohlen:huh: , leichter gesagt als getan, ich bekomm das beiliegende SainSmart relay gar nicht zum laufen.
Also auch nicht separat mit eigenem Sketch.

Wenn euch nicht einfällt wäre das mal eine Frage fürs Arduino Forum.;)
Aber viele Probleme lösen sich von selbst, ich mach mit was anderem weiter.:lol:

Wird mich jetzt mal mit den RGBs auseinander setzen, also mit dem Tutorial von Crys, aber da er die LEDs ja per PC steuert weiß ich nicht ob es mir wirklich eine Hilfe ist.
Bin mal gespannt was das wird. Bitte Bittte bittte biddde laß es einfach sein.:ugly:

Nebenbei muss ich auch mal die Zahnstange auf den Winkel kleben und den Motor einbauen.

Eine neue AGB Halterung hab ich auch gebaut, muss nur noch die M5 Schrauben setzen und die Befestigung zum Case hin zuschneiden und schleifen.

Uh und wenn die Woche die Hardware kommt, was ich stark hoffe geht's richtig ab. Tray bearbeiten Löcher setzen IO-Shield Ausgang ausschneiden, Löcher für Kabel setzen etc. etc.:rollen::cool::D
 
Wenn ich mich jetzt nicht ganz irre hat Crysx zwar eine Bedienoberfläche gestaltet, aber werden die Einstellungen nicht im Arduino gespeichert?
 
Ja, bei ihm ist es so, dass ein minimaler Webserver aufm Rechner läuft, der die Oberfläche bereitstellt. Einstellungen werden dann auf dem Arduino gespeichert.
Wobei ich fast sagen würde, dass es besser wäre das Lauflicht standalone zu programmieren

Was mir auch noch einfällt: Ich fürchte fast, dass das Lauflicht ein eigener Arduino übernehmen muss, denn wenn ich mich nicht irre muss der LED Streifen bei nem Lauflicht ja ständig aktualisiert werden. Wenn dann noch anderer Kram mit dranhängt und mit Prozessorzeit gefüttert werden will, kann ich mir durchaus vorstellen, dass es zu Hängern kommt...
Deshalb wäre es vielleicht schlauer und nervenschonender wenn man das separat auf einem Nano laufen lässt.
Wie soll das Lauflicht eigentlich aussehen? Oder steht das noch in den Sternen? :D
 
:D Nee da steht nix in den Sternen.Schwirrt allet in meinem Kopp rum, muss nur sortieren.

Ok ich hab crys log auch nur flüchtig angeschaut bevor ich den arduino hatte.

Seperater arduino wäre Top dann könnt ich mir das verbinden mit dem Motorsketch sparen.

Wat soll ick sagen, ALARMANLAGE, halt.
Da gehen wohl die irrsinnigsten sachen aber
eigentlich wollte ich es mit dem Tastenfeld kombinieren, bei richtiger und falscher Eingabe die entsprechenden Alarmsignale grün/rot. Da ich es aber nicht geschafft oder verstanden habe mit dem Tastenfeld befehle zu steuern werd ich das mit dem Tastenfeld evtl sein lassen.

Da das Case zu großteil weiß leuchten wird soll dies das Lauflicht auch tun. Dann in verbindung mit dem Distanzsensor ein rotes licht wenn man zu nah dran ist, gleich danach evtl orange/grün(quasi abstand okay). Während der Motor läuft könnte es auch orange blinken oder laufen, bei 2 Arduinos aber schon wieder etwas komplex.
Bräuchte dann aber noch ne Fernbedienung wenn ich 2 Arduinos benutze. Das wird dann etwas Blöd, eine FB für die normalen Slight Rgbs eine Für den Motor und eine für das Lauflicht und andere Steuern den Spaß über Handy.(das wollte ich mir aber nicht antun).
Ist aber auch egal, im Grunde reicht es wenn ich das Lauflicht nur programmiere und gar nicht per FB steuer.(hätt halt nur gern mal so ein regenbogeneffekt gesehen xd)
 
Also ohne jetzt in die Materie einzusteigen müsste es doch mit deiner Alarmanlage nur eine if then else Verknüpfung sein.

If Code Eingabe korrekt then Licht grün leuchten else Licht rot leuchten.

Oder irre ich mich nun komplett?
Und dann den Zuständen rot und grün halt entsprechende Werte zuweisen damit auch die Farbe bei raus kommt xD
 
Kein Plan XD. Hab noch nicht viel dazu recherchiert. Hab die ganze Zeit noch nach einer Lösung zum abschalten des Motors gesucht, bzw nach Relais funktionsweise, Schaltungen und Sketchen.

Der Punkt denk ich mal wird die Adressgebung der einzelnen LEDs sein.Klar manchmal reicht ein blinken aber im großen und ganzen sollten es schon Lauflicht effekte sein sinst hätte ich mir keine digitalen kaufen brauchen.;-)
 
@benny Ja, stimmt im Prinzip so. Das Tastenfeld liefert ja ein bestimmtes Signal je nach Taste, das kann man in ner Variable entgegennehmen und mit switch-case oder if-else zur entsprechenden Funktion verzweigen die entweder die rote oder grüne LED anstellt.

@capten
Zum Tastenfeld mit Arlamsignalen in Form von LEDs: Du hast ja irgend eine Taste/Tastenkombi festgelegt, bei deren Eingabe die Tür auf geht, wenn dann auf dem Tastenfeld rumgedrückt wird musst eben mit dem hinterlegten vergleichen und entsprechend reagieren. Hier mal Pseudocode mit einer Taste zum öffnen:
Code:
TasteZumÖffnen = 1;
loop(){
     GedrückteTaste = NehmeSignalEntgegen();
     if (GedrückteTaste == TasteZumÖffnen){
          GrüneLedAn;
           RoteLedAus;}
     else{
          RoteLedAn;
          GrüneLedAus;
     }
}
Wie wärs noch zusätzlich mit ner dicken Sirene :ugly:?

Mit 2 Arduinos wäre das in der Tat problematisch. Ich würd erstmal das Lauflicht separat an einem Arduino, ohne Schnick Schnack wie Farbe ändern bei Näherung, zum Laufen bringen. Später kann man ja dann noch probieren, ob man den Distanzsensor mit Lauflicht zusammensteckt (sofern der Distanzsensor nicht noch was anderes steuern soll). Dann hättest du nämlich schon mal eine Basis.
Das Problem mit den 2 FBs sollte man eigentlich lösen können, in dem man an beide Arduinos nen Empfänger hängt (vielleicht sogar mit einem, wenn man die Kabel aufteilt). Wenn der Arduino1 mit dem Lauflicht dann ein Signal bekommt zum Motor sarten das für den anderen Arduino2 bestimmt ist, muss der Arduino1 ja nicht drauf reagieren.
 
Ach das hört sich alles so leicht an bei dir.
Stimmt ne Siren muss ich mir noch besorgen und für die Leds werd ich auch noch was brauchen oder haben die Digitalen alles on Board?
Hätte irgendwo gelesen das jemand N-Kanal Transistoren einsetzt aber da waren keine digitalen.
 
Naja gesagt ist eben leichter als getan:D. Mir platzt auch als der Kopf wenn ich an sowas dran sitze:wow:.
Inwiefern was brauchen? 5v und Gnd vom Netzteil und die Datenleitung an den Arduino. Im Guide zu den Neopixel (teuer verkaufte WS1812) wird geschrieben, dass man zwischen den Arduino und dem LED Streifen noch nen 300-500 Ohm Widerstand packen soll, wobei mir aufgefallen ist, dass meine Streifen alle 50cm schon so nen Widerstand fest verlötet haben. Doppelt schadet aber eigentlich nicht, ich hab meine Streifen schon mit und ohne Widerstand an der Datenleitung betrieben.
Ansonsten musst du nur noch die FastLED Bibliothek laden. Da sind auch Beispiele dabei, unter anderem ein Regenbogen :D
 
Hmm Noname.... so wird's leider nicht klappen. Wenn die Tür zu ist kann ich keinen Pin mehr rausziehen.:what:

Schon klar, dass man da nicht selber den Pin zieht ;) Dachte da auch eher an die Verwendung eines Relais. Hatte aber noch eine Idee wie man das vielleicht im Code lösen kann. Was funktioniert denn mit dem Relais nicht? Im Netzt sieht die Verwendung davon sehr simple aus.

Sobald ich die FB benutze macht der Motor was er soll, alle 4 LEDs blinken auf dem Treiber, wenn der Motor seine Steps durch hat bleiben 2 LEDs auf dem Treiber an.

Kam mir grad wie der Blitz... die Leds zeigen vermutlich an welche Wicklung vom Motor gerade mit Strom versorgt wird. Wenn der Motor steht und Leds weiter leuchten heißt das für mich gerade, dass da weiter Strom fließt und den Treiber heiß werden lässt.
Ich würde vorschlagen nach dem Bewegen vom Motor einen MotorAus Befehlt zu senden mit
Code:
MotorAus();
Folgenden Code dann noch nach dem Loop einfügen:
Code:
 void MotorAus (){
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
Würde interessieren, ob die Leds danach noch leuchten und ob der Treiber weiter heiß wird. Und auch das Verhalten des restlichen Codes, also ob der Motor dann noch angeht...

Des weiteren hat mein Internetsuchen gezeigt, warum die Standard Arduino Stepper Bibliothek nicht so gut geeignet ist. Und zwar wird der Motor wohl am liebsten in Halbschritten betrieben. Die Stepper.h Bibliothek kann aber nur Vollschritte und das Teil wird wohl deswegen heißer.
Nette Animation die den Unterschied zw. Voll- und Halb- (bzw. Micro) Schritten zeigt. (Schrittmotor-und-BLDC-Motoren-Animation - Nanotec)
Daher der Vorschlag die AccelStepper Bibliothek zu verwenden

Code:
#include "AccelStepper.h"
#include "IRremote.h"

/*----- Variables, Pins -----*/
int receiver = 6; // Signal Pin of IR receiver to Arduino Digital Pin 6

/*-----( Declare objects )-----*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4
AccelStepper stepper(8, 8, 10, 9, 11, false);  //erzeugt eine Instanz der Stepper Klasse, was in der Klammer stehen muss sieht man am besten in der Doku zur Bibliothek.
                                               //"false" setzt den Treiber auf ausgeschaltet, so könnte er keinen Strom brauchen bzw. heiß werden, falls das nicht geht, das false löschen und Zeile 21 Kommentar wegmachen.
                                               //die erste 8 setzt die Instanz in den Halbschrittmodus. Zwecks anderer Modi siehe Dokumentation der Bibliothek. Dann kommen die 4 Anschlusspins, und dann noch das Disable Bit.
                                               
IRrecv irrecv(receiver);    // create instance of 'irrecv'
decode_results results;     // create instance of 'decode_results'

void setup()
{ 
  irrecv.enableIRIn(); // Start the receiver
  
  //stepper.disableOutputs();   
  /*Test um zu sehen, ob sich der Treiber damit ausschalten lässt. Beim erzeugen der Instanz oben in Zeile 10 wird er standardmäßig auf enable gesetzt. 
  Daher hier wieder auf disable, und er soll nur An sein wenn er sich tatsächlich bewegen soll... Kommentar entfernen falls das oben mit dem false nicht funktioniert
  Der Versuch ist hier bei den enable und disable Befehlen den Treiber in einen Low Power Modus zu versetzen, keine Ahnung ob das geht...*/
  
  stepper.setMaxSpeed(1000);   //In den Beispielen stand die Max Speed Begrenzung immer im Loop, da man das aber nur einmal setzen muss hab ichs hierhin gepackt. Über Tests muss hier noch die richtige Zahl raus gefunden werden. 
}

void loop()
{
if (irrecv.decode(&results)){ // Falls die Funktion ein Ergebnis wird dieses in results gespeichert. Falls kein Ergebnis, dann gibt die Funktion "false" und Code innerhalb von if{} wird nicht ausgeführt.

  if (results.value == 16724175){
     
     motorLaufen(500, 200);   /*Funktionsaufruf, diesen kannst du immer wiederverwenden, ohne den Code nach dem Loop wieder schreiben zu müssen. 
                              Die erste Zahl gibt die Geschwindigkeit vor (positiv eine Richtung, negativ die andere), die zweite die Dauer wie lange die Speed gefahren wird.*/
          
     irrecv.resume(); // reciever bereit machen für weiteren Empfang
  }
  
  if (results.value == 16718055){
     motorLaufen(-500, 200);  
     irrecv.resume(); // reciever bereit machen für weiteren Empfang
  }

}  


}/* --end main loop -- */

void motorLaufen(int mSpeed, int mDauer){   /* Hier kann man ganz gut das Konstrukt sehen, wie man Funktionen baut. Das void am Anfang bedeutet, dass die Funktion keinen Wert zurück gibt (z.B. Ergebnis einer Berechnung)
                                               Dann kommt der Name gefolgt von (){}. Innerhalb der Klammer stehen die Variablen die der Funktion übergeben werden 
                                               (Typ und Name werden definiert, über den Namen kann innerhalb der Funktion die Variable verwendet werden)
                                               Innerhalb der geschweiften Klammern kommt der auszuführende Code. Variablen die hier definiert werden sind "privat" und können nur innerhalb der Funktion verwendet werden,
                                               für den Loop oder andere Funktionen sind sie nicht existent. Variablen die außerhalb von Funktionen definiert werden sind "global" und können von allen Funktionen verwendet werden.
                                               So könnte z.B. diese Funktion den Wert der "int receiver" vom Anfang ändern, Aus dem Loop kann aber die "int mSpeed" nicht geändert werden.*/  
     stepper.enableOutputs();
     delay(20);   ////delay um dem Treiber Zeit zu geben um einzuschalten, teste mal ob man das weglassen kann.
     stepper.setSpeed(mSpeed);
     stepper.runSpeed();
     delay(mDauer);  //ich weiß, ich hab geschrieben, dass delays böse sind... aber um den Code zu testen gehts so viel einfacher und schneller, wenns geht kann man das sauber ohne delay machen
     stepper.stop();
     stepper.disableOutputs();
     delay(20);  //delay um dem Treiber Zeit zu geben um auszuschalten, teste mal ob man das weglassen kann.
     
     /*insgesamt ist das Konstrukt hier noch eine ziemliche Krücke!!! Ich hab schon ne weile nicht mehr damit gearbeitet und hab grad nicht auf Anhieb gefunden was für deine Anwendung am schönsten funktioniert.*/ 
}

Zusammen kopiert (und umgeschrieben) von Neil Kenyon's Blog: Arduino controlling Stepper... | element14 oder Stepper 28BYJ-48 an UNO


Hab auch noch ein sehr schickes Tutorial zum Keypad gefunden (Folientastatur (Membran Keypad) mit Arduino benutzen | sweet pi – sweet home). Wie die Pins anzuschließen sind sieht man hier ganz gut ( How to Connect and Read a Keypad with an Arduino). Hier wird auch wieder eine Bibliothek verwendet ;)
Der Code könnte so aussehen:
Code:
#include "AccelStepper.h"
#include "Keypad.h"

/*-----( Declare objects )-----*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4
AccelStepper stepper(8, 8, 10, 9, 11, false);  //erzeugt eine Instanz der Stepper Klasse, was in der Klammer stehen muss sieht man am besten in der Doku zur Bibliothek.
                                               //"false" setzt den Treiber auf ausgeschaltet, so könnte er keinen Strom brauchen bzw. heiß werden, falls das nicht geht, das false löschen und Zeile 21 Kommentar wegmachen.
                                               //die erste 8 setzt die Instanz in den Halbschrittmodus. Zwecks anderer Modi siehe Dokumentation der Bibliothek. Dann kommen die 4 Anschlusspins, und dann noch das Disable Bit.

//Deklarationen Keypad
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
 
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
 
//Hier die richtigen Pins eintragen!!! Anschlussgrafik gibt es z.B. hier http://www.learningaboutelectronics.com/Articles/Arduino-keypad-circuit.php
byte rowPins[numRows] = {9,8,7,6}; 
byte colPins[numCols]= {5,4,3,2}; 
 
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
 

void setup()
{   
  //stepper.disableOutputs();   
  /*Test um zu sehen, ob sich der Treiber damit ausschalten lässt. Beim erzeugen der Instanz oben in Zeile 10 wird er standardmäßig auf enable gesetzt. 
  Daher hier wieder auf disable, und er soll nur An sein wenn er sich tatsächlich bewegen soll... Kommentar entfernen falls das oben mit dem false nicht funktioniert
  Der Versuch ist hier bei den enable und disable Befehlen den Treiber in einen Low Power Modus zu versetzen, keine Ahnung ob das geht...*/
  
  stepper.setMaxSpeed(1000);   //In den Beispielen stand die Max Speed Begrenzung immer im Loop, da man das aber nur einmal setzen muss hab ichs hierhin gepackt. Über Tests muss hier noch die richtige Zahl raus gefunden werden. 
}

void loop()
{  
  char keypressed = myKeypad.getKey(); //Tastedruck am Keypad erfassen
  
  if (keypressed == 'A') { //Falls der Tastendruck A war dann Tür öffnen usw... Welche Zeichen da tatsächlich empfangen werden müsste über den Seriellen Monitor rausgefunden werden.
                           // und ob die Zeichen um das A stimmen bin ich mir grad nicht sicher, könnte auch sein, dass da "" hin muss....
    motorLaufen(500, 200);
  } 


}/* --end main loop -- */

void motorLaufen(int mSpeed, int mDauer){   

     stepper.enableOutputs();
     delay(20);   ////delay um dem Treiber Zeit zu geben um einzuschalten, teste mal ob man das weglassen kann.
     stepper.setSpeed(mSpeed);
     stepper.runSpeed();
     delay(mDauer);  //ich weiß, ich hab geschrieben, dass delays böse sind... aber um den Code zu testen gehts so viel einfacher und schneller, wenns geht kann man das sauber ohne delay machen
     stepper.stop();
     stepper.disableOutputs();
     delay(20);  //delay um dem Treiber Zeit zu geben um auszuschalten, teste mal ob man das weglassen kann.
      
}

Bin sehr gespannt ob du damit was anfangen kannst!
Lieben Gruß
 
UI, kaum schreibt man hier gibts n haufen neuen Input.

Wat soll ick sagen, ALARMANLAGE, halt.
Da gehen wohl die irrsinnigsten sachen aber
eigentlich wollte ich es mit dem Tastenfeld kombinieren, bei richtiger und falscher Eingabe die entsprechenden Alarmsignale grün/rot. Da ich es aber nicht geschafft oder verstanden habe mit dem Tastenfeld befehle zu steuern werd ich das mit dem Tastenfeld evtl sein lassen.

Genauso hätte ich mir das auch vorgestellt mit dem Tastenfeld. Mann muss erst den richtigen Code eingeben um den Arduino zum Steuern zu "aktivieren". Natürlich mit roter und grüner Led dazu (daher hatte ich dir auch die Schieberegister mitgeschickt ;) )
Wenn er offen ist, kann die Tür betätigt werden, das Lauflicht betätigt werden oder der Rechner angeschaltet werden (sowohl über die IR als auch das Tastenfeld). Das wieder Sperren kann man entweder über das Keypad machen oder ein Timeout, nach 1min wechselts wieder in den Gesperrt Zustand.

Das würde sich auch im Code relativ simple machen lassen, da man die Funktionen gut voneinander trennen kann. Es wird global eine Variable gesetzt, die entweder "gesperrt" oder "offen" ist, und in jeder Funktion wird erstmal geprüft, ob sie überhaupt etwas machen darf.

Zum Lauflicht kann ich noch nix sag, da ich mir das noch nicht angeschaut habe. Jedoch fällt mir zu den 2 Arduinos ein, dass man die auch gut untereinander kommunizieren lassen kann. So könnte man einen als Hauptprogramm verwenden und den anderen für das Lauflicht. Wenn das Licht laufen soll, schickt der Haupt-Arduino ein Signal an den zweiten, welcher dann die Funktion eigenständig ausführt.
Dann brächtest du keine zwei Fernbedienungen, da alle Eingabegeräte an einem hängen, der den zweiten dann nur steuert...
 
Zum Lauflicht kann ich noch nix sag, da ich mir das noch nicht angeschaut habe. Jedoch fällt mir zu den 2 Arduinos ein, dass man die auch gut untereinander kommunizieren lassen kann. So könnte man einen als Hauptprogramm verwenden und den anderen für das Lauflicht. Wenn das Licht laufen soll, schickt der Haupt-Arduino ein Signal an den zweiten, welcher dann die Funktion eigenständig ausführt.
Dann brächtest du keine zwei Fernbedienungen, da alle Eingabegeräte an einem hängen, der den zweiten dann nur steuert...

Die Idee hatte ich auch. Fragt sich, ob sich capten das zumuten will :D.
 
Finde deine Idee da auch sehr gut. Vor allem wenn das Led Lauflicht wirklich so aufwändig ist, dann sollte man das auch so machen, da sonst die anderen Sachen nicht mehr gescheid laufen. Hab aber mit den Neopixel gar keine Erfahrungen.
Ich auch nur relativ begrenzt. In meinem Build-Log hab ich ne GUI geschrieben, mit der man Farbe und Helligkeit per Mausklick ändern kann. Das ist allerdings relativ einfach, da der LED Streifen ja nur einmal aktualisiert werden muss.
Eigentlich wollte ich auch noch verschiedene vorprogrammierte Animation bereitstellen aus denen man dann auswählen kann :D. Da die Animationen ja immer in Loops laufen und ich auf der seriellen Schnittstelle nach Befehlen lauschen muss, wird es da vermutlich je nach Animation zu Hängern kommen wenn man zwischendrin immer die serielle Schnittstelle abhört. Vielleicht probier ich das wirklich mal aus mit 2 Arduinos. Der eine lauscht aufm COM Port nach Befehlen, wenn was ankommt wird am 2ten ein Interrupt per Pin ausgelöst und der erste übermittelt den Befehl an den 2ten.
 
Zurück