nicolasoto
Vytvořené odpovědi
-
AutorPříspěvky
-
Zbyšek Voda
ÚčastníkNemáte jiný rozměr vytvářeného pole, než uvádíte v hranatých závorkách?
Podobný error hlásí iint x[2][2] = {{1,2},{2,3},{3,4}};
Když to nepomůže, pošlete kód 🙂
Do_it
ÚčastníkTak my ciknete na 734111563 a domluvíme se 🙂
Zbyšek Voda
ÚčastníkNení zač, ať se daří. Jsem rád, že program funguje 🙂
posjirka
Účastníktady bych šel cestou předem připravené knihovny. Zkus „Sensortransmiter“.
Tady je k ní tutorial:
https://www.root.cz/clanky/arduino-na-433-mhz-komunikuje-s-bazenovym-teplomerem/posjirka
Účastníka je něco co ti nefunguje?
Když se dívám na program tak vpadá vcelku schopně. Jednoduchý, přehledný, bez zbytečných kudrlinek.
Co tam vidím za prostor ke zlepšení:
– nemáš vyřešeno nastavení RTC. Lze udělat auto nastavení po připojení k PC. Jinak po výměně baterie o ten čas přijdeš, nebo musíš měnit baterii za chodu.– 10 bit rozlišení na čidle DS18B20 j nesmysl. Jeho tolerance je 0,5 st.C tudíž nějáké průměrování není nic moc. Já tyhle čidla používám pro celé st.C = nepoužívám float ale int nebo lépe byte pro kladné hodnoty. zbytečně nezabíráš paměť procesoru.
-pro nastavení zapniA, vypniA, … můžeš do podmínky dát i rovná se:
if (datumCas.hour() => zapniB && datumCas.hour() =< vypniB) {
lépe ta využiješ formát času. Teď to nepotřebuješ, ale kdyby si šel až do 23 hod, tak ti nepůjde podmínka vypni, protože další hodina je 00.– v popisech nepoužívej diakritiku. Stejně tyto znaky překlopí anglická sada znaků na „?“
co víc napsat? Mě se tenhle sparťanský přístup líbí a pokud ti vše funguje jak má, nevidím v tom problém. Dobrá práce. Jestli budeš mít dobrou vůli, tak sem prosím dej i schéma případě nějákou fotku ať se ostatní můžou inspirovat …
pedyngro
ÚčastníkMoc díky, konečně to funguje, jak má! Už jsem se sám pokoušel nějakým způsobem předat hodnoty pole přes parametr funkce zobraz, ale nevěděl jsem jak. Asi sebudu muset líp naučit C a nespoléhat na to, že co jde v pythonu, jde všude…
Ještě jednou moc děkuji za čas, který jste si na mě udělal, místo abyste mě odkázal na učebnici C.
hoblik
ÚčastníkDiky za odpoved , je mozne abychom si zavolali nebo na skype ?
PetrJarda_1
Účastníkmám to doplněné ještě zářivkovou trubici pro rostliny „Flora“
ale dík za radu, příští sezonu přidámDo_it
ÚčastníkJojo ty jsou dobrý cena ku výkonu ku účinnosti 🙂 přidej na růst cre led modrý bude se více tvořit kořenový bal a protáhne se kiticka více do výšky.
Zbyšek Voda
ÚčastníkJe tam více problémů.
Jeden problém je v tzv. scope – česky tuším rozsah platnosti proměnných.
Na začátku si vytvoříte pole diody, které je globální – můžete k němu přistupovat ve všech funkcích. Potom si třeba ve funkci a vytvoříte pole diody, které je pro tuto funkci lokální. A tím zastíníte globální pole diody. Dále dojde k zavolání funkce zobraz(), ale ta nevidí to lokální pole z funkce a, ale globální pole diody definované na začátku.Kdyby se nejednalo o pole, stačilo by odebrat klíčové slovo boolean ve funkcích a pak už by se měnila hodnota globální proměnné. U pole to ale tak jednoduché není, protože nejde napsat ve funkci
diody[3][3] = {{1,1,1},{1,0,1},{1,1,1}};
.Napadají mě dvě cesty, jak to řešit.
První možnost:
Vytvoříte si několik globálních polí, která budou obsahovat požadované sekvence
Třeba:boolean v1[3][3] = {{1,1,1},{1,0,1},{1,1,1}};
a potom v jednotlivých funkcích překopírujete obsah požadovaného pole do pole diody.
memcpy(diody, v1, 9 * sizeof(boolean));
O memcopy viz zde: http://www.cplusplus.com/reference/cstring/memcpy/Druhá možnost:
Funkci zobraz() přidáte parametr typu pole, přes který vždy předáte pole do funkce zobraz. To pak můžete nechat kód tak, jak máte (lokální pole v tomto případě nevadí), jen přidáte zavolání funkce s parametrem pole: zobraz(diody).
Globální pole diody pak můžete zahodit. Tato cesta je asi schůdnějšíDo_it
ÚčastníkMusí být baterie nabíjena přez USB? Nebo bylo lepší trochu vic rozvést jak si to představujete
Jarda_1
Účastníkpoužívám LED – 10W
http://www.ebay.com/itm/100W-50W-30W-20W-10W-3W-380NM-840NM-Full-Spectrum-High-Power-LED-Chip-Grow-Light-/321831784996?var=510765932395
foto z lednaAttachments:
Do_it
ÚčastníkNebo jelikož čidlo na měření půdy je nic moc tak dát čidlo na detekci deště čidlo na sluníčko a udělat k tomu graf na zalévání
Co používáš za led?santa999
ÚčastníkAsi je to něco nového koukám. Nicméně jsem to dnes zkoušel na XP a tam to jede v pohodě takže pro mě je to na 50% vyřešené 😀
pedyngro
ÚčastníkPokusil jsem se ten soubor nahrát tlačítkem „procházet…“, ale nezobrazilo se to tu, takže jsem to vložil do odpovědi ctrl+c ctrl+v… Jinak moc díky za pomoc!
[code]
byte led1 = 8; //nastavení pinů pro jednotlivé diody
byte led2 = 10;
byte led3 = 12;boolean diody[3][3] = {{},{},{}};
int znak = 20; //doba svícení
int mezeraZnak = 10; //mezera mezi dvěma bliknutími v jednom písmenu
int mezeraPismeno = 30; //mezera mezi písmenychar napis[] = „calex“;
int delkaNapisu = sizeof(napis)/sizeof(napis[0]);void a(){
boolean diody[3][3] = {{1,1,1},{1,0,1},{1,1,1}};
zobraz();
}void c(){
boolean diody[3][3] = {{1,1,1},{1,0,0},{1,1,1}};
zobraz();
}void e(){
boolean diody[3][3] = {{1,1,1},{1,1,0},{1,1,1}};
zobraz();
}void l(){
boolean diody[3][3] = {{1,0,0},{1,0,0},{1,1,1}};
zobraz();
}void o(){
boolean diody[3][3] = {{1,1,1},{1,0,1},{1,1,1}};
zobraz();
}void x(){
boolean diody[3][3] = {{1,0,1},{0,1,0},{1,0,1}};
zobraz();
}void zobraz(){
for (byte i = 0; i < 3; i++){ //postupně projíždí sloupce
for (byte j = 0; j < 3; j++){ //projíždí hodnoty řádku v každém sloupci
if (diody[i][j] == 1){ //pokud je hodnota 1, rozsvítí příslušnou diodu
if (j == 0){
digitalWrite(led1,HIGH);
}
if (j == 1){
digitalWrite(led2,HIGH);
}
if (j == 2){
digitalWrite(led3,HIGH);
}
}
}
delay(znak); //nechá chvíli rozsvíceno
digitalWrite(led1,LOW); //všechno zhasne
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
delay(mezeraZnak); //nechá zhasnuto
}
delay(mezeraPismeno); //nechá zhasnuto – mezera mezi písmeny
}void setup() {
Serial.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}void loop() {
for (int i = 0; i < delkaNapisu; i++){ //projíždí po jednom pole „nápis“
if(napis[i] == ‚a‘){ //pokud je aktuální hodnota v poli „a“, pustí funkci „a“
a();
}
if(napis[i] == ‚c‘){
c();
}
if(napis[i] == ‚e‘){
e();
}
if(napis[i] == ‚l‘){
l();
}
if(napis[i] == ‚o‘){
x();
}
if(napis[i] == ‚x‘){
x();
}
}
}
[/code]Zbyšek Voda
ÚčastníkPošlete celý kód, takhle se nikam neposuneme.
pedyngro
ÚčastníkPole mám definované na začátku programu (mimo setup a loop), zjistil jsem, že při printování z funkce „zobraz“ jsou tam hodnoty, které jsou zadané na začátku při vytvoření pole, ty další změny už to nebere v potaz…
Vojtěch Vosáhlo
ÚčastníkPole musíte mít nadefinované mimo smyčku, třeba na začátku programu. Takhle s ním může pracovat jen smyčka ve které bylo pole „stvořené“.
pedyngro
ÚčastníkDíky, mělo by to fungovat, ale když nastavím např. ve funkci „a“ hodnoty pole „diody“, někde se to cestou ztratí:
void a(){
boolean diody[3][3] = {{1,1,1},{1,0,1},{1,1,1}};
Serial.println(diody[0][0]);
zobraz();void zobraz(){
Serial.println(diody[0][0]);
for (byte i = 0; i < 3; i++){
atd…Když to nechám vyprintovat z té funkce, kde hodnoty nastavuji, je všechno v pořádku, ale v další funkci, která s hodnotami dále pracuje, už je všechno „0“.
Nevíte, čím by to mohlo být?
martinius96
ÚčastníkZdravím, programoval som Arduino UNO s Ethernet shieldom, i keď pri počasí. Údaje som nahrával online na web do databázy, následne bolo možné údaje zobrazovať, pracovať s nimi. Vedel by som vám teda pomôcť so zaznamenaním, uložením a vyobrazením na webe. K dispozícii vám však môžem byť až o 3 týždne. Ak by vás to zaujalo, môžeme sa dohodnúť. Kontaktný e-mail: martinius96@gmail.com
martinius96
ÚčastníkZdravím vás, robil som čosi podobné, a vedel by som vám pomôcť, zaznamenával som štandardné hodnoty, ktoré som nameral a uploadoval to na internet cez Arduino s Ethernet Shieldom v pravideľných intervaloch, na stránke sa údaje aj štatisticky vyhodnocovali a stránka obsahuje aj prognózu počasia. Momentálne je stránka neaktívna, ale je tu: arduino.php5.sk
Zbyšek Voda
ÚčastníkDobrý den, v C název proměnné nezměníte.
Můžete ale udělat dvojrozměrné pole.Místo
boolean dio1[] = {1,1,1}; boolean dio2[] = {1,0,1}; boolean dio3[] = {1,1,1};
zapište
boolean dio[3][3] = {{1,1,1}, {1,0,1}, {1,1,1}}
a potom už můžete indexovat tak, jak jste to zamýšlel:
třeba:dio[j][i]
Jarda_1
Účastníkgrowduino.cz – dobrý, ani ceny nejsou přemrštěné.
Asi jak to máš, ty to je nejjednodužší, ale chilli papričkám vadí přilití což se se může stát pokud bude chladno a zataženo, můj cíl je dávkovat vodu na základě vlhkosti půdy. Ledky také využívám než dám sazeničky ven.pedyngro
Účastníkchtěl jsem přiložit soubor s programem, ale nějak se to tu nezobrazuje…
Do_it
ÚčastníkZdravím v česku již jedna platforma na automatizaci zahrady je jmenuje se growduino.cz podívejte se pro inspiraci :). Já jsem Automatické zavlažování řešil že jednou za určitou dobu cca za dva dny, se seplo relé na určitou dobu za kterou ke květine priteklo cca půl litru. To Čidlo z nerezu je velice zajímavé a vyskoušim. Rád bych vytvořil něco propracovanější třeba udělat rovnou hydroponii v Indor prostředí. Mám udělany ledky přimo pro růst a květ(plod). Tak co ví na to?
Do_it
ÚčastníkZdravím o toto téma se intenzivně zajímám. Doma jeden takový projekt mám. Takže nějaké poznatky mám. V česku jedna taková platforma na automatizaci je chlapci z growra ji již udělali stránky maj growduino.cz myslím tak se koukněte pro inspiraci..
posjirka
Účastníkto vojtech: používám diagram designer.je až primitivně funkční:
https://www.zive.cz/clanky/diagram-designer-rychla-tvorba-diagramu-zdarma/sc-3-a-167191/default.aspxto marvik: z těch pevných fotoodporů mám trochu osypky. startovat proces při východu slunce je velmi nešťastné. nezapomeň, že i krátkodobý výpadek napájení (špička) ti může resetovat procesor. Ten pak „ztratí nit“ a musí se něják znovu chytit. jinak ti může spinkat do dalšího rána. proto se mi to řešení moc nelíbí. Rozhodně schavaluju koncáky jako vymezení max. polohy otáčení panelu. Nastavení na nejlepší hodnoty samozřejmě jde.
Zatím bych se vykašlal na „solární chlazení“ při překročení 28 st.C.
V příloze máš upravený algoritmus. je to už trochu hybrid a nejsme z něj moc nadšený. Radši bych celý proces regulace řešil „real time“ bez zpoždění. No pro začátek by ti toale mohlo vcelku vyhovovat…
Attachments:
kimot
ÚčastníkAsi myslíte něco jako toto:
videocca od času 4:30
Jinak není pravda, že na tyto RFID karty nelze i zapisovat.
Sice nezměníte jedinečné číslo karty, ale po zadání příslušných hesel je možné na kartu zapisovat v různých režimech a do různých oblastí.
Vždyť se vyrábí karty s různou velikosti paměti ( 1k, 4k nebo mini ).
Ale to už je „vyšší dívčí“ oproti pouhému vyčtení seriového čísla.
Nicméně ta knihovna pro arduino to umí a obsahuje i příslušné ukázkové programy.
Takže karta může sloužit třeba i jako nabitá peněženka, z které se odečítá hodnota, uložení údajů o majiteli atp.marvik.jiri
ÚčastníkTak nějak by to mělo skutečně fungovat. Jen bych upravil to natočení o vteřinu, ale rád bych na konkrétní snímané hodnoty. Čtení by mohlo být delší i třeba 5minut. Jen narážím na problem s mrakem, který zrovna zakryje jeden fotorezistor nebo proletí pták, list. Cokoli co může na chvilku zastínit jeden ze dvou fotorezistorů. Proto si myslím, že by bylo lepší snímat po čase (třeba 1-5minut) kontinuálně hodnoty z rezistorů a při spuštění motoru je sledovat dokud se nevyrovnají a poté natáčení vypnout a opět čekat několik minut.
Fotorezistory 2 pohyblivé s panelem a 2pevné.
pohyblivé na sledování slunce
pevné na spuštění programu při svítání a následně při nahřátí vody k určení polohy slunce = dopoledne – FRvýchod má vyšší hodnotu světla =>solar se schová na západní stranu / odpoledne – FRzápad má vyšší hodnotu světla => solar se natočí na koncový spínač východuVojtěch Vosáhlo
ÚčastníkNo nevím jestli v nejlepších rukou, k takovým funkčním diagramům mám ještě kousek cesty. Mimo to kde je kreslíš? Nějaký osvědčený soft by se hodil.
Každopádně vložte sem prosím kód jak psal jirka. Použijte možnost textu code. Takhle se to opravdu velmi těžko čte. Nebo to vložte třeba na pastebin a pak pošlete odkaz, je to jedno. Člověk se v tom akorát nemůže vyznat…
-
AutorPříspěvky