Odeslat nové téma Odpovědět na téma  [ Příspěvků: 18 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: arduino a regulátor pro motory
PříspěvekNapsal: čtv 23.01.2014 15:59 
Nováček serveru
Nováček serveru

Registrován: 26.4.2012
Příspěvky: 26
Bydliště: Teplice
potřebuji poradit jak arduinem řídit regulátor jedno jestli střídavý nebo stejnosměrný
nebo jké pulzi ovládaj regulátory dopředu brzda spátečka

_________________
Blade 450 , Blade Nano CP ,HiMOTO buggy Z-3 (3250KW) , TROPHY 4,6 Truggy, CEN ME16 Rally 4WD


Nahoru
 Profil  
 
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: čtv 23.01.2014 16:19 
Mazák
Mazák
Uživatelský avatar

Registrován: 15.7.2007
Příspěvky: 1130
Bydliště: Praha 6, ČR
Obrázky: 12
knihovnou pro servo, regulator i servo maji stejne signaly.
Letecke regulatory: 1ms 0%, 1.5ms 50%, 2ms 100%
Auto regulatory: 1ms -100% (zpatecka), 1.5ms 0%, 2ms 100% (vpred)

Na presnosti moc nezalezi, regulator si po spusteni zmeri pulz a ulozi ho jako minimalni hodnotu. Pulz pri zapnuti musi byt tak aby se netocil motor.
Trizilovy signalovy kabel od regulatoru obvykle obsahuje 5V (BEC) napajeni na cervenem dratu, da se vyuzit pro napajeni arduina, ale pozor na zapojeni dvou zdroju zaroven.

_________________
T-Rex 600N Spirit, Tx Aurora.


Nahoru
 Profil Soukromé album  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: čtv 23.01.2014 16:28 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2010
Příspěvky: 11876
Bydliště: ČR
Obrázky: 1
jkyy píše:
potřebuji poradit jak arduinem řídit regulátor jedno jestli střídavý nebo stejnosměrný nebo jaké pulzi ovládaj regulátory dopředu brzda zpátečka

Regulátory mají PWM vstup. PWM signál jsou impulzy generované s periodou cca 20 ms. Šířka impulsu se pohybuje v rozmezí od cca 1ms až do cca 2ms . Jednosměrné regulátory mají obvykle stop při šířce impulsu cca 1 ms a maximum při cca 2ms. Obousměrné regulátory mají obvykle stop při šířce impulsu cca 1,5ms, maximum vzad při šířce impulsu cca 1ms a maximum vpřed při cca 2ms. Signál se dá generovat třeba ve smyčce s použitím funkce delay() nebo lze využít připravenou knihovnu pro řízení RC serv, která je použitelná i pro řízení RC regulátorů.

Pár článků ke generování PWM:
Arduino: PWM info (základní informace)
Arduino: Demo PWM Output (generování ve smyčce)
Arduino: Servo library (knihovna pro řízení RC serv)


Nahoru
 Profil Soukromé album  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: čtv 23.01.2014 17:28 
Nováček serveru
Nováček serveru

Registrován: 26.4.2012
Příspěvky: 26
Bydliště: Teplice
děkuji všem pomohlo to vyzkoušim auto ovládat wifi nebo bluetooth nejdřiv přes arduino a pak maprogramuji nějaký atmel
DÍKY

_________________
Blade 450 , Blade Nano CP ,HiMOTO buggy Z-3 (3250KW) , TROPHY 4,6 Truggy, CEN ME16 Rally 4WD


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 01.07.2014 16:29 
Nováček serveru
Nováček serveru

Registrován: 26.4.2012
Příspěvky: 26
Bydliště: Teplice
Asi se stala někde chyba :lol: servo se perfektně točilo sem a tam ale po připojení regulátoru se zezačátku motor netočil a pak hned šel na plno potom se sám zastavil a z regulátoru se začlo kouřit a je po něm :oops:
prosim mohl by mi někdo poslat návod a program na ovládní obousměrného regulatoru (odskoušenej) děkuji
učim se teprve programovat tak než zničim další regulátor
arduino LEONARDO , DUE ,

_________________
Blade 450 , Blade Nano CP ,HiMOTO buggy Z-3 (3250KW) , TROPHY 4,6 Truggy, CEN ME16 Rally 4WD


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 01.07.2014 16:57 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2010
Příspěvky: 11876
Bydliště: ČR
Obrázky: 1
jkyy píše:
Asi se stala někde chyba :lol: servo se perfektně točilo sem a tam ale po připojení regulátoru se zezačátku motor netočil a pak hned šel na plno potom se sám zastavil a z regulátoru se začlo kouřit a je po něm...

Uveď sem ten program co jsi použil. Dle mého názoru nebude problém v tom programu, ale spíš v tom, že se regulátor uvařil zátěží toho motoru tj. nebyl pro něj zřejmě vhodný případně mohlo dojít ke zkratu na straně vývodů z regulátoru do motoru nebo v motoru a nebo to byla jen shoda okolností a došlo k nějaké závadě v regulátoru zcela nezávisle na tom programu.

Pro řízení regulátoru se používá stejný PWM signál jako pro servo. Pokud tedy fungovalo servo není důvod proč by neměl fungovat i regulátor. U obousměrného regulátoru je obvykle ve středu rozsahu tj. při impulsech o šířce cca 1,5ms neutrál a změnou šířky impulsů jedním (k 1ms) a druhým směrem (k 2ms) od středu (1,5ms) je řešen nárůst otáček motoru od stavu zastaveno do maxima jedním a druhým směrem otáčení.

Pokud byla délka PWM impulsů zpočátku někde mimo střed (1,5 ms) tak regulátor nereagoval, protože to bylo mimo neutrál tj. byl tzv. uzamčen alias blokován ochranou, která je u regulátorů obvykle takto řešena tj. regulátor motor neroztočí pokud není nejprve plyn alias PWM signál v neutrálu což je u obousměrných obvykle střed tedy při šířce PWM impulsů cca 1,5 ms jak už jsem zmínil. Pak zřejmě došlo k nastavení šířky impulsů blíž k hranicí 1,5 ms a regulátor se tzv. odemknul a pak zřejmě skokově byla nastavena šířka impulsů někde směrem k jednomu či druhému maximu vůči středu, a proto se motor tak roztočil, ale regulátor zřejmě tu zátěž neunesl tj. motor měl buď přiliš velký odběr proudu a nebo došlo k nějakému svodu/zkratu na straně vývodů z regulátoru do motoru nebo v motoru. Velký odběr proudu by mohlo případně způsobit i nějaké mechanické brždění motoru.


Nahoru
 Profil Soukromé album  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 01.07.2014 18:18 
Nováček serveru
Nováček serveru

Registrován: 26.4.2012
Příspěvky: 26
Bydliště: Teplice
Použil jsem regulator i s motorem z auta, na kterém to jezdilo 140A ss jsou na něm spálený dva tranzistory.
Kód:
#include <Servo.h>

Servo mojeServo;

void setup() {
 
mojeServo.attach(8);
mojeServo.write(90);
delay(5000);
Serial.begin(9600);

}

void loop() {
  mojeServo.write(Serial.read());  // pomocí processingu posílám do arduina čísla od 0 do 180
  delay(20);
}

_________________
Blade 450 , Blade Nano CP ,HiMOTO buggy Z-3 (3250KW) , TROPHY 4,6 Truggy, CEN ME16 Rally 4WD


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: stř 02.07.2014 13:59 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2010
Příspěvky: 11876
Bydliště: ČR
Obrázky: 1
jkyy píše:
Použil jsem regulator i s motorem z auta, na kterém to jezdilo 140A ss jsou na něm spálený dva tranzistory.

Dle mého názoru problém není způsoben tím programem. Problém hledej jinde jak už jsem zmínil. Pokud se v tom nevyznáš tak bude zřejmě tak jako tak lepší se obrátit na někoho znalejšího ve tvém blízkém okolí kdo tomu víc rozumí a zvládne to rozchodit ve vztahu ke konkrétnímu hardware.


Nahoru
 Profil Soukromé album  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: stř 02.07.2014 17:03 
Mecenáš serveru
Mecenáš serveru
Uživatelský avatar

Registrován: 22.3.2005
Příspěvky: 1151
Bydliště: Hlučín, CZ
Já se ještě vrátím tady k této konstrukci:

jkyy píše:
Kód:
  mojeServo.write(Serial.read());  // pomocí processingu posílám do arduina čísla od 0 do 180

Jsi si jistý, že tam skutečně posíláš čísla 0..180, tzn. znaky s ASCII kódem 0..180? Nesnažíš se tam třeba poslat číslo 100 jako text "100" a ještě k tomu nedej bože CRLF jako konec řádku?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: stř 02.07.2014 17:38 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2010
Příspěvky: 11876
Bydliště: ČR
Obrázky: 1
dt píše:
Já se ještě vrátím tady k této konstrukci:

// pomocí processingu posílám do arduina čísla od 0 do 180
mojeServo.write(Serial.read());

Jsi si jistý, že tam skutečně posíláš čísla 0..180, tzn. znaky s ASCII kódem 0..180? Nesnažíš se tam třeba poslat číslo 100 jako text "100" a ještě k tomu nedej bože CRLF jako konec řádku?

Serial.read() vrací v návratové hodnotě typu int dekadickou hodnotu v rozmezí 0 až 255 odpovídající prvnímu načtenému bajtu z bafru sériového portu pokud je v bafru nějaký bajt dostupný. Pokud není dostupný žádný bajt pak vrací hodnotu -1. Pokud by tam poslal třeba text 100 zakončený CRLF tak by to postupně v jednotlivých průchodech funkce loop() nastavilo přes mojeServo.write hodnoty 49, 48, 48, 13 a 10 a následně pokud by ze sériového portu už nebyly čteny žádné bajty tak by to opakovaně nastavovalo hodnotu 0. Třída Servo to má ve své metodě write() ošetřeno tak, že hodnoty menší než 0 automaticky opraví na 0 a hodnoty větší než 180 automaticky opraví na 180. Takže podle toho jak to má napsané ať už pošle do sériového portu cokoli tak mojeServo.write stejně nastaví jen hodnotu v rozmezí 0 až 180. Tedy nic co by bylo mimo rozmezí 0 až 180.

Pokud by to přeci jen chtěl trochu lépe ošetřit tak, že by do mojeServo.write předával jen hodnoty v rozmezí 0 až 180 pak třeba takto:

Kód:
void loop() {
  if (Serial.available() > 0) {
    // v bafru sériového portu je připraven nějaký bajt pro načtení tj. má smysl volat Serial.read()

    // Serial.read() načte a vrátí dekadickou hodnotu v rozmezí 0 až 255
    // odpovídající prvnímu bajtu načtenému z bafru sériového portu.
    // Po načtení je bajt z bafru sériového portu automaticky odstraněn
    // a při dalším volání Serial.read() bude načten další bajt.
    int Hodnota = Serial.read();

    if (Hodnota >= 0 && Hodnota <= 180) {
      // jen pokud je Hodnota v rozmezí 0 až 180
      mojeServo.write(Hodnota);
    }
  }
  delay(20);
}

Nicméně příčina problému se spáleným regulátorem bude dle mého názoru někde jinde jak už jsem zmínil v předchozí části tohoto tématu.


Nahoru
 Profil Soukromé album  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 14.07.2015 9:53 
Nováček serveru
Nováček serveru

Registrován: 23.7.2014
Příspěvky: 7
Ahoj, může mi prosím někdo vysvětlit, jak měnit polaritu u brushless motorů s obousměrným regulátorem? Chápu to správně tak, že určité rozmezí z intervalu 0-180 je zpátečka? Díky za objasnění.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 14.07.2015 12:25 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 28.2.2005
Příspěvky: 20846
Bydliště: Rakovník, CZ
Obrázky: 0
a) servo i modelářské regulátory jsou řízené signálem PWM s opakovacím rámcem 20ms a délkou pulzu 1000-2000us přičemž neutrálu (středu serva) obvykle odpovídá šířka pulzu 1500us.
b) obousměrný regulátor má (musí mít) kolem středu jisté pásmo necitlivosti a nad/pod ním otevírá výkonový můstek v požadovaném směru s příslušnou frekvencí a plněním PWM dle vstupního signálu
c) pro ovládání serv(a) je lepší použít HW časovač procesůrku = nahodit log.1 na výstupu, odpočítat přiměřenou dobu, nahodit log.0 na výstupu - bez pomocných funkcí (ServoOut apod), přímo.
d) pro opakovací frekvenci tohoto signálu používám přerušení spouštěné druhým HW časovačem
(používám procesory PIC)

