Brushless ESC als RC (Licht)schalter

geiles projekt. respekt!

hat jemand ne idee für 4S bis 6S ?
 

braadert

Erfahrener Benutzer
Aus Erfahrung lernt man :D

Hab heute 2 von den 6A UBEC Reglern bekommen und direkt mal einen abrauchen lassen. Bei den Ausgangskabeln haben die Chinamänner einen Kurzschluss fabriziert.

Aber der andere läuft Einwandfrei. In Zukunft werde ich immer vorher nach den Kabeln schauen.
 
@frickler
ich habe im Vorbeigehen für mein TRI mal so einen mitgenommen.

Problem ist der große Verlust (Hitze), da ich nur einen brauche und somit nix in Reihe schalten kann.
idee:
einsparen des Vorwiderstandes für den Landescheinwerfer mittels gepulstem Ausgang sollte doch kein Problem sein??

Gruß
Lutz

P.S.
Buchsen am ESC sind cool.
 

Anhänge

Problem ist der große Verlust (Hitze), da ich nur einen brauche und somit nix in Reihe schalten kann.
idee:
einsparen des Vorwiderstandes für den Landescheinwerfer mittels gepulstem Ausgang sollte doch kein Problem sein??
Gute Frage, hab ich mich auch schon gefragt,
Die LED hat max 1000mA bei 3,25V und soll ja eigentlich mit Konstantstrom betrieben werden, ich denke nicht das du das so einfach über PWM pulsen machen kannst. Ganz ohne Widerstand geht das so glaub ich nicht, zumindest wenn du da mit ner höheren Spannung rangehst.

Wie gesagt, nur meine Vermutung, da fehlt mir aber auch das Wissen zu.
 
geiles projekt. respekt!
hat jemand ne idee für 4S bis 6S ?
ich zitire mich mal selbst :)
also 4S sind an einem HK-SS 10A wohl kein Problem. die FETs sind 30V-Typen, der Elko zwar nur 16V, aber den Knall riskier' ich.
ma gucken, was mit Elko-Tausch an 6S passiert?
 
Hallo Overtuner, sorry, hatte deinen Post nicht gesehen.
Ich denke bei den kleinen Reglern wird das was schwierig, denke das die meisten Kondensatoren zu dünn gewählt sind und auch der vebaute 7805 muss bei der Spannugn ganz schön was wegheizen.

Was hast du denn Vor? Welche LEDs willst denn damit betreiben? Da musst ja auch schon einige in Reihe schalten dann oder du hast da wieder riesig Verluste.
Evtl hilft dir n 12V BEC vor Schalter und LEDs:
http://www.hobbyking.com/hobbyking/store/__18788__12V_4_5A_UBEC_2_5S_Lipoly_12_23v_.html
Bei nem 6S Kopter wäre ja auch sicher platz für nen etwas größeren Regler.
 
Hi Frickler,
im Moment denke ich nur unfertige Gedanken zu Ende - auch der "und sie dreht sich doch" Ehrgeiz kommt durch :D

was ich vorhab? keine Ahnung, aber viele LED, viel Strom, wissen wollen, was geht.
die Idee mit 'nem alten 7812 aus der Ramschkiste hatte ich auch schon, muss ja nur den Atmega (oder Silabs) betreiben,
die Last schalte eh' gegen GND. (es sei denn, mir laufen RGB-LED mit gemeinsamer Kathode übern Weg...)
und low-esr elkos schlachte ich immer aus den ganzen zerschossenen 2-7s-reglern.

ach, doch, im Moment such ich konkret was für 4S:
 
Richtig Dicke LEDs die Viel Strom ziehen sollten eh per Konstantstromquelle betrieben werden, diese Konstantstromquellen/LED-Treiber haben meist einen Schalt/PWM Pin der per TTL Signal geschaltet werden kann.
Das wäre dann die Saubere Lösung denke ich.

Apropos LEDs, mit 3x 10w kann man nen prima Deckenfluter bauen ;_)

led_lampe_002.jpg

led_lampe_003.jpg
 
Zuletzt bearbeitet:

-ghost-

Erfahrener Benutzer
Mal eine Frage zu der ganzen Geschichte:

Ich würde das Ganze zum einen als Poisitonslichter nutzen wollen (2 Phasen gleichzeitig) und die dritte Phase als Akkuwarnung.

Zustand 1 = Positionslichter aus / Akkuwarnung in Betrieb, aber keine Auslösung
Zustand 2 = Positionslichter aus / Akkuwarnung in Betrieb mit Auslösung
Zustand 3 = Positionslichter an (geschaltet über einen RC-Kanal, oder alternativ einen Schalter am Modell) / Akkuwarnung in Betrieb, aber keine Auslösung
Zustand 4 = Positionslichter an / Akkuwarnung in Betrieb mit Auslösung


Lässt sich so etwas über die Programmierung realisieren?
Bei der Standadfirmware muss es ja auch etwas wie eine Spannungsüberwachung geben, sonst könnte man ja nicht das Reglerverhalten beim Erreichen nicht einstellen.

Könnte das jemand programmieren - ich hab da keine Ahnung von?
Wie würde ich die "Beleuchtungsmuster" die ich mit dem Patterneditor erstellt habe, in die Firmware bekommen?

-ghost-
 

el_momo

Erfahrener Benutzer
der frickler

welche leds hat du genommen? für den Deckenfluter? und welches Netzteil?

und noch was - darf ich mir von deine HP die .HEX Dateien ziehen? Nur Privat für mich. möchte auch versuchen aus nem plush 6a regler eine lichtsteuerung zu basteln

BZW ist das mein erstes Flash Projekt - dazu verwende ich folgendse Software - KK multicopterflash tool 0,72
als Controller wähle ich den atmega 8-based brushless esc (8kb Flash) - der regler ist ein plush 6a
Die Firmware Datei ziehe ich mir dann von dir
und fertig?!

wie lauft das mit Silabs Chips? kann ich da auch meinen AVR-isp Programmer nehmen? Regler wären 10A Plush
 
Die LEDs am Deckenfluter (hatte ich den hier gezeigt?) sind diese:
http://dx.com/p/6958-diy-10w-3000k-1050lm-cob-1-led-warm-white-rectangle-strip-dc-12-14v-162179
dazu jeweils so einen Treiber:
http://dx.com/p/9w-3-led-power-drivers-for-mr16-lamp-light-12v-5-pack-66274
und das Ganze an nem alten 15V Laptop Netzteil.


Klar kannst du die Hex Dateien verwenden, die sind auch im neueren KK Multikopterflashtool von Christian direkt drin.
Allerdings geht meine Firmware nur auf den HK6A ubec Reglern die auf meiner Seite gezeigt werden, die Plush haben mittlerweile SILAP Chips und lassen sich mit dieser Firmware (und auch mit SimonK) nicht flashen.

Gruß
Johannes
 

el_momo

Erfahrener Benutzer
don't ich hab schon die neueren 6A Regler


Ok nachdem ich nur einen atmel flasher hab

Brauchte ich Empfehlungen für 10a Regler und 6a Regler mit atmel Chip - an besten aus dem de warehaus

@ frickler

Du hast nicht zufällig noch ein oder 2 hobbyking 6a ubec rumliegen?
 
Zuletzt bearbeitet:

martinez

Erfahrener Benutzer
Hi,
wollte meinen neuen Hexa mit Licht ausrüsten und hatte das Problem das ich nur einen PPMSUM Empfänger dran habe, nun hab ich die Software so aufgebohrt das sie auch mit PPMSUM signalen umgehen kann, den Kanal kann man um Pattern-Editor auswählen.

http://www.multixmedia.org/test/BL-Lights/JS-Patter-Editor/

Gruß,
Olli

Hi Olli,

genau das brauche ich jetzt :)

Was mir aber im Moment noch Probleme macht:
Ich hab die 6A UBEC ESC, mein Patter habe ich über deine super Seite ( http://www.multixmedia.org/test/BL-Lights/JS-Patter-Editor/ ) generiert (PPM SUM CH8)
Deine BL-Lights habe ich geladen ( [AVR-Code] )
Und sehe meine benötigten bs.** Files

Man kann ja 3 verschiede Lichtpatter in ein ESC "schreiben" und dann per RC Kanal auswählen, soweit sollte das richtig sein.

ABER wie kompiliere ich das neue HEX File?
Und wo ist das C-File was kompiliert wird?
Wie bekomme ich die 3 Patter in das HEX Files?

Ich steh im Moment glaube ich voll auf den Schlauch.....

Viele Grüße
Martinez

PS: Ein HEX File auf den ESC zu brennen ist kein Thema, mit den KKFlashtool hab ich den Frickler seine Files schon getestet....
 

pete1990

Erfahrener Benutzer
Hallo,

dann bring ich den Thread doch wieder mal etwas nach oben...Ich habe in den letzten Tagen meine Parkzone Extra erfolgreich mit 10 LEDs ausgestattet. Vielen Dank an den Frickler für dieses Projekt. Hier ist ein Video mit paar Bildern vom Bau, sowie der Beleuchtung in Aktion:

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

Um den Kabelsalat irgendwie unter Kontrolle zu bringen, habe ich eine kleine Platine entworfen, die die Stromverteilung und die Vorwiderstände übernimmt. Layout und Schaltplan sind im Anhang, falls irgendwer nutzen dafür hat.
Und zum Schluss wollte ich noch kurz fragen ob es möglich wäre den Quelltext für diese hex-Datei "esclight_strobe_acl_landing.hex" zu bekommen? Weil ich die Idee mit der Lipoüberwachung auch sehr nützlich fände und das evtl. noch umprogrammieren würde.

viele Grüße,
Peter
 

Anhänge

Sehr schick geworden!
Ich hab in letzter Zeit auch wieder ein paar von den Dingern verbaut und 2 für Kaldi als Car-Beleuchtung fertig gemacht.
Lipo-Überwachung wäre klasse, hatte ich noch keinen Nerv zu mir das anzuschauen, sollte aber über den A/D ja nicht viel sein.
Wenns klappt übernehm ich das gerne.

Hier nochmal der Code:

/*****************************************************************************
*
* Copyright (c) 2013 www.der-frickler.net
*
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This software is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*****************************************************************************
*
* ESC Light Module
* Uses an Hobbyking 6A UBEC Brushless ESC as light switch.
* switches the different lights on dependent to the stick position .
*
* PINOUT: Servo Signal IN: INT0 (PD2)
* OUT1 RED WIRE
* OUT2 BLUE WIRE
* OUT3 BLACK Wire
*
*****************************************************************************/


#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#define IN PD2

#define STICK_LOW 200
#define STICK_CENTER 600
#define STICK_HIGH 900
#define STICK_OVERFLOW 4000

#define STROBE_DIST 500
#define STROBE_TIME 20
#define STROBE_REPEAT 180

#define ACL_DIST 280
#define ACL_TIME 20


static void setupPorts(void) {
DDRB = 255; // portb as output
PORTB = 0; // portb to 0
DDRC = 255; // portc as output
PORTC = 0; // portc to 0
DDRD = 48; // portd as output, int0 as input
PORTD = 0; // portd to 0
}

// for PFET = switched VCC
static void out1_on(void) { PORTD |= (1 << 4); }
static void out1_off(void) { PORTD &= ~(1 << 4); }
static void out2_on(void) { PORTC |= (1 << 5); }
static void out2_off(void) { PORTC &= ~(1 << 5); }
static void out3_on(void) { PORTC |= (1 << 3); }
static void out3_off(void) { PORTC &= ~(1 << 3); }

// // for NFET = switched GND
// static void out1_on(void) { PORTD |= (1 << 5); }
// static void out1_off(void) { PORTD &= ~(1 << 5); }
// static void out2_on(void) { PORTC |= (1 << 4); }
// static void out2_off(void) { PORTC &= ~(1 << 4); }
// static void out3_on(void) { PORTB |= (1 << 0); }
// static void out3_off(void) { PORTB &= ~(1 << 0); }

uint8_t color[3];
uint8_t i = 0;

uint16_t ppm = 0; // measures PPM frame length
uint16_t fade = 0;
uint16_t fader = 1;


// on timer1 overflow
ISR (TIMER1_OVF_vect)
{
ppm = STICK_OVERFLOW;
}

// on INT0 / PD2 pinchange
ISR (INT0_vect)
{
if ((PIND & 4)==4) // check 3th bit of PORTD (pin 4) got HIGH
{
//TCCR1B = 0; // stop timer1
TCNT1 = 0; // reset timer1
TCCR1B = 1; // start 16bit timer1 - no prescale
}
else if ((PIND & 4)==0 )
{ // check 3th bit of PORTD (pin 4) got LOW
TCCR1B = 0; // stop timer1
uint16_t value = TCNT1; // get Timer Value
// map measured value to 0-255
if (value > 32000) {
ppm = 1000;
}else if (value < 16000) {
ppm = 0;
} else {
ppm = ((value - 16000) / 16);
}
}
}

ISR (TIMER0_OVF_vect) // just constant timebase for PWM generation
{
// Interrupt action every (16000000)/256 Hz = 62,5 kHz
// leads to 255steps pwm with ~ 245 Hz

// if (i == 0) {
// out1_on();
// out2_on();
// out3_on();
// }
// if (i == color[0]) out1_off();
// if (i == color[1]) out2_off();
// if (i == color[2]) out3_off();
// i++;
// if (i > 255) i = 0;
}

int main (void)
{
setupPorts();

MCUCR = 1; // External Interrupt on PinChange
GICR = 64; // enable Int0

// Timer 1 - measures input signal
TCCR1A = 0; // 16-Bit Normal Mode
TIMSK |= (1<<TOIE1); // Timer Overflow-Interrupt an
TCCR1B = 0; // stop 16-Bit Timer
TCNT1 = 0; // reset timer1

// Timer 0 - timebase for pwm
TCCR0 = (1<<CS00); // 8-bit Timer 0 without Prescaler = 16mhz
TIMSK |= (1<<TOIE0); // enable overflow Interrupt

sei(); // Interrupts on.

TCCR1B = 1; // start timer1

out1_off();
out2_off();
out3_off();

while(1)
{
// // LANDING LIGHT @ FULL STICK
// if (ppm > STICK_HIGH) {
// out1_on();
// } else {
// out1_off();
// }

// STROBE AND ACL @ STICK CENTER
// if (ppm > STICK_CENTER) {
// _delay_ms(STROBE_DIST);
// out2_on(); // flash strobe on
// //out1_on();
// _delay_ms(STROBE_TIME);
// out2_off(); // flash strobe off
// //out1_off();
// _delay_ms(STROBE_REPEAT);
// out2_on(); // flash strobe on
// _delay_ms(STROBE_TIME);
// out2_off(); // flash strobe off
//
// _delay_ms(ACL_DIST);
// out3_on(); // flash ACL on
// _delay_ms(ACL_TIME);
// out3_off(); // flash ACL off
// }

// // POLICE LIGHT @ STICK CENTER
// if (ppm > STICK_CENTER) {
// _delay_ms(STROBE_DIST);
// out2_on(); // left light on
// _delay_ms(STROBE_TIME);
// out2_off();
// _delay_ms(STROBE_REPEAT);
// out2_on();
// _delay_ms(STROBE_TIME);
// out2_off();
// _delay_ms(STROBE_DIST);
// out3_on(); // left light on
// _delay_ms(STROBE_TIME);
// out3_off();
// _delay_ms(STROBE_REPEAT);
// out3_on();
// _delay_ms(STROBE_TIME);
// out3_off();
// }

// // Running Light
if (ppm > STICK_LOW) {
_delay_ms(ppm/3);
out1_on(); // left light on
out3_off(); // right light off
_delay_ms(ppm/3);
out1_off(); // left light off
out2_on(); //right light on
_delay_ms(ppm/3);
out2_off(); // left light off
out3_on(); //right light on
}


// // ALL OFF @ STICK LOW
if (ppm <= STICK_LOW) {
out1_off();
out2_off();
out3_off();
}



// RGB Led PWM - autofading with stop
// if (ppm < 900) fade++;
// hsb2rgbAN1(fade, 255, 255, color);
// if (fade > 767) fade = 0;
// _delay_ms(ppm/100);

// // RGB Led PWM - stick-fading
// if (ppm > 767) ppm = 767;
// hsb2rgbAN1(ppm, 255, 255, color);
// _delay_ms(10);

}

}

void hsb2rgbAN1(uint16_t index, uint8_t sat, uint8_t bright, uint8_t color[3]) {
uint8_t temp[5], n = (index >> 8) % 3;
temp[0] = temp[3] = (uint8_t)(( (sat ^ 255) * bright) / 255);
temp[1] = temp[4] = (uint8_t)((((( (index & 255) * sat) / 255) + (sat ^ 255)) * bright) / 255);
temp[2] = (uint8_t)(((((((index & 255) ^ 255) * sat) / 255) + (sat ^ 255)) * bright) / 255);
color[0] = temp[n + 2];
color[1] = temp[n + 1];
color[2] = temp[n ];
}
Ich hab die meisten Varianten alle im selben file und kommentier dann immer das ein/aus was ich gerade brauch.
Defines wären schicker, aber was solls....


Ach ja, man kann ihn nicht nur fürs Licht gebrauchen, Steuere damit auch die beiden Kanonen der Lady hier:



und habe mal versuchsweise einen Bürstenmotorregler für kleine Motoren und vor/rück draus programmiert.
 
Zuletzt bearbeitet:

pete1990

Erfahrener Benutzer
Danke für den Code.
Dummerweise habe ich jetzt keinen weiteren Hobbyking 6A ESC mehr da und den anderen aus der Extra wieder rauszufummeln hab ich jetzt auch nicht so viel Lust... Gibt es irgendwo eine Art Schaltplan zu dem Teil bzw. weiß irgendwer an welchem der 4 A/D pins (PC0-PC3) die Ursprüngliche Spannungsüberwachung stattfand, mit was für einem Spannungsteiler und welcher Referenzspannung?
Ohne diese Infos bräuchte ich entweder jemanden, der noch so ein Teil über hat und es mir verkaufen/ausleihen würde oder die ganze Sache muss bis zur nächsten HK-Bestellung warten.
 
FPV1

Banggood

Oben Unten