Zbyšek Voda
Vytvořené odpovědi
-
AutorPříspěvky
-
Zbyšek Voda
ÚčastníkDobrý den.
To by mělo být standardní chování Arduina.
Po odpojení a připojení napájení dojde k restartu programu, ale není potřeba ho znovu nahrávat.Zbyšek Voda
ÚčastníkDobrý den,
je to spíše ukázka, jak se dají pole deklarovat.
Ale zrovna u příkladu
char jmeno[7] = "arduino";
bych ukončovací znak nedával, protože z povahy pole víme, že bude mít 7 prvků.U
char jmeno[] = "arduino";
už bych s ukončovacím znakem váhal.
Je to ale spíše otázka toho, jakým způsobem je pole použito dále v kódu, takže bych to u tohoto příkladu neřešil..Zbyšek Voda
ÚčastníkTady je o tom celý tutoriál: http://www.arduino.cc/en/Hacking/LibraryTutorial
Zbyšek Voda
ÚčastníkJá myslím, že u těch relé je jedno, do jakých pinů je připojíte. U teploměrů závisí na tom, jakou technologii přenosu dat používají.
Zbyšek Voda
ÚčastníkPoužil bych něco na tento způsob: https://bastlirna.hwkitchen.cz/arduino-zaklady-blikani-bez-funkce-delay/
Zbyšek Voda
ÚčastníkDobrý den,
to jenom s Arduinem nepůjde. I funkce analogWrite() totiž generuje PWM signál, což je taky digitál. Umí na pinu poslat buď 0, nebo 5V. Nic mezi.
Budete tedy potřebovat nějaký HW, například odporový žebřík.
Zbyšek Voda
ÚčastníkDobrý den,
když pošlete po sériové lince například:
Serial.println(hodnotaA) Serial.println(hodnotaB)
tak zařízení, které tyto hodnoty čte nemá šanci poznat, že se jednalo ho proměnné hodnotaA a hodnotaB. Přijatá data jsou to pro něj jenom série nul a jedniček (resp. bytů).
Při sériové komunikaci se většinou postupuje tak, že za číslem vždy následuje nějaký nečíselný znak. Na tento znak čeká program přijímající data. Podle toho pozná, že už číslo přišlo celé a z přijatých bytů poté poskládá přijaté číslo.
Druhou (a jednodušší) možností je použití Serial.parseInt(). Z Arduina, které data odesílá se pošle např.
Serial.print(hodnotaA); Serial.print('a') Serial.print(hodnotaB); Serial.print('a')
Kdy na místě ‚a‘ může být libovolný nečíselný znak.
Funkce Serial.parseInt() čeká, dokud neobdrží nějaký nečíselný znak a po jeho přijetí poskládá číslo z bytů přijatých před ním. Tedy v programu Arduina, které data přijímá by mělo být něco jako:int hodnotaA = Serial.parseInt() int hodnotaB = Serial.parseInt()
Každopádně bych ale asi zvážil, jestli je opravdu vhodné použití sériové linky v případě, když budete mít propojeno více Arduin než dvě. Někdy to nemusí vadit, ale mohlo by to dělat problémy. Možná by bylo lepší použít sběrnici i2c. Ta umožňuje přímé adresování jednotlivých desek.
Zbyšek Voda
ÚčastníkAha. Nemyslím ale, že je to něco, čeho byste se měl obávat 🙂
Zbyšek Voda
ÚčastníkTak to nevím, co by to mohlo být. Kde to psali?
Zbyšek Voda
ÚčastníkPopravdě moc nevím, co tím „bez ISP“ myslíte.
Pokud by to bylo bez ICSP, tak by se jednalo o to, že na desce není připájená programovací hlavice, ale takhle nevím.
Myslím, že se jako začátečník nemusíte ničeho obávat 🙂
Zbyšek Voda
ÚčastníkNejsem si jistý, jestli to vůbec jde.
Každopádně to určitě půjde udělat přes pole.Zbyšek Voda
ÚčastníkCo mě tak narychlo napadá…
Na Arduinu bude program, který se při překročení dané teploty na čidle pokusí připojit na adresu ve tvaru např.:
www.server.cz/mail.php?cidlo=cislo_cidla&teplota=namerena_teplota
Na dané adrese pak musí být soubor mail.php, který bude číst data z URL pomocí GET (to jsou ty údaje za otazníkem). Ty pak jen vezme a například pomocí funkce mail() je odešle.
Zbyšek Voda
ÚčastníkFB buď Zbyšek Voda, nebo stačí napsat na stránku Arduino.cz na FB
Zbyšek Voda
ÚčastníkProblém bude v tom, že tak, jak máte program napsaný je opravdu správně chování, že při zmáčknutí tlačítka se relé vypne!
if(buttonState == HIGH) { //!! tato funkce relé vypíná! digitalWrite(relePin1, LOW); } else{ digitalWrite(relePin1, HIGH); }
Pokud chcete, aby stejný stav jako má relé mělo i tlačítko, musíte prohodit LOW a HIGH:
if(buttonState == HIGH) { digitalWrite(relePin1, HIGH); } else{ digitalWrite(relePin1, LOW); }
Dva IFy na stejné úrovni se rozhodně nedají brát jako „hlavní“ a „podřadný“. „Podřadnosti“ dosáhnete až jejich zanořováním 🙂
Zbyšek Voda
ÚčastníkTo asi bude tim, ze readTemperature je funkce volana na objektu dht1. A funkce potrebuji mit za sebou zavorky (i kdyz treba prazdne). Spravny zapis by tedy byl dht1.readTemperature().
Zbyšek Voda
ÚčastníkNebude chyba v tom, ze cisla zabalujete do uvozovek? On je pak program bere jako String a ne jako cislo 😉
Zbyšek Voda
ÚčastníkTomu se věnují třeba tady: http://diy-scib.org/blog/multiple-dht-humidity-sensors-arduino
Sám jsem to ale ještě nezkoušel.Zbyšek Voda
ÚčastníkDobrý den,
myslím, že to bude tím že nemáte staženou, nebo správně přidanou knihovnu. V návodu máte odkaz přímo v prvním odstavci. Kdyžtak návod, jak přidat knihovnu najdete zde: https://bastlirna.hwkitchen.cz/jak-importovat-knihovnu-do-arduino-ide/:)
Zbyšek Voda
ÚčastníkTo asi nebude problém zapojení. Zkoušel jste nahrát program do Arduina bez čehokoliv k němu připojeného?
Zbyšek Voda
ÚčastníkAhoj, ten čip používá driver CH340G.
Mělo by stačit stáhnout driver odsud: http://www.arduined.eu/ch340g-converter-windows-7-driver-download/
Je to zip, tak bude možná potřeba ho rozbalit.Pak otevřeš ovládací panely -> Správce zařízení a po připojení nového Arduina by se mělo zobrazit v seznamu zařízení – Neznámé zařízení. Klikneš pravým, dáš aktualizovat ovladač, instalovat z lokálního uložiště a navedeš instalační program na stažený balíček.
To by mělo fungovat.
Zbyšek Voda
ÚčastníkOmlouvám se za problémy s linky. Mohl za to spam filtr, který většinu příspěvků s odkazem vyhodnotil jako spam. Nevím, proč se tak zachoval, většinou není tak „agresivní“. Už to snad bude OK 🙂
admin
Zbyšek Voda
ÚčastníkAhoj.
Pokud opravdu trváš na tom C, tak se podívej třeba sem: https://balau82.wordpress.com/arduino-in-c/Jinak pokud jsi opravdu začátečník, tak bych radil začít spíš v klasickém Wiring (knihovna C++), ve kterém se Arduino normálně programuje, a až po chvilce bych se dal do toho C 🙂
Na začátek ten Wiring stačí a přechod na C pak nebude nijak složitý.
Zbyšek Voda
ÚčastníkJde to! Český návod naleznete zde: http://www.hwkitchen.com/news/a16-nas-prvni-klon-arduina/
-
AutorPříspěvky