Stránka 17 z 22

Re: Servo přestavník

PříspěvekNapsal: ned 05 bře, 2017 9:21 am
od jirkah
Ales píše:Pokud dobře rozumím otázce, tak dostatečně dlouhé táhlo umožní umístit pohon jinde např. http://samone.rajce.idnes.cz/21-Elektronika-vyhybky/#20160207_161914.jpg (jsou to ty modré trubičky na obrázku svisle dolů), pokud je nutno pohon otočit o 90 stupňů nebo jakýkoliv jiný úhel, pak lze využít například takovou páku http://samone.rajce.idnes.cz/21-Elektronika-vyhybky/#20150822_211617.jpg.
Krátký popis je zdehttp://diskuze.modely.biz/viewtopic.php?f=1&t=7415&start=30#p194850


díky to je to co jsem hledal

Re: Servo přestavník

PříspěvekNapsal: ned 05 bře, 2017 6:50 pm
od fulda
jirkah píše:Vím , že jsem to někde viděl , ale nějak to nemohu najít. Nevíte kde hledat ?

TADY???

Re: Servo přestavník

PříspěvekNapsal: pon 06 bře, 2017 9:44 am
od pepi2000
Já jsem to vyřešil atmegou 328.
Jedotka ovládá 6 servo motorků pro Analogové kolejiště.
Funguje to tak, že po pomocí tlačítka, LED a trimru můžu u každého serva zvlášť nastavit první i druhou polohu a zapsat do paměti. Rychlost je nastavena pevně již v programu, ale je možné ji změnit a platí pro všechna serva. Přepínání výhybek se provádí přepínačem. Přesněji privedenim kladného napětí na vstup na desce.

Re: Servo přestavník

PříspěvekNapsal: pon 13 bře, 2017 4:46 pm
od BohousP

Re: Servo přestavník

PříspěvekNapsal: pon 13 bře, 2017 5:14 pm
od Rudolf
BohousP píše:http://www.digi-cz.info/certifikace-nmra/


Pěkné, blahopřeji ... :lol:

Ruda

Re: Servo přestavník

PříspěvekNapsal: pon 13 bře, 2017 8:28 pm
od zugi
gratulace Jindrovi i digi-cz :-)

Re: Servo přestavník

PříspěvekNapsal: čtv 16 bře, 2017 12:31 pm
od BohousP

Re: Servo přestavník

PříspěvekNapsal: čtv 16 bře, 2017 12:47 pm
od Ferda
pepi2000 píše:Já jsem to vyřešil atmegou 328.

ARDUINO bez ARDUINA :?:
To se mi líbí. 8)
Je možno skouknout soubor.ino ?

Re: Servo přestavník

PříspěvekNapsal: úte 21 bře, 2017 9:24 am
od pepi2000
Jasně Ferdíku,
Udělal sem to tak, že vytočím trimr úplně doleva což nastaví serva na polohu 90 st. a naprogramuju všech šest serv na 90 st.
Potom připevním serva ze spodu k vyhýbkám, aby vyhýbka byla ve středu tedy lokomotiva by něměla kam jet.
Po připevnění serv znovu stisknu tlačítko a po dvousekundovém rozvícení LED jednou krátce blikne (tzn. první pozice u prvního serva)
nastavím trimrem posun a znovu stisknu tlačítko, LED se rozsvítí a zapíše se hodnota do paměti. Dále LED blikne krátce dvakrát (tzn. druhá pozice u prvního serva)
a tak dále. Na konci proklikne LED několikrát pro ukončení nastavení. Arduino je třeba restartovat pro načtení nových dat. (odpojit od napětí a připojit)
Po přesunu serva programem je servo odpojeno do změny na vstupu (dá se změnit a zjednodušit program)
Taky je možno do programu nastavit při nastavování poloh servomotorků pomocí tlačítka a trimru i rychlost posunu servomotorků a zapsat do paměti.
Ještě takový postřeh. Servo ES08MA II není nic extra má sice kovové převody, ale není moc spolehlivé jedno mi odpadlo a při dojezdu jede dál něž má a pak se o kousek vrátí. Je možné že je to kovovými převody, že mají určitou setvačnost. Nejlepší a bez problémů se mi osvědčily serva Tover pro modré plast. převody. Tak pa.


