Stránka 4 z 4

Re: Začátky s Arduinem

Napsal: pát led 15, 2016 3:04 pm
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

Re: Začátky s Arduinem

Napsal: sob led 16, 2016 9:14 am
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.

Re: Začátky s Arduinem

Napsal: stř úno 10, 2016 9:20 pm
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.

Re: Začátky s Arduinem

Napsal: stř úno 10, 2016 9:57 pm
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.

Re: Začátky s Arduinem

Napsal: stř úno 10, 2016 10:15 pm
od sponn
Díky za vyčerpávající odpověď .

Re: Začátky s Arduinem

Napsal: ned črc 02, 2017 8:28 pm
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

Re: Začátky s Arduinem

Napsal: ned črc 02, 2017 9:41 pm
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.

Re: Začátky s Arduinem

Napsal: ned črc 02, 2017 11:19 pm
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.

Re: Začátky s Arduinem

Napsal: ned črc 02, 2017 11:39 pm
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...

Re: Začátky s Arduinem

Napsal: pon črc 03, 2017 2:16 am
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?

Re: Začátky s Arduinem

Napsal: pon črc 03, 2017 9:45 am
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.

Re: Začátky s Arduinem

Napsal: pon črc 03, 2017 6:51 pm
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

Re: Začátky s Arduinem

Napsal: stř črc 05, 2017 7:36 am
od dub042
Ještě by tu byla jedna možnost, jak ušetřit epromku, co takhle zápis na SD kartu?

Re: Začátky s Arduinem

Napsal: stř črc 05, 2017 11:54 pm
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.