Multiwii 2.2 LED Beleuchtung steuern?

#1
Hallo zusammenm

ich suche eine Möglichkeit meinen Copter zu beleuchten ;).

Die LED Transistor Schaltung funktioniert soweit, nun muss ich nur den Transistor über einen 5 Volt Pegel ansteuern, meine Idee war ein NE555 oder ein Arduino. Allerdings sitzt auf dem Flight Controller Board (bei mir dieses: http://hobbyking.com/hobbyking/stor...a32U4_Flight_Controller_USB_BARO_ACC_MAG.html) ja bereits ein Arduino.

Im Multiwii Code habe ich folgende Befehle gefunden:

//#define LED_FLASHER
//#define LED_FLASHER_DDR DDRB
//#define LED_FLASHER_PORT PORTB
//#define LED_FLASHER_BIT PORTB4
//#define LED_FLASHER_INVERT
//#define LED_FLASHER_SEQUENCE 0b00000000 // leds OFF
//#define LED_FLASHER_SEQUENCE_ARMED 0b00000101 // create double flashes
//#define LED_FLASHER_SEQUENCE_MAX 0b11111111 // full illumination
//#define LED_FLASHER_SEQUENCE_LOW 0b00000000 // no illumination

Kann mir jemand erklären wie diese Befehle zu benutzen sind ?

Reichen würde mir ein Simples Blinklicht, Ideal wäre eine Ansteuerung über die Fernsteuerung.
 
#2
Geschafft:

Also hier wird der Port defeniert:

#define LED_FLASHER_DDR DDRB
#define LED_FLASHER_PORT PORTB
#define LED_FLASHER_BIT PORTB4

In meinem Falle musste ich erstmal sehen welcher Port an meiner FC auf den Steckplatz 12 führt:

http://arduino.cc/en/Hacking/PinMapping32u4

Es ist also PD6 (Digital Pin 12)

Also den Sketch folgendermaßen anpassen:

#define LED_FLASHER_DDR DDRD
#define LED_FLASHER_PORT PORTD
#define LED_FLASHER_BIT PORTD6

Nun den LED_Flasher aktivieren ("//" entfernen) dann gibts in Multiwii die neuen Optionen (LED Max und LED Low)

Die Seqeunzen werden folgedermaßen angepasst: 1 Bit bestimmt die Leuchtdauer für 1/8 Sekunden, also konkret:

00000000 - Ausgeschaltet
11111111 - Eingeschaltet
00001111 - 0,5 Sekunden aus, 0,5 Sekunden an
01010101 - Alle 1/8 Sekunden Blinken

Wer noch fragen hat, kann diese gerne stellen.
 
#3
So und noch ein Video vom fertigen Aufbau:

Ein Schalter an der Fernbedienung steuert die LEDs:

Mögliche Optionen:

Copter unarmt:

1. LEDs ausgeschaltet
2. LED Doppelblitz

Copter armt:

1. LED Doppelblitz
2. LED Dauerleuchten (für Nachtflüge)

Das ganze ist so aufgebaut, dass dauernd Leuchtende LEDs nur bei "gearmtem" Copter möglich sind. (Wegen der Kühlung durch die Rotoren, ohne Kühlung würden die LEDs bei Dauerleuchten zu heiß werden.)

Ich sortiere das hier heute Abend mal und stell den Schaltplan mit dazu online.

Benötige Komponenten:

1 Ohm Widerstand (1-2 Watt)
4x 3 Watt LEDs von Hobbyking (bei mir rot und gelb, die gelben werden aber weißen weichen)
1x Leistungs MOSFET (ich hatte ein IRL3803 rumliegen: http://www.reichelt.de/IRL-IRFZ-Tra...=2896&ARTICLE=41757&SHOW=1&START=0&OFFSET=16&)
bisschen Draht und Schrumpfschlauch.

Hier noch ein Link zum Video:

http://www.youtube.com/watch?v=OFyH61gxjHA&feature=youtu.be
 

LSG

Erfahrener Benutzer
#4
Gibt das Board nicht nur 5V aus und haben die LEDs nicht 12V? Wie machst das mit der Stromversorgung?
 
#5
Mit einem Mosfet (IRL 3803)

http://www.reichelt.de/IRL-IRFZ-Tra...=2896&ARTICLE=41757&SHOW=1&START=0&OFFSET=16&

Der Mosfet "schaltet Masse" also folgende Pin Belegung:

Linker Pin Signalleitung (die 5 Volt vom Arduino) mittlerer Pin Minus der LEDs (bei mir 4 LEDs in Reihe an einem 1 Ohm Widerstand) rechter Pin Minus der Stromversorgung. Die LEDs dann direkt über Plus mit dem Plus des Lipo verbinden (bei mir 3s).
 
Zuletzt bearbeitet:

LSG

Erfahrener Benutzer
#6
Meiner soll auch blinken!!!:ding: Leider habe ich keinen Kanal mehr frei für Umschalten auf Dauerleuchten für Nachtflüge. Kanal 5 ist bei mir schon "arm" und Kanal 6 ACC. Mehr hat meine Anlage nicht. ACC und Blinken an einem Schalter miteinander zu verknüpfen hat auch keinen Zweck, da es Tag/Nacht-unabhängig ist, ob ich mit oder ohne ACC fliege.
 
#7
Extra einen Kanal für ARM?

das geht doch auch mit dem Roll Stick.

"Meiner soll auch blinken?" Soll ich noch etwas beschreiben oder war das jetzt nur Ausdruck deiner Unzufriedenheit? ;)

Also Blinken bekommen wir hin, Dauerleuchten und Blinken auch wenn du Kanal 5 dafür nutzt ;)
 