#include <EEPROM.h>;
#include <Servo.h>;
Servo pres_1;
Servo pres_2;
Servo pres_3;
Servo pres_4;
Servo pres_5;
Servo pres_6;
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
int f=0;
int nn=2;
int eepr=0;
int e_1 = EEPROM.read(1);
int e_2 = EEPROM.read(2);
int e_3 = EEPROM.read(3);
int e_4 = EEPROM.read(4);
int e_5 = EEPROM.read(5);
int e_6 = EEPROM.read(6);
int e_7 = EEPROM.read(7);
int e_8 = EEPROM.read(8);
int e_9 = EEPROM.read(9);
int e_10 = EEPROM.read(10);
int e_11 = EEPROM.read(11);
int e_12 = EEPROM.read(12);
int del=8; // rychlost posunu serva - vyšší hodnota = pomalejší přesun

void pamet(){
int y=analogRead(A5);
int mapa=map(y,0,1023,0,75); //hodnota 75 nastaví rozmezí pro servo od 15 do 165 stupňů
switch(eepr){
case 1:
EEPROM.update(1,(90-mapa));
break;
case 2:
EEPROM.update(2,(90+mapa));
break;
case 3:
EEPROM.update(3,(90-mapa));
break;
case 4:
EEPROM.update(4,(90+mapa));
break;
case 5:
EEPROM.update(5,(90-mapa));
break;
case 6:
EEPROM.update(6,(90+mapa));
break;
case 7:
EEPROM.update(7,(90-mapa));
break;
case 8:
EEPROM.update(8,(90+mapa));
break;
case 9:
EEPROM.update(9,(90-mapa));
break;
case 10:
EEPROM.update(10,(90+mapa));
break;
case 11:
EEPROM.update(11,(90-mapa));
break;
case 12:
EEPROM.update(12,(90+mapa));
break;
}
return;

}

void setup() {
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);
pinMode(4,INPUT);
pinMode(A1,INPUT);
pinMode(A3,OUTPUT);

pres_1.attach(8);
pres_2.attach(7);
pres_3.attach(6);
pres_4.attach(5);
pres_5.attach(3);
pres_6.attach(2);

pres_1.write(e_1);
pres_2.write(e_3);
pres_3.write(e_5);
pres_4.write(e_7);
pres_5.write(e_9);
pres_6.write(e_11);
}

