posjirka
Vytvořené odpovědi
-
AutorPříspěvky
-
posjirkaÚčastník
TO NASTRANEK
i když nemám rád WIKIPEDII dporučuji si přečíst:
https://cs.wikipedia.org/wiki/DCF77posjirkaÚčastníkjá jsem v pohodě 🙂
ber to tak, každý něják začínal a i já na sobě cítím, že občas hledám výsledek bez toho aniž bych věděl princip řešení. Pak vznikají tyto polopravdy a nesprávná terminologie. Proto se vždycky ptám co vlastně kdo chce resp. co to jejich udělátko má dělat a snažím se je směrovat na , sice primitivní, ale funkční, řešní složené z konkrétních příkazů, než používat 1 příkaz z knihovny a nevědět co to vlastně dělá. Samozřejmě že knihonvy používám taky … už jsem hodně odbočil …. 🙂posjirkaÚčastníktím pádem bych to asi řeil něják takto:
byte pins[8] = {2,3,4,5,6,7,8,9}; // prirazeni pinu jednotlivym bitum byte data = 170; // vstupni data void setup() { // nastaveni pinu jako vystupni for (int i=0; i <= 7; i++){ pinMode(pins[i], OUTPUT); } } void loop() { // prenos dat na piny for (int i=0; i <= 7; i++){ digitalWrite(pins[i], bitRead(data,i)); } }
posjirkaÚčastníkDTH11 i DTH22 – mám doma v šuplíku a ještě jsem se na ně nedostal. Je pravda jak píšeš : má napevno I2C adresu… takže buď co čidloto pin, nebo použití multiplexu
nejsem dotýkací, takže jen pro upřesnění:
o A4/A5 jako analogovém komunikačním rozhraní pro LCD jsem nepsal já ale NASRANEK 🙂
Jinak souhlas u ATMEGA1284 je I2C/TWI sběrnice na fyzických pinech 22/23 (D16/D17)posjirkaÚčastníkmyslím že ti spíš pomůže toto:
http://tronixstuff.com/2011/10/22/tutorial-arduino-port-manipulation/
případě popis je tu:
https://www.arduino.cc/en/Reference/PortManipulationCo ti posílal BlindP je spíš pro poslání byte seriově přes 1 piny (např pro posuvný registr). To co ti posílám já je vlatně zápsi byte přímo na port arduina/atmegy. Podle stavu log. 1 a 0 se nastaví jednotlivé piny portu….
Vyber si co ti bude více vyhovovat. Obě možnosti jsou použitelné jen nabízejí 1 ruzná řešení …
posjirkaÚčastníkbastleni 21 stoleti. Moc hezky udělané, díky za projekt. torchu se mi nelíbí to blikání LED diody se použitím delay , ale hlavní je že to funguje jak potřebuješ. Gratulace ..
posjirkaÚčastníkAhoj,
tady máš jeden z příkladů:
http://www.instructables.com/id/Ethernet-Switching-with-Arduino/
případně:
https://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/web-server-LED-control/
a něco s videem:
posjirkaÚčastníkDCF je zbytečně drahé. Jedno z řešení je RTC modul postavený na DS1203 nebo 1207. Nejpřesnější je DS3231. Jednorázově jej nastavíš a pak používáš. Nicmémě pro začátek bych to vynechal …
posjirkaÚčastníkještě je obrovská otázka : kolik toho budeš během používání upravovat/nastavovat.
Mám na mysli tlačítka a nějáké menu. Pokud chceš udělat jednoobrazovkový přehled, kde budou pouze zobrazené informace … pak UNO by mělo stačit. nejhorší jsou takový věci jako nastavení a procházení položek. To pak zabírá zbytečně paměť a místo.VE výsledku MEGA je universální řešení, UNO je super pro začátek a za pár korun.
Jinak ptal ses proč jsem doporučoval to UNO z ebaye. Protože bylo hezky pospáno co obsahuje. Popis produktu Arduino compatibility je nic neříkající. Jestli ses na to trochu díval tak Arduino je složenina 3 koponent:
1. zdroj
2. převodník USB/UART
3. mikroprocesor ATMEL …Právě v tom převodníku je občas problém. převodník muže být buď další Atmel Atmerga (16U2, 8U2, …) a je to v pohodě. Občas se používá CP120x ten je taky v pohodě co se týká připojení k PC ale je extrémně citlivý na statickou elektřinu a někdy nemá vyvedený auto reset před nahráním programu. CH340g je teď v poslední době nejčastěji používaný na činských klonech. Mám jej taky, ale musíš si nejdřín najít a instalovat knihovnu a pak doufat 🙂 . Ještě se používal něco xx232 ale od něj se postupně ustupje.
Ke konci … ta dlouhá prodleva mezi odesílání zprávy je u všech. Mě to dokonce někdy spadne na gateway time out.
posjirkaÚčastníkno jsme sice už hodne OT ale nedá mi to.
Proč by UNO mělo být nedostatečné?
Ano už jsem jej párkrát zahltitl do poslední kapy, ale vždy jsem sina šel cestu jak uspořit místo.
Co se týká požadavku na zobrazení něčeho někde … proč proboha nutíte Arduino dělat věci, které zvládne spousta jiných a lepších řešní. Pokud chceš zapisovat data o počasí na na základě nich dělat najákou analýzu tak proč prostě nepoužiješ Arduino jako sběrač dat a neposíláš to všechno buď na nějáký exostie, nebo (možná pro tebe lépe) do excelu, případně do tabulky v google documents.
Z toho jsou dělat jak různé grafy, dodatečně dopisovat další informace, atd.
7″ LCD mi přijde jako zlatem potažený LCD od nokie 5110. vypadá to hezky, ale přidaní hodnota = 0.posjirkaÚčastníkjak jsem psal … já mám dobré zkušenosti s MCU Store a máme od něj v kroužku elektra pár desek a bez problémů. Mám i desku tady z HWKITCHEN, má pár z EBAYe.
Pro začátečkníka bych asi doporučil tuto cestu:
http://aukro.cz/funduino-uno-r3-usb-kabel-avr-arduino-akce-i6472226442.html
i když je to UNO, má hlavní výhodu a to je výměný čip.
případně :
http://www.hwkitchen.com/products/seeeduino-v3-0-atmega-328p/U těch cos dával na ebay není vidět co mají za převodník. Pokud používají atmega16U2 nebo podobný čip tak v poho. Pokud mají CH340g není to problém ale pro začátek tě to může zdržed a možná i znechutit. Pozor mají ho i klony z gme.cz
jinak rozdíl mezi deskou z číny a originál Arduino je v podstatě nulový. Naopak některé desky mají oproti originálu i pár užitečných věcí navíc (třeba +2 analogové výstupy navíc, vypínatelný reset, paralelní řadu výstupních pinu v rastru 2.54mm, přepínatelné pracovní napětí, …). Opačně můžeme se domnívat, že originál bude mít lépe prověřené součástky, z ebay tam budou sázet co jim přijde pod ruku.
Resumé : kup si něco prověřeného a je jedno jestli to je originál nebo ne. Navíc koupě z ciziny a pak nadávání , že není v čechách žádná podpora … (tim ted nemyslím tebe, jen popisuju běžnou praxi)
posjirkaÚčastníkhmmm, tak to vypadá na chybu jménem ARDUINO.
máš 2 možnosti:
1, mít ještě dodatečnou podmínku, že dokud neporběhne setup() tak se nesmí spustit proces. Něco jako odpojení zdroje s tím, že ve smyčce loop() jej připojíš.
2, nahrát program bez podpory bootloaderu:
tzn. 1 arduino budeš mít jako to, co pracuje a dále už se nebude chovat jako arduino a druhé budeš mít jako programátor pro nahrání nové verze = přes USB nepůjde nahrát nový program, pouze komunikace s PC. Funguje to tak, že z 1. arduina udělaáš tzv. stand alone (v podstatě holý procesor se zdrojem) a programovat jej budeš pomocí ICSP rozhraní.
https://www.arduino.cc/en/Tutorial/ArduinoISPmáš možnost to vyzkoušet?
posjirkaÚčastníkzkus tam dát ten delay 20s … jen test nikoliv řešení
posjirkaÚčastníkjak to přesně vypadá?
Jak spustíš Arduino, tak okamžitě to takto udělá, nebo je nejdřív pauza?Ono totoiž arduino má na začátku bootloader, který mimo jiné uvádí piny do nějákých mezistavů.
Zkus dát do void setup(){ } navíc delay(20000);
ten by měl rozběh všeho zpozdit o 20s.
pokud i tak hned po spuštění arduina okamžitě začne hýbat s válci, je chyba v bootloaderu. Musel by s to pak udělat tak, že bys musel nahrát program přes ICSP, tzn. z arduina bys odstranil bootloader a nahrál program jako čistý kod bez berliček od Arduina.posjirkaÚčastníkco bys řekl na toto:
// ovladani 4 paneumatickzch valcu // v01 // DUPLA & by JP 2016 // Konstanty pro pneumatické válce #define dvere 2 #define davkovani 3 #define lisovani 4 #define vyhazovani 5 // ---------------------------------------- // Konstanty pro snímače #define vyhazovaniZasunute 6 #define vyhazovaniVysunute 7 #define lisovaniVysunute 8 #define lisovaniZasunute 9 #define dvereZasunute 10 #define dvereVysunute 11 #define davkovaniVysunute 12 #define davkovaniZasunute 13 // ---------------------------------------- // pomocne promenne void setup() { // Pneumatické válce nastaveny jako výstupy pinMode(dvere, OUTPUT); pinMode(davkovani, OUTPUT); pinMode(lisovani, OUTPUT); pinMode(vyhazovani, OUTPUT); // Snímače nastaveny jako vstupy pinMode(vyhazovaniZasunute, INPUT); // Snímač - vyhazování zasunuté pinMode(vyhazovaniVysunute, INPUT); // Snímač - vyhazování vysunuté pinMode(lisovaniVysunute, INPUT); // Snímač - lisování vysunuté pinMode(lisovaniZasunute, INPUT); // Snímač - lisování zasunuté pinMode(dvereZasunute, INPUT); // Snímač - dveře výstup zasunuté (otevřené) pinMode(dvereVysunute, INPUT); // Snímač - dvěře výstup vysunuté (zavřené) pinMode(davkovaniVysunute, INPUT); // Snímač - dávkování vysunuté pinMode(davkovaniZasunute, INPUT); // Snímač - dávkování zasunuté // inicializace seriove komunikace Serial.begin(9600); } void loop() { Serial.println("krok 1 ... nastaveni vychozi stav"); vychozi_stav(); // nastaveni vychoziho stavu Serial.println("krok 2 ... vysun valec dvere"); vysun_valec_dvere(); Serial.println("krok 3 ... vysun valec davkovani"); vysun_valec_davkovani(); Serial.println("krok 4 ... pauza 4s"); delay(4000); // pauza 4s Serial.println("krok 5 ... zasun valec davkovani"); zasun_valec_davkovani(); Serial.println("krok 6 ... vysun valec lisovani"); vysun_valec_lisovani(); Serial.println("krok 7 ... pauza 3s"); delay(3000); // pauza 3s Serial.println("krok 8 ... zasun valec davkovani"); zasun_valec_lisovani(); Serial.println("krok 9 ... zasun valec dvere"); zasun_valec_dvere(); Serial.println("krok 10 ... vysun valec vyhazovani"); vysun_valec_vyhazovani(); Serial.println("krok 11 ... zasun valec vyhazovani"); zasun_valec_vyhazovani(); } void vychozi_stav(){ // Nastavení pneumatických válců do výchozí polohy - vše zasunuto Serial.println("Nastavuji vychozi stav ..."); zasun_valec_davkovani(); zasun_valec_lisovani(); zasun_valec_dvere(); zasun_valec_vyhazovani(); } void vysun_valec_dvere() { Serial.println("Vysouvam valec dvere ..."); while(digitalRead(dvereVysunute)==0) { digitalWrite(dvere, LOW); } Serial.println("Vysouvam valec dvere ... hotovo"); } void vysun_valec_davkovani() { Serial.println("Vysouvam valec davkovani ..."); while(digitalRead(davkovaniVysunute)==0) { digitalWrite(davkovani, LOW); } Serial.println("Vysouvam valec davkovani ... hotovo"); } void zasun_valec_davkovani() { Serial.println("Zasouvam valec davkovani ..."); while(digitalRead(davkovaniZasunute)==0) { digitalWrite(davkovani, HIGH); } Serial.println("Zasouvam valec davkovani ... hotovo"); } void vysun_valec_lisovani() { Serial.println("Vysouvam valec lisovani ..."); while(digitalRead(lisovaniVysunute)==0) { digitalWrite(lisovani, LOW); } Serial.println("Vysouvam valec lisovani ... hotovo"); } void zasun_valec_lisovani() { Serial.println("Zasouvam valec lisovani ..."); while(digitalRead(lisovaniZasunute)==0) { digitalWrite(lisovani, HIGH); } Serial.println("Zasouvam valec lisovani ... hotovo"); } void zasun_valec_dvere() { Serial.println("Zasouvam valec dvere ..."); while(digitalRead(dvereZasunute)==0) { digitalWrite(dvere, HIGH); } Serial.println("Zasouvam valec dvere ... hotovo"); } void vysun_valec_vyhazovani() { Serial.println("Vysouvam valec vyhazovani ..."); while(digitalRead(vyhazovaniVysunute)==0) { digitalWrite(vyhazovani, LOW); } Serial.println("Vysouvam valec vyhazovani ... hotovo"); } void zasun_valec_vyhazovani() { Serial.println("Zasouvam valec vyhazovani ..."); while(digitalRead(vyhazovaniZasunute)==0) { digitalWrite(vyhazovani, HIGH); } Serial.println("Zasouvam valec vyhazovani ... hotovo"); }
-
AutorPříspěvky