Elektrischen Schalter ansteuern

braadert

Erfahrener Benutzer
#1
Servus,

ich habe seit neuestem einen Summensignalempfänger für die MultiWii und müsste jetzt einen elektrischen Schalter ansteuern lassen.
Das ganze soll mit AUX 3 passieren. Wie gehe ich da vor und vor allem, wo muss ich den Schaltbaustein am Arduino anschliessen?

Danke

Gruß
Daniel
 

Roberto

Erfahrener Benutzer
#2
Hi!

Ich habe das zwar noch nicht probiert, aber m.E gibt es mehrere Möglichkeiten je nach dem was Du schalten möchtest und je nach dem, ob Du den Code umstricken willst.

Möglichkeit ohne Codeveränderung:
1. Du kaufst Dir ein RC Schaltmodul, wenn Du noch keines hast.
z.B http://www.conrad.de/ce/de/product/191779/Conrad-SMD-Leistungsschalter (gibt es auch als Relais Ausführung)
2. Du schliesst es als Camera Trigger beim Promini an "A2" an und aktivierst es in der Config.h
/* camera trigger function : activated via Rc Options in the GUI, servo output=A2 on promini */
//#define CAMTRIG
#define CAM_SERVO_HIGH 2000 // the position of HIGH state servo
#define CAM_SERVO_LOW 1020 // the position of LOW state servo
#define CAM_TIME_HIGH 1000 // the duration of HIGH state servo expressed in ms
#define CAM_TIME_LOW 1000 // the duration of LOW state servo expressed in ms
3. Du aktivierst in der Gui die passende Box bei Camtrig.
Das müsste funktionieren.

LG
Rob
 

Roberto

Erfahrener Benutzer
#4
@braadert: Kein Problem! Wenn Du spezielle Wünsch hast, müssten wir GEMEINSAM die Software umstricken, dürfte aber kein Problem sein.



LG

ROb
 

braadert

Erfahrener Benutzer
#5
Habe grad mal alles so eingestellt.

Jetzt hab ich nur das Problem das mein Schalter ein Dauersignal brauch. Scheint wohl bei Camtrig nicht vorhanden zu sein.

Licht lässt sich ausschalten und bleibt aus. Schalte ich es ein blinkt das ganze. Kann ich das irgendwie ändern?
 

Roberto

Erfahrener Benutzer
#6
Du könntest versuchen, die "#define CAM_TIME_HIGH 1000" auf z.B 600000 für 10 Minuten zu setzen, nur dann müsste Dein Licht für 10 Minuten an bleiben!
Ich schau mal in den Code

LG

Rob
 

Roberto

Erfahrener Benutzer
#7
Suche unter "Output" diesen Code (ca. Zeile 1110)

Code:
  /****************                    Cam trigger Sevo                ******************/
  #if defined(CAMTRIG)
    static uint8_t camCycle = 0;
    static uint8_t camState = 0;
    static uint32_t camTime = 0;
    if (camCycle==1) {
      if (camState == 0) {
        servo[2] = CAM_SERVO_HIGH;
        camState = 1;
        camTime = millis();
      } else if (camState == 1) {
       if ( (millis() - camTime) > CAM_TIME_HIGH ) {
         servo[2] = CAM_SERVO_LOW;
         camState = 2;
         camTime = millis();
       }
      } else { //camState ==2
       if ( (millis() - camTime) > CAM_TIME_LOW ) {
         camState = 0;
         camCycle = 0;
       }
      }
    }
    if (rcOptions[BOXCAMTRIG]) camCycle=1;
  #endif
Und ersetze ihn durch diesen hier:

Code:
  /****************                    Cam trigger Sevo                ******************/
  #if defined(CAMTRIG)
    if (rcOptions[BOXCAMTRIG])  servo[2] = CAM_SERVO_HIGH;
    if (!rcOptions[BOXCAMTRIG]) servo[2] = CAM_SERVO_LOW;
  #endif
Die "Zeitschaltuhr" ist jetzt weg. So lange Dein zugewiesener Schalter den Camtrigger aktiviert, wird auf Pin A2 "CAM_SERVO_HIGH" anliegen, sonst CAM_SERVO_LOW.

Entsprechend reduzieren sich die Einstellmöglichkeiten in Deiner Config.h auf diese 3 Werte:
#define CAMTRIG
#define CAM_SERVO_HIGH 2000 // the position of HIGH state servo
#define CAM_SERVO_LOW 1020 // the position of LOW state servo

LG

Rob

P.s.: Hoffentlich ist das die Lösung für Dein Problem.
 

braadert

Erfahrener Benutzer
#8
Danke,
das werd ich morgen nochmal testen. Hatte das mit der Zeit auch schon irgendwie im Kopf gehabt, nur war ich mir nicht sicher ob ich das einfach so machen kann.
Das blinken kommt auch von meinem Schalter, das ist die Failsaveoption von dem Ding.
 

braadert

Erfahrener Benutzer
#10
Ja hat es ;)

Ach man, weisst ja bestimmt wie das ist. Sowas will man noch testen bevor man nicht richtig schlafen kann ;)

Tausend Dank, habs grad mal geändert, hochgeladen und ja, es klappt Einwandfrei.
 

Roberto

Erfahrener Benutzer
#11
Danke für Dein Feedback! Du konntest gut schlafen! So funktioniert die Gemeinschaft. Problem, Lösungsvorschlag, Test, Ergebnis: Fehlschlag/Erfolg. Auch ein Fehlschlag ist ein Ergebnis aus dem andere einen Nutzen ziehen können. Vielleicht sollten wir unsere gemeinsame Lösung für alle die ein ähnliches Problem haben, und auf den Camtrigger pfeifen, irgendwo als Lösungsvorschlag sammeln? Hast Du eine Idee wie und wo? So versinkt es im Nirvana.
LG
Rob
 

braadert

Erfahrener Benutzer
#12
Super Idee.

Es gibt doch dieses Wiki hier.

Oder man könnte es ganz oben im WiiCopter Forum anpinnen, den Thread geschlossen lassen und sowas dann einen Moderator dort einfügen lassen.

In diesem Beispiel wäre es dann eine Änderung des Programmcodes womit man am Camtrigger Ausgang ein Signal High/Low Signal ausgibt welches dann halt nicht Zeitgesteuert ist.
Um, wie in meinem Fall, einen elektrischen Schalter anzusteuern.

Hallo Mods,
Was haltet ihr davon? ;)
 
#13
Hallo,
Ich hab das MWC light von Flyduino ( http://flyduino.net/MWC-Light )
Da kann man ja bei der Ansteuerung wählen ob Schalter oder Proportional Geber.
Ich würde das gerne über ein Poti meiner MX16 ansteuern. Den Sketch hab ich so wie auf der ersten Seite von Roberto beschrieben geändert . Es funktioniert leider nicht(mit dem Poti) da man in der Gui nur low/mid und high für den Camtrigger anwählen kann. Ist das irgendwie machbar, mit Abänderung des Sketches oder soll ich es einfach auf einen Schalter legen? Mit Schalter funktioniert auch, aber über Poti würde es mir besser gefallen.

Ach so, ich benutze einen Jeti Satellit als Empfänger. Deshalb kann ich es nicht in einen freien Kanal einstecken.

Danke und Gruß
Dirk
 

braadert

Erfahrener Benutzer
#14
Bin mir jetzt nicht sicher, aber mit nem Poti sollte das auch über Low/High gehen. Die Ausgabe ist ja im Prinzip nichts anderes.

Nur die Helligkeit lässt sich damit nicht regeln.
 
FPV1

Banggood

Oben Unten