Odeslat nové téma Odpovědět na téma  [ Příspěvků: 55 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další
Autor Zpráva
PříspěvekNapsal: čtv 09.12.2021 10:54 
Nováček serveru
Nováček serveru

Registrován: 7.12.2021
Příspěvky: 21
Bydliště: Uherský Brod
prikrylm píše:
Pro zdejší komunitu by možná byly dobré informace o tom jakých 8 kanálů. Jestli vyp/zap, tedy tlačítko nebo je tam nějaká páčka... Možná bych začal tím, co to je za soupravu, jestli je k ní manuál atd.

Tak nějak mi vyplývá, že je souprava spíš 8x on/off a někde na výstupu je 0 nebo 12V (asi 8x).


Děkuji za reakci :wink:

DO by se mělo chovat přesně tak jak jsi popsal, tzn. tlačítka on/off a po dobu držení tlačítka by na výstupu přijímače mělo být +12V. Žádný proporcionál tam není.
Jedná se konkrétně o tenhle set:

https://www.fruugo.cz/f21-e1b-dc12-72v- ... hAQAvD_BwE

EDIT: Jinak co se týče toho napájení tak třeba zde doporučené Uno má na gme.cz psaný rozsah napájení 7-12V, nicméně při chodu motoru a běžícím dobíjení je palubní napětí na cca 14,2-14,6V, to by nebyl problém a toto napětí by ještě napájecí okruh Una vzal nebo je tam nějaká přepěťová ochrana která by napájení odstřihla nebo by to Uno shořelo?


Nahoru
 Profil  
 
 
PříspěvekNapsal: čtv 09.12.2021 15:54 
Mecenáš serveru
Mecenáš serveru
Uživatelský avatar

Registrován: 6.1.2012
Příspěvky: 3757
Bydliště: Řečkovice
Obrázky: 0
Tak na servo (i arduino?) pak nějaký ten step-down s větším kondenzátorem... třeba.
(https://www.laskarduino.cz/step-down-me ... 6a--usb-a/) - 5A už by mohlo stačit na kdeco.

_________________
(šroubovák | kleště | měřák | pájka | drátky | poletuchy | 24ch volantovka)


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: čtv 09.12.2021 17:51 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4785
Bydliště: SK Bratislava
No tak tu mas priklad zapojenia, a ten jednoduchy program na 3 tlacitka

zapojenie vysledujes z obrazka, tlacitka su napojene na piny 11 12 a 13, tie moje vyrabaju 0V ked nie su stlacene (cez tie zelene odpory) a 5V ked su stlacene priamo z 5V.
ty to budes musiet urobit inak, a to napriklad odporovym delicom z tych 12V na 5, spytaj sa ak nevies o com hovorim

servo je na pine 8 signalovym vodicom a 5V a 0V napajanim
ty to urobis tak ze 5V das priamo servu a z toho isteho konektora dostane 5V aj arduino, presne rovnako ako sa to robi u prijimacov

program je trivialny, mas ho tu, mas tam tri polohy definovane sirkou impulzu od 1000us do 2000us, kludne si to zmen ako potrebujes ... normalne ho skopiruj, daj ho do arduino programu a odpal to, pojde to, keby nieco neone, tak sa ozvi:

Kód:
#include <Servo.h>

Servo servo;

int pos1 = 1000;
int pos2 = 1500;
int pos3 = 2000;

void setup() {
  servo.attach(8);                             // servo pin 8
  servo.writeMicroseconds(pos1);      // start -> pos1
}

void loop() {
  if (digitalRead(11)) servo.writeMicroseconds(pos1);       // btn 1
  if (digitalRead(12)) servo.writeMicroseconds(pos2);       // btn 2
  if (digitalRead(13)) servo.writeMicroseconds(pos3);       // btn 3
}


Přílohy:
DSC06634.JPG
DSC06634.JPG
[ 130.04 KiB | Zobrazeno 1643 krát ]

DSC06635.JPG
DSC06635.JPG
[ 111.25 KiB | Zobrazeno 1643 krát ]

DSC06636.JPG
DSC06636.JPG
[ 104.53 KiB | Zobrazeno 1643 krát ]

DSC06637.JPG
DSC06637.JPG
[ 109.45 KiB | Zobrazeno 1643 krát ]

Nahoru
 Profil  
 
PříspěvekNapsal: čtv 09.12.2021 18:10 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4785
Bydliště: SK Bratislava
no tak som to nevydrzal a dorobil aj to posuvanie stredu, to be pripojene na nozickach 9 a 10 rovnako ako tie tri tlacitka na 11 az 13

ked to chces nalestit, mohol by si napriklad tu stredovu polohu ukladat do epromky, takze pri naslenom spusteni budes mat posunuty stred tak ako si to naposledy vyopol, ale to uz necham na teba :twisted:
Kód:
#include <Servo.h>

Servo servo;

int pos1 = 1000;
int pos2 = 1500;
int pos3 = 2000;

void setup() {
  servo.attach(8);                    // servo on pin 8
  servo.writeMicroseconds(pos1);      // start -> pos1
}

void loop() {
  if (digitalRead(11)) servo.writeMicroseconds(pos1);       // btn 1
  if (digitalRead(12)) servo.writeMicroseconds(pos2);       // btn 2
  if (digitalRead(13)) servo.writeMicroseconds(pos3);       // btn 3

  if (digitalRead(9)) {
    if (pos2 > pos1) pos2 -= 1;
    servo.writeMicroseconds(pos2);
    delay(20);
  }

  if (digitalRead(10)) {
    if (pos2 < pos3) pos2 += 1;
    servo.writeMicroseconds(pos2);
    delay(20);
  }

}


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 09.12.2021 18:33 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4785
Bydliště: SK Bratislava
A ked na to tak kukam, ono by bolo lepsie pouzit piny A0 az A5 a tym budes mat vsetky pouzite piny v jednom rade a tym mozes pouzit jednu pinovu listu na napojenie vsetkych vyvodov:
https://www.gme.sk/oboustranny-kolik-s1g40-2-54mm

program by potom vyzeral takto (to ze som presunul delay na to nema vplyv, to si nevsimaj):

Kód:
#include <Servo.h>

Servo servo;

int pos1 = 1000;
int pos2 = 1500;
int pos3 = 2000;

void setup() {
  servo.attach(A0);                    // servo on pin 8
  servo.writeMicroseconds(pos1);      // start -> pos1
}

void loop() {
  if (digitalRead(A1)) servo.writeMicroseconds(pos1);       // btn 1
  if (digitalRead(A2)) servo.writeMicroseconds(pos2);       // btn 2
  if (digitalRead(A3)) servo.writeMicroseconds(pos3);       // btn 3

  if (digitalRead(A4)) {                                                  // btn 4
    if (pos2 > pos1) pos2 -= 1;
    servo.writeMicroseconds(pos2);
  }

  if (digitalRead(A5)) {                                                  // btn 5
    if (pos2 < pos3) pos2 += 1;
    servo.writeMicroseconds(pos2);
  }
 
  delay(20);
}


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 09.12.2021 23:30 
Nováček serveru
Nováček serveru

Registrován: 7.12.2021
Příspěvky: 21
Bydliště: Uherský Brod
Kua Igor, ty jsi bůh! :D

Díky moc :wink:
Jenom trochu dovysvětlím, asi jsme se nepochopili, nebo možná spíš teď já nechápu úplně tebe, ale:
Polohy sice potřebuji 3, nicméně trigger bude pouze na polohy dvě. Tu třetí polohu, neutrální potřebuji jako výchozí a do které se pokaždé má servo po uvolnění tlačítka znovu vrátit.

Tzn. servo bude ve své neutrální poloze, která bude odpovídat volnoběžným otáčkám.
Zmáčknu jedno tlačítko a po dobu jeho držení se servo přesune na jednu stranu do definovaného úhlu. Jakmile pustím tlačítko, servo se opět vrací na svou neutrální polohu.

Zmáčknutí druhého tlačítka, servo se přesune na opačnou stranu do definovaného úhlu. Pustím tlačítko = opět se vrací do své neutrální polohy.

Dále úprava dvou krajních poloh - v okamžiku kdy bude servo v jedné z krajních poloh, tak bych chtěl tuto polohu upravovat buď do + nebo - stiskem jednoho nebo druhého tlačítka. Uložení by nebylo v tomhle směru žádoucí, tedy by jsem chtěl aby se servo po návratu do neutrální polohy a poté po další aktivaci tlačítka opět přesunulo do polohy definované v programu.

Jediná úprava kterou bych chtěl eventuálně uložit je možná změna neutrální polohy serva, jestli je vůbec možná.
Tedy že bych v režimu, kdy na inputu není aktivované žádné tlačítko pr jednu z definovaných poloh a servo je v neutrálu zmáčkl +/- a tom se v podstatě změnila hodnota neutralniho natočení serva a tím se změnila hodnota volnoběhu motoru.

Tato hodnota by se ovšem asi musela nějak aby se to na tuto hodnotu opět vrátilo i příště při dalším návratu z jedné z krajních poloh, co? Jestli ano, potom by z toho asi mohl plynout problém s pamětí viz. níže, je tak?

Vymýšlím si hovädziny, čo? :lol:



Jenom samozřejmě pár dotazů:
Ty krmíš to servo přímo z Arduina, je tak? Známý mi ale říkal že Arduino neumí dát dostatečně velký proud na stabilní funkci serva. Mám tedy použít nějaký step down na napájení serva jako mi tady třeba poslal prikrylm? A z tohoto step downu bych třeba rovnou i bral těch +5V na spínání vstupů, které bych spínal přes obyčejné relé ovládané těmi +12V co by mi lezly z přijímače.
Může tahle být?

Zápis do eprom by asi nebyl vhodným řešením kvůli její omezené kapacitě přepisování, ne?


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 8:40 
Nováček serveru
Nováček serveru

Registrován: 15.1.2021
Příspěvky: 43
Moje idea: dva digitální vstupy, jeden analogový vstup, jeden digitální výstup pro servo. Na dig. vstupech se vyhodnotí 4 stavy - dekadicky 0, 1, 2, 3. Oba spínače vypnuté (0) je servo v neutrálu, jeden spínač sepnutý (1) servo je v nastaveném plynu, druhý spínač sepnutý (2) servo je v poloze zhasnutí motoru, oba spínače sepnuty (3) servo přejíždí pomalu od neutrálu do max. výchylky (buď plynule nebo skokově s prodlevami) a po uvolnění spínačů se hodnota polohy uloží do EPROM. Poloha neutrálu se nastavuje trimrem na analog. vstupu (není třeba ukládat do EPROM), poloha zhasnutí je nastavena napevno v programu (případně dalším trimrem). Postaveno na arduino nano, vstupy přes optočleny. Stavět to rozhodně nebudu, chce to někoho, koho máš po ruce kvůli testování a změnám. Základní program bych případně napsal někdy po neděli, až bude čas. Nebo to tady někdo udělá dřív.


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 8:51 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4785
Bydliště: SK Bratislava
Míšánek píše:
Kua Igor, ty jsi bůh! :D

Díky moc :wink:
Jenom trochu dovysvětlím, asi jsme se nepochopili, nebo možná spíš teď já nechápu úplně tebe, ale:
Polohy sice potřebuji 3, nicméně trigger bude pouze na polohy dvě. Tu třetí polohu, neutrální potřebuji jako výchozí a do které se pokaždé má servo po uvolnění tlačítka znovu vrátit.

Tzn. servo bude ve své neutrální poloze, která bude odpovídat volnoběžným otáčkám.
Zmáčknu jedno tlačítko a po dobu jeho držení se servo přesune na jednu stranu do definovaného úhlu. Jakmile pustím tlačítko, servo se opět vrací na svou neutrální polohu.

Zmáčknutí druhého tlačítka, servo se přesune na opačnou stranu do definovaného úhlu. Pustím tlačítko = opět se vrací do své neutrální polohy.

Dále úprava dvou krajních poloh - v okamžiku kdy bude servo v jedné z krajních poloh, tak bych chtěl tuto polohu upravovat buď do + nebo - stiskem jednoho nebo druhého tlačítka. Uložení by nebylo v tomhle směru žádoucí, tedy by jsem chtěl aby se servo po návratu do neutrální polohy a poté po další aktivaci tlačítka opět přesunulo do polohy definované v programu.

Jediná úprava kterou bych chtěl eventuálně uložit je možná změna neutrální polohy serva, jestli je vůbec možná.
Tedy že bych v režimu, kdy na inputu není aktivované žádné tlačítko pr jednu z definovaných poloh a servo je v neutrálu zmáčkl +/- a tom se v podstatě změnila hodnota neutralniho natočení serva a tím se změnila hodnota volnoběhu motoru.

Tato hodnota by se ovšem asi musela nějak aby se to na tuto hodnotu opět vrátilo i příště při dalším návratu z jedné z krajních poloh, co? Jestli ano, potom by z toho asi mohl plynout problém s pamětí viz. níže, je tak?

Vymýšlím si hovädziny, čo? :lol:



Jenom samozřejmě pár dotazů:
Ty krmíš to servo přímo z Arduina, je tak? Známý mi ale říkal že Arduino neumí dát dostatečně velký proud na stabilní funkci serva. Mám tedy použít nějaký step down na napájení serva jako mi tady třeba poslal prikrylm? A z tohoto step downu bych třeba rovnou i bral těch +5V na spínání vstupů, které bych spínal přes obyčejné relé ovládané těmi +12V co by mi lezly z přijímače.
Může tahle být?

Zápis do eprom by asi nebyl vhodným řešením kvůli její omezené kapacitě přepisování, ne?


chapem, nestiham, potom si to znova precitam a porozmyslam, tak zase vecer :mrgreen:


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 9:07 
Nováček serveru
Nováček serveru

Registrován: 7.12.2021
Příspěvky: 21
Bydliště: Uherský Brod
To Bel Mondo: Již jsem objednal na základě zdejšího doporučení uno r3.
Nicméně změnu polohy dálkové pomocí kombinace stisku dvou tlačítek je podle mě zbytečná, jelikož na DO budu mít ještě volné dva kanály, tedy dvě tlačítka. A ty bych chtěl definovat jako +/- natočení serva. Tzn. držím tlačítko +, servo se natáčí tak aby motor zvedal otáčky. Držím tlačítko -, motor snižuje otáčky. Oboje po dobu stisku tlacitka.


Dále zatím netuším jak by se případné trimry daly obejít pro dálkovou změnu polohy seva


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 9:18 
Nováček serveru
Nováček serveru

Registrován: 15.1.2021
Příspěvky: 43
Aha, myslel jsem, že máš jen dva kanály. Tak na ten můj návrh zapomeň.


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 9:37 
Nováček serveru
Nováček serveru

Registrován: 7.12.2021
Příspěvky: 21
Bydliště: Uherský Brod
Ještě jsem nad tím celým teď znovu přemýšlel a asi bych udělal jednu změnu co se týče změny poloh pomocí tlačítek +/-. Ale nevím jestli by to bylo možné.

Koncové, resp. všechny tři polohy by byly definované v programu, které by se vždy nacetly po připojení napájení Arduina.

Nicméně pokud bych tyto polohy byl schopen upravit/doladit dálkově pomocí tlačítek +/- tak by bylo ideální aby tyto polohy zůstaly dočasně uloženy v "mezipaměti" (jestli něco takového vůbec existuje, a pokud ano, tak aby to nemělo tak omezený přepis paměti jako eprom). Takže aby se servo po dalším stisku jednoho z tlačítek pro přesunutí do definované polohy přesunulo do té polohy změněné pomocí +/-.

Po vypnutí napájení arduina a opětovném zapnutí by opět byly vyvolány defaultní polohy definované programem.

Je tahle konfigurace ještě realizovatelná?

To Bel Mondo: nikoliv. Kanálů budu mít celkem 8, a z toho 4 volné/ využívané přímo pro ovládání serva. Tzn. zvýšené otáčky, zastavení motoru a +/-


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 9:51 
Nováček serveru
Nováček serveru

Registrován: 15.1.2021
Příspěvky: 43
Tlacitka: neutral/zápis zhasnuti,přednastavený plyn/zápis přednastavený plyn, +, -. Za lomítkem je delší stisk.


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 16:56 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4785
Bydliště: SK Bratislava
Míšánek píše:
Tzn. zvýšené otáčky, zastavení motoru a +/-


OK, takze aby som zase nevyrabal co som si sam dovymyslel:

1/ zapnes geret, v pameti mas hodnoty neutralu, zhasnutia a maxima tak ako si si ich urcil v texte programu a vychodzia poloha je neutral

2/ stlacis tlacitko max, servo vybehne na max pokym to drzis, ked pustis, padne na neutral ... to isne so zhasinacim tlacitkom

3/ ak stlacis tlacitko + tak neutral sa pomaly pohybuje do plusu, ked pustis, zostane tam ... to iste s tlacitkom - na opacnu stranu

4/ ak tlacis max alebo min, tak po pusteni sa servo vrati do novo definovaneho neutralu podla 3/

chapem dobre?


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 16:58 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4785
Bydliště: SK Bratislava
Míšánek píše:
Již jsem objednal na základě zdejšího doporučení uno r3.

Tak ked vies presne co si objenal, skontroluj aky to ma USB konektor a skontroluj ci mas prislusny kabel, ak nie, treba doobjednat


Nahoru
 Profil  
 
PříspěvekNapsal: pát 10.12.2021 18:00 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4785
Bydliště: SK Bratislava
igorb píše:

OK, takze aby som zase nevyrabal co som si sam dovymyslel:

1/ zapnes geret, v pameti mas hodnoty neutralu, zhasnutia a maxima tak ako si si ich urcil v texte programu a vychodzia poloha je neutral

2/ stlacis tlacitko max, servo vybehne na max pokym to drzis, ked pustis, padne na neutral ... to isne so zhasinacim tlacitkom

3/ ak stlacis tlacitko + tak neutral sa pomaly pohybuje do plusu, ked pustis, zostane tam ... to iste s tlacitkom - na opacnu stranu

4/ ak tlacis max alebo min, tak po pusteni sa servo vrati do novo definovaneho neutralu podla 3/

chapem dobre?


tak ak ano, tak tu je riesenie ...

Kód:

#include <Servo.h>

Servo servo;

int next_pos;
int pos1 = 1000;
int pos2 = 1500;
int pos3 = 2000;

void setup() {
  servo.attach(A0);
  servo.writeMicroseconds(pos2);
}

void loop() {

  if (digitalRead(A1)) if (pos2 > pos1) pos2 -= 1;      // -
  if (digitalRead(A2)) if (pos2 < pos3) pos2 += 1;     // +

  next_pos = pos2;

  if (digitalRead(A3)) next_pos = pos3;     // max
  if (digitalRead(A4)) next_pos = pos1;     // min

  servo.writeMicroseconds(next_pos);
  delay(20);
}


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ů: 55 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další

 


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 33 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