Automatyczny start silnika BLDC...

monitory, nagrywarki, itp

Moderatorzy: moderatorzy2014, moderatorzy

Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

Czesc :)

Mam takie pytanko - czy sterownik silnika BLDC da sie tak skonfigurowac zeby po zasileniu automatycznie odpalal silnik?

Mam potrzebe zrobic ...wentylator :) A ze mam wiadro silnikow BLDC, regulatorow i smigiel to chetnie bym z tego zrobil.
Najlepiej bez zadnej dodatkowej elektroniki...

Z tego co pamietam to chyba tak sie nie da zeby bez PWM na wejsciu sterownik zakrecil silnikiem?

A czy serwo-tester nie zachowa sie tak, ze gdy calosc zasilic to uruchimi silnik?
Nie mam akurat elementow pod reja zeby sprawdzic...

Wiem, ze mozna napisac prosty soft na Arduino i to zrobic, ale jesli sie da wolalbym bez programowania...

Z gory dzieki za pomoc :)

Jakub
Szymon
Posty: 992
Rejestracja: poniedziałek 06 wrz 2010, 09:18
Lokalizacja: Pruszków
Kontakt:

Re: Automatyczny start silnika BLDC...

Post autor: Szymon »

Większość, o ile nie wszystkie ESC mają jakieś zabezpieczenia na taką okoliczność:
1) wchodzą w tryb programowania kiedy przy podłączeniu zasilania podawany jest PWM bliski "wartości maksymalnej"
lub
2) odgrywają melodyjkę i czekają na obniżenie sygnały PWM "do wartości minimalnej"
Ma to na celu zabezpieczenie modelu/operatora/mienia przed przypadkowym uruchomieniem silnika po podłączeniu zasilania.

Tak że bez arduino się raczej nie obejdzie, ale program będzie ultra śmiesznie prosty, na zasadzie:

Servo.write(0);
delay(3000); //czy tam ile czasu potrzeba na przejście procedury uruchomieniowej w ESC
Servo.write(180); // lub inne adekwatne obroty...

(BTW klon arduino nano jest tańszy niż większość servo testerów :-) )
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

Wyglada na to, ze w koncu musze siasc i poznac choc podstawy Arduino.
Co pewnie mi sie przyda wiec nie ma tego zlego :)

J.
kuczy
Posty: 2199
Rejestracja: wtorek 17 lis 2015, 22:03

Re: Automatyczny start silnika BLDC...

Post autor: kuczy »

Nie musisz mieć arduino, wystarczy stary poczciwy timer na kostce 555. Tylko ustawić sobie odpowiednie wypełnienie impulsów pwm do żądanej prędkości silnika i jazda
Bouli_wro
Posty: 204
Rejestracja: poniedziałek 01 sie 2016, 02:14

Re: Automatyczny start silnika BLDC...

Post autor: Bouli_wro »

Na aliex.. masz masę gotowych PWM generatorów, z wyświetlaczem nawet i możliwością ustawiania częstotliwości za kilka, kilkanaście PLN.


Wysłane z iPhone za pomocą Tapatalk
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

kuczy pisze:Nie musisz mieć arduino, wystarczy stary poczciwy timer na kostce 555. Tylko ustawić sobie odpowiednie wypełnienie impulsów pwm do żądanej prędkości silnika i jazda
No ale na tym to ja sie jeszcze mniej znam (o ile to mozliwe) niz na Arduino :)

Mysle, ze latwiej bedzie mi na Arduino, przy okazji cos tam sie naucze.
Zrobie sobie regulacje obrotow potencjometrem, a co - jak szalec to szalec ;)
Plytke Mega 2560 juz znalazlem, soft sciagnalem. Plytka dziala :)

q
kuczy
Posty: 2199
Rejestracja: wtorek 17 lis 2015, 22:03

Re: Automatyczny start silnika BLDC...

Post autor: kuczy »

https://www.google.pl/search?dcr=0&sour ... RZ_QLiLPqM:

Nie wiem czy zobaczysz, ale nie mam jak wstawic samego obrazka (pisze z komorki).
Jasne, ze arduino zadziała, ale to tak, jakbyś zastosował nowoczesny komputer do wyliczenia 2 + 2.......
Można, ale po co. Ps na podanym schemacie masz także potencjometr ;D

Pozdr.
Szymon
Posty: 992
Rejestracja: poniedziałek 06 wrz 2010, 09:18
Lokalizacja: Pruszków
Kontakt:

Re: Automatyczny start silnika BLDC...

Post autor: Szymon »

Jak, korzystając z NE555, chcecie przeskoczyć problem inicjalizacji regla po podaniu zasilania? (no chyba że są ESC bez trybu programowania i bez zabezpieczeń przed uruchomieniem silnika po włączeniu zasilania...)
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

kuczy pisze:...
Jasne, ze arduino zadziała, ale to tak, jakbyś zastosował nowoczesny komputer do wyliczenia 2 + 2.......
Można, ale po co. Ps na podanym schemacie masz także potencjometr ;D
Pozdr.
No ale Arduino mam :) Nawet chyba mam kilkadziesiat sztuk plytek zgodnych z Mega 2560 :)
Logicznym wiec wykorzystac to co mam i co daje sporo wieksze mozliwosci.
Kto wie, moze wymysle sobie zeby wiatrak odgrywal kuranty o 12:00? :)

