Založen: Apr 07, 2005 Příspěvky: 711 Bydliště: blízko Třeboně
Zaslal: po červen 20 2016, 12:47 Předmět: Arduino- delay
Ahoj,
potřebuju synovi do domečku vyrobit ovládání světla.
Chci tuto funkci:
Ovládání tlačítky zap/vyp
po zapnutí aktivní časovač 60minut (znáte děti pořád něco nechával zaplý jako manželky)
výstup PWM pro LED pásek ovládané potenciometrem
zapínací tlačítko podsvícené pulzující LED
Funkce naprogramovaný (kromě 60m časovače tam bych ještě dodal odpočet pomocí LED po 10minutách)mám ale problém Delay (),ten mi zabrzdí všechno ostatní.
Prosím o nakopnutí jak to vyřešit aby to nečekalo,teda pokud to Arduino umí,zatím jsem s ním dělal vymyšlené věci nebo jednoduché aplikace.
Založen: Dec 12, 2005 Příspěvky: 2289 Bydliště: SR, Poprad
Zaslal: po červen 20 2016, 12:54 Předmět:
nedavat delay, ale upravit to cez interrupt - prerusenie, kde sa bude v pravidelnych casovych intervaloch inkrementovat premenna. A v hlavnom programe len doplnit porovnavanie. _________________ No vidis, a tak si sa bal
Založen: Jun 14, 2003 Příspěvky: 2807 Bydliště: Blížejov
Zaslal: po červen 20 2016, 18:26 Předmět:
S tím "přetečením" je problém, ono se to vynuluje a jede to od začátku...
Ale potřeboval jsem to do jedné aplikace a nezjistil jsem jestli to jde nějak "programově" vynulovat...
Vypadá to, že pokud je "millis" unsigned typ a "lastTime" signed typ stejné velikosti, přetékání nedělá žádný problém.
Zkoušel jsem to na uint16_t a int16_t s DELAY_TIME=500.
Ať přeteče millis nebo přeteče lastTime furt je rozdíl stejný (millis - lastTime = 500).
Nejsem matematik, připadá mě to, že souvisí s operací odečítání a interpretací kladného a záporného čísla.
Založen: Apr 07, 2005 Příspěvky: 711 Bydliště: blízko Třeboně
Zaslal: út červen 21 2016, 10:30 Předmět:
Tak jsem se na to vyprdnul,pokud použiju něco jinýho,tak mi to neběží, zredukoval jsem delay časy a použiju externí 60 minutovej časovač,nějaký časovací moduly mám.
Program zveřejňovat nebudu protože byste se mi vysmáli,je to upravená slátanina několika programů ale dělá co potřebuju.
Už na škole moje programy v Pascalu učitele vždy pobavily.
Založen: Nov 20, 2012 Příspěvky: 1453 Bydliště: Praha
Zaslal: út červen 21 2016, 10:34 Předmět:
Nikdo by se ti nesmál, fakt. Nahraj sem původní program s Delay, rád ti pomůžu. Když už jednou v projektu máš mcu, tak je škoda dávat navíc HW jenom kvůli chybě v SW.
Založen: Apr 07, 2005 Příspěvky: 711 Bydliště: blízko Třeboně
Zaslal: út červen 21 2016, 11:44 Předmět:
Je to paskvil ale to jsou začátky,
PWM mám aktivní pořád protože napájení LED bude přes relátko ovládaný taky arduinem (nechci mít vypnutý LED pásky pod žádným napětím) takže proto se neaktivuje až po stisknutí tlačítka.
Vstupy/výstupy taky zvolený nahodile.
kód:
int led = 11; // Led ovladaci tlacitko
int brightness = 0;
int fadeAmount = 6;
int Ledpin=9; //vystup na Mosfet PWM
int analogpin= A2; //vstup potenciometru
int value=0; //promenna pro hodnotu potenciometru
int x; //prevedena hodnota z 0..1023 na 0..255
int LEDka =2; // rele pro 12V led + ovladaci napeti ext casovace
int TLAC = 3; // ovladaci tlacitko
int timer= 7; // vstup z ext casovace
boolean svetlo = false; // Pomocná hodnota světlooid setup()
@FHonza
Co je to millis() ? Pokud dáte do programu millis(), tak arduino automaticky na "pozadí" spustí časovač, uživatel o tom mnohdy ani neví.
To jsem tak jednou přemýšlel proč mi nejede PWM. Až jsem udělal výpis pomocí:
build.path=f:\arduino_out\
build.verbose=true
Tak jsem zjistil, že arduino si už použilo časovač ke svým účelům...
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.