Začátky s Arduinem

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
250w_gridfree
Příspěvky: 82
Registrován: pon zář 08, 2014 10:55 am
Reputace: 2

Re: Začátky s Arduinem

Příspěvek od 250w_gridfree »

jupí funguje.

Graf je v příloze. Dám si kávu a budu se snažit pochopit tuto část programu..
Díky Pavel
Přílohy
jupí.jpg
rob.brno
Příspěvky: 957
Registrován: sob čer 09, 2012 9:14 am
Reputace: 20

Re: Začátky s Arduinem

Příspěvek od rob.brno »

kodl69 píše:já se snažím všchny proměnný udržet jako int nebo unsigned int, procesor to má rychlej spočítaný, a když se to má třeba poslat jako řetězec do rádiovýho modulu, je to jednodušší. Mít víc než 5 platnejch míst je z technickýho hlediska blbina, jako třeba: Měřím výkon tak, že na jednom a/d mám proud, na druhým napětí, tj 10bit rozlišení v optimálním případě, tj 1024 hodnot. Pokud postupuju rozumně, vystačím si s int: P=Iměř*Uměř*koeficient kterej si spočítám bokem podle děličů napětí a výsledek bude třeba vynásobenej 10 nebo 100 aby to pěkně do toho int vyšlo. Hlavně poznámky do kódu, jinak se v tom sám nevyznáš.
A nebo I=Iměř*koefI, U=Uměř*koefU , P=U*I a tady už jsem v koncích, koeficienty jsou třeba 0,01587, takže výsledek je jistě float, a už se v tom vezu, přetypování a další blbiny. Je potřeba strávit pár nocí při bádání nad takovejma věcma co mají fungovat a nefungují, a pak už znovu tu blbost neuděláš.
KDyž máš setinový koeficienty, tak to je můžeš zadat jako konstantu koef. x 10000 a mezivýsledky ukládat do longu. Jo a často se místo int dá použít i nejmenší proměná char(byte) a oproti int operace s ní zabere jen polovinu času i kódu i RAM.
sponn
Příspěvky: 21
Registrován: sob led 03, 2015 6:14 pm
Reputace: 0

Re: Začátky s Arduinem

Příspěvek od sponn »

Zdravím, mám dotaz na zkušenější, jak dalece vadí arduinu, když se program několikrát v průběhu odkazuje na sériovou komunikaci ( serial.println() ... ), a přitom není připojené k PC. Jediné co jsem si všiml, že pravidelně bliká led Tx.
FVP 400W, bat. 24V Li-ion 100Ah, Epsolar 2215BN
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm
Reputace: 70

Re: Začátky s Arduinem

Příspěvek od solárník »

Arduinu je zcela jedno, jestli na sériovém portu někdo přijímá / naslouchá. Tedy z toho vyplývá, že mu to absolutně nevadí, když se na serial bude zapisovat a není nic připojeno.

Jediné Arduino, které dokáže zjistit, jestli je serial připojen, je, tuším, Leonardo. Ostatní Arduina to ani nevědí, takže je jim to zcela jedno. Prostě data odvysílají na sériovou linku, ať je, nebo není připojená.

Program ani nečeká na konec přenosu. serial.println jen uloží data do bufferu a hned se vrátí do programu. Sériový přenos pak probíhá tzv. asynchronně na pozadí v momentu, kdy už program běží dál.
sponn
Příspěvky: 21
Registrován: sob led 03, 2015 6:14 pm
Reputace: 0

Re: Začátky s Arduinem

Příspěvek od sponn »

Díky za vyčerpávající odpověď .
FVP 400W, bat. 24V Li-ion 100Ah, Epsolar 2215BN
Pavel.Z.
Příspěvky: 160
Registrován: ned lis 25, 2012 10:06 am
Reputace: 5

Re: Začátky s Arduinem

Příspěvek od Pavel.Z. »