void loop() {
int y=analogRead(A5);
int mapa=map(y,0,1023,0,75);
if(eepr==1){
pres_1.write((90-mapa));
}
if(eepr==2){
pres_1.write((90+mapa));
}
if(eepr==3){
pres_2.write((90-mapa));
}
if(eepr==4){
pres_2.write((90+mapa));
}
if(eepr==5){
pres_3.write((90-mapa));
}
if(eepr==6){
pres_3.write((90+mapa));
}
if(eepr==7){
pres_4.write((90-mapa));
}
if(eepr==8){
pres_4.write((90+mapa));
}
if(eepr==9){
pres_5.write((90-mapa));
}
if(eepr==10){
pres_5.write((90+mapa));
}
if(eepr==11){
pres_6.write((90-mapa));
}
if(eepr==12){
pres_6.write((90+mapa));
}
//-------------------------------------------------
if((digitalRead(9)==0) && a==0){
for(int x=e_2;x>(e_1-1);x--){
pres_1.write(x);
delay(del);
}
a=1;
}
if((digitalRead(9)==1) && a==1){
for(int x=e_1;x<(e_2+1);x++){
pres_1.write(x);
delay(del);
}
a=0;
}
if((digitalRead(10)==0) && b==0){
for(int x=e_4;x>(e_3-1);x--){
pres_2.write(x);
delay(del);
}
b=1;
}
if((digitalRead(10)==1) && b==1){
for(int x=e_3;x<(e_4+1);x++){
pres_2.write(x);
delay(del);
}
b=0;
}
if((digitalRead(11)==0) && c==0){
for(int x=e_6;x>(e_5-1);x--){
pres_3.write(x);
delay(del);
}
c=1;
}
if((digitalRead(11)==1) && c==1){
for(int x=e_5;x<(e_6+1);x++){
pres_3.write(x);
delay(del);
}
c=0;
}
if((digitalRead(12)==0) && d==0){
for(int x=e_8;x>(e_7-1);x--){
pres_4.write(x);
delay(del);
}
d=1;
}
if((digitalRead(12)==1) && d==1){
for(int x=e_7;x<(e_8+1);x++){
pres_4.write(x);
delay(del);
}
d=0;
}
if((digitalRead(13)==0) && e==0){
for(int x=e_10;x>(e_9-1);x--){
pres_5.write(x);
delay(del);
}
e=1;
}
if((digitalRead(13)==1) && e==1){
for(int x=e_9;x<(e_10+1);x++){
pres_5.write(x);
delay(del);
}
e=0;
}
if((digitalRead(4)==0) && f==0){
for(int x=e_12;x>(e_11-1);x--){
pres_6.write(x);
delay(del);
}
f=1;
}
if((digitalRead(4)==1) && f==1){
for(int x=e_11;x<(e_12+1);x++){
pres_6.write(x);
delay(del);
}
f=0;
}
if(digitalRead(A1)==1){
digitalWrite(A3,HIGH);
pamet();
delay(2000);
digitalWrite(A3,LOW);
delay(200);
for(int i=1;i<nn;i++){
digitalWrite(A3,HIGH);
delay(150);
digitalWrite(A3,LOW);
delay(200);
}
eepr=eepr+1;
nn=nn+1;
a=2;
b=2;
c=2;
d=2;
e=2;
f=2;
}
if(eepr==13){
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
eepr=0;
nn=2;
}
}

Re: Servo přestavník

PříspěvekNapsal: úte 21 bře, 2017 9:27 am
od pepi2000
Pokud najdu (jsem nepořádník) tak je možno i schéma zapojení.

Re: Servo přestavník

PříspěvekNapsal: úte 21 bře, 2017 6:24 pm
od fulda
:idea: to je peklo, tolikrát napsat pod sebe stejnou věc :mrgreen:

Re: Servo přestavník

PříspěvekNapsal: stř 22 bře, 2017 5:14 am
od pepi2000
Jistě jde to zjednodušit zkrátit. Je to napsaný tak jak sem to psal postupne tzv. na koleně. Hlavni je, že to funguje.

Re: Servo přestavník

PříspěvekNapsal: stř 22 bře, 2017 11:02 am
od Ferda
*
Pro nás "lamy" je to čitelnější.

Navíc vše má svůj vývoj.
Greenhorn se chlubí, že dokázal napsat program o 2000 řádků.
Mazák se chlubí, že dokázal napsat program na 3 řádky.

:mrgreen:

Re: Servo přestavník

PříspěvekNapsal: stř 22 bře, 2017 11:49 am
od vvitty
Bohuzel pribyva tech prvnich, alespon soude dle rozezranosti modernich programu neodpovidajici prirustku uzitne hodnoty :lol:

PS: Predchozi veta nijak nesouvisi a programem vyse.

Re: Servo přestavník

PříspěvekNapsal: stř 22 bře, 2017 12:03 pm
od sidlo
Sinclair ZX Spectrum
procesor 3,5 MHz
ROM 16 kB
RAM 16 kB
cena - 100 £

Arduino ProMini
procesor 16 MHz
Flash memory 16 kB
SRAM 1 kB
EEPROM 0,5 kB
cena - 2 $

Má to nějaký význam se masochisticky omezovat?