Zuletzt bearbeitet:

LSG

Erfahrener Benutzer
#9
Das war jetzt die Außerung meines Wunsches. "Armem" geht zwar auch mit dem Stick, ist bei meiner Konfiguration dann aber nicht Roll, sondern Gier und das ist bei einem Tri recht unpraktisch, da der hintere Propeller beim Einschalten dann jedes mal den Rasen mäht. Zudem habe ich das Scharfstellen lieber auf einem separaten Schalter, damit ich in Notfällen schnell ausschalten kann.
 
#12
Blinkt er denn jetzt schon? Oder leuchtet er noch gar nicht?

Eine Möglichkeit wäre meine Möglichkeit, und dann legste einfach mit nem Umschalter 5 Volt Dauerplus auf den Signal Pin des MOSFET dann leuchtet er ja dauernd.

Das geht aber alles auch mit einem simplen NPN-Transistor.

Ich habe nur nen Logic-Level-Mosfet genommen, da ich so die LEDs "dimmen" kann also später mal diverse Lichtmuster erstellen. Beispielsweise Ein- und Ausblenden lassen, nicht einfach an und aus schalten, oder Helligkeit Abhängig der Akkuspannung oder solche Späße.

Hätte ich nur mehr Zeit ;).
 
Zuletzt bearbeitet:

LSG

Erfahrener Benutzer
#13
Ja wenn ich mehr Zeit hätte, läge hier auch schon ganz anderes rum:D
Also wie du an meinem Benutzerbild siehst, leuchtet meiner bisher (nur). Ich habe einen Stromverteiler nur für die LEDs und den LiPo-Warner gelötet und das an das Balancerkabel vom LiPo direkt angeschlossen
 

MaxWin

(╯°□°)╯︵ ┻━┻
#14
Danke für die Inspiration :)

Mein Dad (Der Lötbeauftragte hier im Haus) hat mir eine kleine Platine gemacht, mal zum testen ob es so tut. Hab es mal auf die schnelle eingebaut und ein wenig zum Spielen mit Funktion belegt. Port B4 ist bei mir D10.

/******************************** LED FLASHER ***********************************/
#define LED_FLASHER
#define LED_FLASHER_DDR DDRB
#define LED_FLASHER_PORT PORTB
#define LED_FLASHER_BIT PORTB4
//#define LED_FLASHER_INVERT
#define LED_FLASHER_SEQUENCE 0b00000001 // leds OFF
#define LED_FLASHER_SEQUENCE_ARMED 0b11111111 // pattern when ARMED
#define LED_FLASHER_SEQUENCE_MAX 0b10101000 // full illumination
#define LED_FLASHER_SEQUENCE_LOW 0b10100000 // no illumination
//#define LED_FLASHER_SEQUENCE_VBAT_WARN1 0b11111110 // VBAT alarm LED sequence - USE together with LED_FLASHER_SEQUENCE
//#define LED_FLASHER_SEQUENCE_VBAT_WARN2 0b11111010 // VBAT alarm LED sequence - USE together with LED_FLASHER_SEQUENCE
#define LED_FLASHER_SEQUENCE_FAILSAFE 0b01010101 // Failsafe LED sequence - USE together with LED_FLASHER_SEQUENCE
IMG_2750.jpg
Bildschirmfoto 2013-10-29 um 21.07.28.png

In der nächsten Version gibt es dann auch den Spannungsteiler für die Stromüberwachung und Vielleicht LandingLights :)

http://youtu.be/z5yL9pL-B5g
 

CD81

Neuer Benutzer
#15
Hallo,

gibt es eigentlich eine Möglichkeit mehr als einen Port für den Flasher zu nutzen...also 2 unabhängig voneinander.

Viele Grüße

Chrhistian
 
#16
Mit einem Mosfet (IRL 3803)

http://www.reichelt.de/IRL-IRFZ-Tra...=2896&ARTICLE=41757&SHOW=1&START=0&OFFSET=16&

Der Mosfet "schaltet Masse" also folgende Pin Belegung:

Linker Pin Signalleitung (die 5 Volt vom Arduino) mittlerer Pin Minus der LEDs (bei mir 4 LEDs in Reihe an einem 1 Ohm Widerstand) rechter Pin Minus der Stromversorgung. Die LEDs dann direkt über Plus mit dem Plus des Lipo verbinden (bei mir 3s).
Hi,

wäre die Mosfetschaltung auch mit 12v LED-Streifen möglich, also dazu linker Pin 5v Signal von der FC, mittlerer Pin Minus von LED-Streifen, rechter Pin Minus vom Lipo und Plus vom LED-Streifen an Plus des Lipo?? Der Aufbau ist doch eigentlich so einer Schaltung mit ULN2803 sehr ähnlich, oder?? Davon hätte ich noch zwei, drei hier und könnte das mal ausprobieren. Beim ULN2803 wird ja auch die Masse durchgeschalten und die 12v VCC/Plus vom Lipo geholt!

Gruß
Jan
 

waidla

Neuer Benutzer
#19
Hallo zusammen,
Ich brauche bei meinem NanoWii 1.0 zwei Ausgänge mit denen ich eine Relaikarte oder eine Transistorschaltung ansteuern kann. (MultiWii2.3). Ich habe einen Standempfänger dran, Bluetooth an UART und 4 ESC.
Bin aber gestern in 9 Stunden irgendwie nicht ans Ziel gekommen.
Dank eurere Hilfe habe ich den Port vom LED_Flasher verändert und es funktioniert am D12. Auch an den anderen Pins
funktioniert es mit den knappen 5 Volt mit der LED_Flasher funktion. Die Pins müssten in Ordnung sein.
Als zweiten Ausgang wollte ich den Camtrig benutzen, für den ich verschiedenen Anleitungen gefunden habe.
Mit der Camtrig Funktion habe ich mich auch befasst, also Programm geändert, damit nur noch nach Schalterstellung dauerhaft
Low oder Hight ausgegeben wird. Funktioniert in der GUI super. Am Ausgang D13 liegen bei mir jedoch nur 0,58 Volt bei High an. Auch wenn ich einen anderen Ausgang nehme, immer nur so eine geringe Spannung.
Wie komme ich da auf knappe 5V?
Ich verzweifle langsam.

Normalerweise soll ja der CamTrig auf A2 sein, habe aber von einem Software Bug gelesen bei den Versionen vor MultiWII 2.1, deshalb ist er bei den neueren MultiWii Versionen auf D13.

def.h STANDARD bei NANOWII def
// move servo 3 & 4 to pin 13 & 11
#define SERVO_3_PINMODE DDRC |= (1<<7); // 13
#define SERVO_3_PIN_HIGH PORTC |= 1<<7;
#define SERVO_3_PIN_LOW PORTC &= ~(1<<7);
#define SERVO_4_PINMODE DDRB |= (1<<7); // 11
#define SERVO_4_PIN_HIGH PORTB |= 1<<7;
#define SERVO_4_PIN_LOW PORTB &= ~(1<<7); */

Bei dieser Definiton wird der Servo 3 benutzt, welcher auch normalerweise der CAMTRIG ist.
Bei meiner OUTPUT Datei wird jedoch der Servo 2 benutzt, auch vor meiner Änderung

Output NEU

#if defined(CAMTRIG)
if (rcOptions[BOXCAMTRIG]) servo[2] = CAM_SERVO_HIGH;
if (!rcOptions[BOXCAMTRIG]) servo[2] = CAM_SERVO_LOW;
#endif

config.h NEU

#define CAMTRIG
#define CAM_SERVO_HIGH 2000
#define CAM_SERVO_LOW 1020

Egal welche Änderung ich mache, anpasse usw. Ich habe immer nur so eine geringe Spannung
und keine knappen 5 Volt.

Kann mir jemand einen Tipp geben? Bin erst seit kurzem im Modellbau, deshalb entschuldigt mich wenn
ich etwas falsches geschrieben habe. Habe auch versucht einen neuen BOXReiter in der GUI zu erstellen, also eine komplett neue Funktion. Dies ist aber irgendwie (für mich) zu kompliziert. Verstehe die Verknüpfungen der BOX Arrays nicht ganz mit den IDs.

Gruß Waidla
 

Greyflyer

Erfahrener Benutzer
#20
Hallo Leute,

Fahre auf meinem Copter die MW 2.3 und habe die LED Funktion jetzt auch mal aktiviert. Zunächst einmal habe ich die Default Settings übernommen, also

#define LED_FLASHER
#define LED_FLASHER_DDR DDRB
#define LED_FLASHER_PORT PORTB
#define LED_FLASHER_BIT PORTB4
#define LED_FLASHER_INVERT
#define LED_FLASHER_SEQUENCE 0b00000000 // leds OFF
#define LED_FLASHER_SEQUENCE_ARMED 0b00000101 // create double flashes
#define LED_FLASHER_SEQUENCE_MAX 0b11111111 // full illumination
#define LED_FLASHER_SEQUENCE_LOW 0b00000000 // no illumination

Auf meinem Mega Board mit Atmel 2560 greife ich PORTB4 an D10 ab. Im Grunde funktioniert auch alles, nur umgekehrt. Das heißt bei Sequence und Sequence_Armed bedeutet ein gesetztes Bit (1) LED aus und ein nicht gesetztes (0) LED an. Kann mir einer sagen, woran das liegt?

Grüße
Dirk
 
FPV1

Banggood

Oben Unten