Ahojte,
mám jednoduchý program pre riadenie serva pomocou dvoch tlačítok. Prosím mám otázku ako to mám spraviť, aby aj po odpojení napájania a potom po opätovnom pripojení napájania ostalo servo stále v polohe ako bolo pred odpojením napájania? Proste aby si to pamätalo stav ako to bolo pred vypnutím. Stačilo by niečo jednoduché ;) ďakujem.
Bude to slúžiť na prehodenie výhybiek v modelovej železnici. Ďakujem
Program:
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
myservo.attach(9);
}
void loop() {
if (digitalRead(2) == 1) {
myservo.write(10);
}
if (digitalRead(3) == 1) {
myservo.write(90);
}

Obrázok
servo.jpg
kodl69
Příspěvky: 7379
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: Začátky s Arduinem

Příspěvek od kodl69 »

jediná možnost co mě napadá, je zapsat polohu serva do eeprom, a po zapnutí napájení si ji načíst z této. A nebo pomocnej kontakt na výhybce, kterej arduinu řekne, že při připojení napájení je to servo pravo nebo vlevo. a nebo ze serva vykuchat celou elektroniku a pouštět jenom elektriku přímo do motorku přes H- můstek. po stisknutí jenoho nebo druhýho tlačítka po dobu nutnou na otočení seva.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
Pavel.Z.
Příspěvky: 160
Registrován: ned lis 25, 2012 10:06 am
Reputace: 5

Re: Začátky s Arduinem

Příspěvek od Pavel.Z. »

S tým kontaktom je to trošku pracné. Serv bude 15násť plus ku každému kontakt, káble plus ďaľši vstup na Arduine. Ale ako nápad to je dobrý, nenapadlo ma to. Pôjdem skúsiť tú eeprom. Ešte som s ňou nepracoval, snáť to naštudujem niekde :-D.
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm
Reputace: 70

Re: Začátky s Arduinem

Příspěvek od solárník »

eeprom je asi jedine reseni. kdybys to chtel dal rozvijet, tak pamatuj, ze eeprom ma omezeny pocet zapisu. tedy zapsat obcas nejaka data je ok, ale zapisovat tam neco stale v rychlem sledu ji brzy znici.

jinak staci stahnout knihovnu EEPROM.h
a pak napriklad zapis a cteni integeru:

Kód: Vybrat vše

// funkce pro čtení Integer z EEPROM
int eepromIntRead(int adresa)
{
 int hodnota = EEPROM.read(adresa) + ((EEPROM.read(adresa+1)) << 8) ;
 return hodnota;
}

// funkce pro zápis Integeru do EEPROM
void eepromIntWrite(int adresa, int hodnota)
{
 byte byte1 = hodnota;
 byte byte2 = hodnota >> 8;
 EEPROM.write(adresa, byte1);
 EEPROM.write(adresa + 1, byte2);
}
UNO ma mensi velikost eeprom, MEGA vetsi, vyber si...
kodl69
Příspěvky: 7379
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: Začátky s Arduinem

Příspěvek od kodl69 »

a nebo eeprom na I2c, externí, většinou s větším počtem zápisů. Taky se dá řešit počítadlo zápisů do eeprom, a měnit adresu pro zápis, a tu zapisovat do eeprom...
tj. když zapíšu do eeprom data (dva BYTE jsou pro 15 výhybek až moc :) tak na další pozici si zapíšu načtené číslo +1, a až to číslo dosáhne 10000, tak na místo kde mám zapsanou adresu pro zápis, zapíšu nový, o x vyšší číslo (x dle velikosti ukládanejch dat, vč. toho počítadla zápisů, kam se uloží 1). Je potřeba to brát tak, že každý hrknutí výhybkou je jeden zápis do eeprom, a 10000 není zas tak velký číslo. A nebo se na to vybodnout, s tím, že je to stejně meziverze, a bude se to brzo předělávat.

P.S. dnes už nejsou ve výhybkách elektromagnety, jako v dobách TT modelů z NDR?
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm
Reputace: 70

Re: Začátky s Arduinem

Příspěvek od solárník »

Jinak pro upresneni

eeprom adresa v prikladu vyse muze nabyvat hodnot
- Arduno Duemilanove: 0-511
- Arduino Uno: 0-1023
- Arduino Mega: 0-4095

A zivotnost eeprom je podle udaju vyrobce 100 000 zapisu na tu samou adresu. Pak je pametova bunka znicena.
Pavel.Z.
Příspěvky: 160
Registrován: ned lis 25, 2012 10:06 am
Reputace: 5

Re: Začátky s Arduinem

Příspěvek od Pavel.Z. »

Díky chlapi, idem pošpekulovať nad tým a ak to nepôjde nechám to tak. Vo výhybach býva el.magnet, len to chcem so servom. Spravil som to s knižnicou VarSpeedServo. Veľmi sa mi lúbi ako sa dá nastaviť rýchlosť serva. Vypáda to realisticky ako bum, bác elektromagnet :-). Taktiež sa to dá použiť na návestidlá atď.
výhybka so servom:
https://www.youtube.com/watch?v=uA8pSf-h5so
dub042
Příspěvky: 272
Registrován: pát kvě 09, 2014 8:11 pm
Reputace: 14

Re: Začátky s Arduinem

Příspěvek od dub042 »

Ještě by tu byla jedna možnost, jak ušetřit epromku, co takhle zápis na SD kartu?
jiri59
Příspěvky: 62
Registrován: ned úno 26, 2017 10:29 pm
Reputace: 17
Systémové napětí: 24V
Výkon panelů [Wp]: 1200
Kapacita baterie [kWh]: malá

Re: Začátky s Arduinem

Příspěvek od jiri59 »

Pro ovládání serva výhybek modelové železnice bych spíše než dvě tlačítka použil přepínač (např. https://www.ges.cz/cz/mts-500apc-GES06500133.html) a tím bych měl i optickou kontrolu v jaké poloze se má výhybka nacházet. Dal by se pro to použít i Váš program arduina bez úprav.
Pokud by bylo nutné použít pro ovládání tlačítka, tak by bylo řešením spojit mechanicky pohyb serva s trimrem a podle polohy serva by se měnil odpor trimru a tím se zpětně získá poloha serva (poloha výhybky). Toto by znamenalo i upravit program.
ostrov = panel 5S 250 Wp + EASUN 3500 +(4 x NiCd NKO118 nabízím za odvoz) + 2,8kWh Lion z 18650

Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek