Nejste přihlášen/a.

Přihlásit se do poradny

 

Program na řízení tvarovacího lisu na plasty - Arduino

Od: michaeljorg odpovědí: 13 změna:

Dobrý večer. Potřeboval bych poradit s programem na řízení tvarovacího lisu na plasty v programu Arduino. Kod mám již hotový, ale hází mi to error, a já nevím proč.:( Byl bych moc vděčný, kdyby mi kdokoliv pomohl. V příloze posílám zadání a můj vypracovaný kod.


Program na řízení tvarovacího lisu na plasty - Arduino
Program na řízení tvarovacího lisu na plasty - Arduino #2

 

 

13 odpovědí na otázku
Řazeno dle hodnocení

 

 

hodnocení

1x

ledka2 nema deklaraciu

michaeljorg
hodnocení

A mohu se prosím Vás zeptat, jakou má mít deklaraci?

Deklaracia vyzera napr takto

int a;

alebo s priradenim uvodnej hodnoty

int b = 5;

mll

xx není deklarovaná v daném místě.

prostě proměnné ledka1 ledka2 překladač nezná, musíte je definovat/deklarovat

Podle mě to máte trochu zmatený

začal bych

#define ledka1 10

#define ledka2 11 // čísla si dejte podle připojení ledek

pokud to chcete mít jako proměnnou (podle mě netřeba) tak

uint8_t led1 = ledka1; //a podobně ale podle mě stačí ta definice pro preprocesor

A pak normálně použijete ledka1 ledka2 a preprocesor to nahradí těmi čísly, jakoby to tam bylo napsané. (Doporučuje se direktivy preprocesuru psát velkými písmeny, třeba LED1, ale neni to zákon a porušuje se to hodně často.)

michaeljorg
hodnocení

Dobrý večer. Mockrát děkuji za radu.
michaeljorg
hodnocení

Dobrý večer ještě jednou. Program již nehází error, ale nic se neděje. Dopsal jsem pouze # define ledka1 23 a #define ledka2 25, jak jste mi psal. Byl bych moc vděčný, kdyby jste mi poradil, aby mi fungoval obvod v programu Tinkercad.com.

Preco 23 a 25? Take piny male arduino nema !

michaeljorg
hodnocení

Je to tak podle zadání obvodu v TinkerCadu. Ledka1 je na pinu 23 a ledka2 je na pinu 25.

 

mll
hodnocení

0x

Prošel jsem program a ještě bych definoval servo_pin namísto jeho ručního zápisu (nevadí, že se to použije jen pro metodu attach, definice propojení s hw tak budou v jednom místě; nevěřil byste jak šílené je hledat takové věci v celém programu pokud to z nějakého důvodu změníte).

Pak už jen takové formality, možná pro vaši aplikaci nedůležité, ale přecejeno mjsem zvyklí programovat real-time tak mě to upoutá.

Zvážil bych nutnost použití floating point aritmetiky (řádky 21 a 22). Nešlo by to normalizovat do nějakého celočíselného typu. (myslím, že celočíselné násobení nebo dělení bude vždy rychlejší (je to instrukce procesoru) než v plovoucí čárce (je emulované softwareově, avr nemá plovoucí čárku)).

Ten jmenovatel 1023 vychází z examplu AnalogRead.ino (ostatně jako ta floating point aritmetika), podle mě je to blbě a i studiem datasheetu jsem dospěl k tomu, že tam má být 1024 (platné hodnoty jsou od 0 do 1023 tedy 1024 hodnot, 1 krok je 1/1024*Vref, což je defaultně Vcc, které může být 5 a může být 4 a může být 5.06 a cokoliv jiného, zvlášť při napájení z ISB to bývá hodně pod 5V; jednou jsem si myslel, že měřím kolísání nějaké veličiny a zjistil jsem, že měřím koůísání napájecího napětí). S ohledem na zde řečené to neudělá tak velkou chybu (pod 1 promile), ale je dobré o tom vědět. Navíc 1024 se dělí lépe, snad i v plovoucí čárce (je to posun o 10 řádů).

michaeljorg
hodnocení

Dobrý večer. Zkoušel jsem to, jak jste mi psal, a program mi stále hází error. Mohl by jste mi poradit, aby mi to fungovalo prosím? Byl bych Vám moc vděčný.
mll

Podívám se vám na to. Škoda, že jste ty hlášky neopsal. Je potřeba číst chybové hlášky, a někdy to chce vědět, co se za nima může skrývat. To je ta největší detektivka a většinou je to nějaká prkotina (nemluvím o takových jasných věcech jako chybí středník nebo neznámý symbol).

Zkusil jsem přepsat program tak, aby šel přeložit (což ještě neznamená, že bude pracovat správně, ale hlavně že jde přeložit). Vyšel jsem z examplu pro servo. To je výhoda arduina, že pro všechno jsou nějaké odladěné a nějak funkční examply, i když jejich kvalita často nebývá nejlepší, je dobré, že je možné vyjít z něčeho, co chodí. Takové ty optimalizace, to už si každý udělá, pokud to má zapotřebí.

Tak nevím, jak je to s přílohama, nějak se mi ji nedaří sem dát.

mll
28.11.23 14:36
michaeljorg
hodnocení

Omlouvám se, že jsem Vám nevypsal ty chybové hlášky. S těmi errory máte naprostou pravdu. Vždycky v tom hledám nějakou složitou chybu, a ona je to úplně banální záležitost. Nicméně ty examply od různých uživatelů jsou naprostá pecka. Používám občas examply z GitHubu. S přílohami je to tady úplně snadné. Jak vidím, tak jste si poradil. Nicméně děkuji za soubor. Podívám se na to, a zkusím, jestli to bude fungovat.

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]