_________________
jyrry.webnode.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 14.07.2015 12:33 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 28.2.2005
Příspěvky: 20846
Bydliště: Rakovník, CZ
Obrázky: 0
Drondys píše:
... mojeServo.write ...

Jak tyhle pomocné funkce fungují? Mně to v PICech skoro vždy nabourávalo program, když jsem začal používat přerušení... Proto je radši už nepoužívám.

_________________
jyrry.webnode.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 14.07.2015 14:27 
Nováček serveru
Nováček serveru

Registrován: 23.7.2014
Příspěvky: 7
Děkuji ti. Stále mi ale není jasné jestli mohu použít mojeServo.write(0); -> zpátečka; mojeServo.write(125); ->neutral a mojeServo.write(180); ->dopředu


Nahoru
 Profil  
 
 Předmět příspěvku: Re: arduino a regulátor pro motory
PříspěvekNapsal: úte 14.07.2015 15:06 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 28.2.2005
Příspěvky: 20846
Bydliště: Rakovník, CZ
Obrázky: 0
Tipuji že spíš mojeServo.write(90); ->neutral

_________________
jyrry.webnode.cz


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 18 ]  Přejít na stránku 1, 2  Další

 


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 9 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  

 

  Powered by phpBB® Forum Software © phpBB Group  Český překlad – phpBB.cz 

 

NAVRCHOLU.cz