Začátky s Arduinem
Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
-
- Příspěvky: 82
- Registrován: pon zář 08, 2014 10:55 am
- Reputace: 2
Re: Začátky s Arduinem
jupí funguje.
Graf je v příloze. Dám si kávu a budu se snažit pochopit tuto část programu..
Díky Pavel
Graf je v příloze. Dám si kávu a budu se snažit pochopit tuto část programu..
Díky Pavel
-
- Příspěvky: 987
- Registrován: sob čer 09, 2012 9:14 am
- Reputace: 22
Re: Začátky s Arduinem
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.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áš.
-
- Příspěvky: 21
- Registrován: sob led 03, 2015 6:14 pm
- Reputace: 0
Re: Začátky s Arduinem
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
-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
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.
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.
-
- Příspěvky: 21
- Registrován: sob led 03, 2015 6:14 pm
- Reputace: 0
Re: Začátky s Arduinem
Díky za vyčerpávající odpověď .
FVP 400W, bat. 24V Li-ion 100Ah, Epsolar 2215BN
-
- Příspěvky: 164
- Registrován: ned lis 25, 2012 10:06 am
- Reputace: 5
Re: Začátky s Arduinem
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
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é

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
-
- Příspěvky: 7811
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 953
- 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
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.
-
- Příspěvky: 164
- Registrován: ned lis 25, 2012 10:06 am
- Reputace: 5
Re: Začátky s Arduinem
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
.

-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
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:
UNO ma mensi velikost eeprom, MEGA vetsi, vyber si...
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);
}
-
- Příspěvky: 7811
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 953
- 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
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?
tj. když zapíšu do eeprom data (dva BYTE jsou pro 15 výhybek až moc

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.
-
- Příspěvky: 1588
- Registrován: pát bře 15, 2013 7:53 pm
- Reputace: 70
Re: Začátky s Arduinem
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.
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.
-
- Příspěvky: 164
- Registrován: ned lis 25, 2012 10:06 am
- Reputace: 5
Re: Začátky s Arduinem
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

výhybka so servom:
https://www.youtube.com/watch?v=uA8pSf-h5so
-
- Příspěvky: 276
- Registrován: pát kvě 09, 2014 8:11 pm
- Reputace: 14
Re: Začátky s Arduinem
Ještě by tu byla jedna možnost, jak ušetřit epromku, co takhle zápis na SD kartu?
-
- 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
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.
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
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 3 Odpovědi
- 1861 Zobrazení
-
Poslední příspěvek od dumi
Kdo je online
Uživatelé prohlížející si toto fórum: Claudebot [Bot], Google Adsense [Bot] a 0 hostů