q
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

Hej

Znalazlem w szufladzie takie cos - chyba programator atmega???

https://photos.app.goo.gl/Tm21ZAwENZ43ftQv8

https://photos.app.goo.gl/LU1s1htBcpoEXhcP9

Sorry ze troche nieostre, ale widac co trzeba...

Rozpoznajecie moze czy to jest programator ktorym zaprogramuje Atmege? Musze wgrac bootloader...

q
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

OK, wiem - programator atmeg. Kupilem kilka lat temu i wrzucilem do szuflady :)

q
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

Caly wysoce skomplikowany kod wentylatorka wyglada tak:

Kod: Zaznacz cały

#include <Servo.h>

Servo myservo;  

void setup() {
    myservo.attach(12);
    myservo.write(1100);   // to chyba jest zbedne - poprzednia komenda inicjalizuje "servo"?

}

// petla testowa rozpedzajaca plynnie silnik

void loop() {
    for (int a=1150; a<2000; a++)
    {
    myservo.write(a);
    delay(5);
    }
    delay(1000);
}
Lubie Arduino :)

Jakub
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: Automatyczny start silnika BLDC...

Post autor: pawelsky »

Jakub Jewuła pisze:Caly wysoce skomplikowany kod wentylatorka wyglada tak
Po pierwsze primo to write przyjmuje wartosci od 0 do 180, wiec petla nie rozpedzi Ci wentylatora plynnie, tylko od razu dostaniesz maks. Jesli juz, powinienes uzyc writeMicroseconds

Po drugie, nawet jesli uzujesz writeMicroseconds to po 5 sekundach znowu bedziesz rozpedzal wentylator od poczatku.

Musisz troche nad tym kodem jeszcze popracowac...
Szymon
Posty: 992
Rejestracja: poniedziałek 06 wrz 2010, 09:18
Lokalizacja: Pruszków
Kontakt:

Re: Automatyczny start silnika BLDC...

Post autor: Szymon »

Rozpędzenie zrobić w setupie, a loop zostawić pusty.
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Automatyczny start silnika BLDC...

Post autor: Jakub Jewuła »

pawelsky pisze:...
Po pierwsze primo to write przyjmuje wartosci od 0 do 180, wiec petla nie rozpedzi Ci wentylatora plynnie, tylko od razu dostaniesz maks. Jesli juz, powinienes uzyc writeMicroseconds
Po drugie, nawet jesli uzujesz writeMicroseconds to po 5 sekundach znowu bedziesz rozpedzal wentylator od poczatku.
Po trzecie primo ;) kod działa poprawnie :)
Spedzilem chwile szukajac powodu dla, ktorego silnik sie nie kreci gdy podaje wartosci 0-180.
Po prostu nie reagowal na nie, a ja szukalem innego bledu. Dopiero gdy podaje wartosc 1180
silnik (ESC) rusza. Przyjmuje wartosci do 2000 (dalej szczerze mowiac nie sprawdzalem).
Petla testowa rozpedza silnik plynnie od startu do max rpm.

ESC to RCtimer to kopterow. Zakres sygnalu PWM chyba kiedys ustawilem radiem stad to 1180...
sprobuje przeprogramowac Arduino - nie mam tu radia pod reka.

Sa rzeczy na tym swiecie o ktorych fizjologom sie nie snilo ;)

Jakub

Edytuj posty!

Przeprowadzilem sledztwo z ktorego wynika, ze:
- write wpisuje wartosci chyba dowolne? W kazdym razie napewno od 0 do 2000.
- ESC reaguje na caly zakres tej wartosci - co ciekawe gdy jest skalibrowane dla
zakresu 0-180 to do 180 oczywiscie silnik sie rozpedza potem okolo 550 silnik staje
i znowu od okolo 1000 do 2000 pracuje zwiekszajac RPM. Przynajmniej z tym ESC...
Nie mam oscyloskopu zeby sprawdzic co faktycznie jest generowane na pinie...

W kazdym razie dziala, aktualny kod wyglada tak:

Kod: Zaznacz cały

#include <Servo.h>

Servo myservo;

void setup() {
  Serial.begin(9600); 
  myservo.attach(12);
  }

  const int analogInPin = 0;
  int sensorValue = 0;
  int outputValue = 0;
  int a=0;

void loop() {
  for (a; a<1; a++)
    {
    delay(1000);
    myservo.write(0);
    delay(1000);
    }
  sensorValue = analogRead(analogInPin);
  outputValue = map(sensorValue, 0, 1023, 5, 180);
  myservo.write(outputValue);
  Serial.print("predkosc = ");
  Serial.println(outputValue);
  delay(100);
  int a=2;
}
Teraz jakas gustowna konstrukcje wentylatorka i bedzie grala muzyka :)

Ps. Nadal lubie Arduino :)

Jakub
ODPOWIEDZ