duinozone.cz - Arduino a Raspberry fórum

Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Projekty / Meteostanica s ESP8266 - NodeMCU
« Poslední příspěvek od martinius96 kdy Únor 06, 2019, 02:04:30 dopoledne »
Dnes by som vám v krátosti predstavil projekt, ktorý som tvoril už pred takmer dvomi rokmi. Bol to druhý webovo orientovaný projekt, ktorý som tvoril v súvislosti s mikrokontrolérmi a za svoju životnosť si prešiel rôznych úpravami - najmä v oblasti využitých senzorov, ktoré sa niekoľko krát menili z dôvodu spoľahlivosti, chybných meraní a ďalších javov. Po hardvérovej stránke som pre mozog projektu využil vývojovú dosku NodeMCU v3 Lolin s wifi čipom ESP8266 pre pripojenie do wifi siete a odosielanie nameraných údajov po HTTPS protokole do webového rozhrania POST metódou. Vývojovú dosku ESP8266 je možné programovať v prostredí ArduinoIDE ako klasické Arduino s knižnicou Wifi.h pre pripojenie k wifi sieti po doinštalovaní Arduino "jadra" pre ESP.

Meteostanica umožňuje ukladať do MySQL databázy:
    Teplota dnu
    Teplota von
    Vlhkosť vzduchu
    Atmosférický tlak

Poďme si bližšie predstaviť webové rozhranie a zistiť, čo vlastne ponúka pre používateľa:
    Real-time tabuľka pre zobrazenie posledných nameraných údajov so zobrazením času a tendencie - stúpa/klesá/ustálená (Štandardne je čas záznamu 5-15min)
    Zmena názvov - umiestnenie senzorov, pomenovanie senzora
    História meraní - 30 dní dozadu v tabuľkovom prevedení
    Maximá, minimá, priemer za deň / 7 dní / 30 dní - budíková reprezentácia
    Grafická reprezentácia vývoja počasia za 24 hodín / 7 dní
    Prognóza počasia - BETA (predpoveď na základe vývoja počasia)
    Vzdialený reset dosky
    Log (neúspešné prihlásenie so záznamom IP adresy, porucha senzora - neplatné hodnoty)
    Zdrojový kód pre ESP8266
    Zmena loginu, odhlásenie sa, prihlásenie sa

Dáta sú predávané serveru a spracované jazykom PHP. Na základe použitých senzorov viem, aké hodnoty vracajú pri nesprávnom zapojení, vytiahnutom kontakte a pod. Napríklad u populárnych teplotných senzorov DS18B20 na OneWire zbernici je to -127°C pri zlom zapojení (nezapojení) a pri odpojení napájacieho vodiča (Vcc) sa najčastejšie nameria teplota 85°C.

Viem si teda tieto kritické hodnoty ošetriť a prípadný problém oznámiť do logu a zlú hodnotu nezapísať. Nakoľko som potreboval merať aj vlhkosť vzduchu - nech je už tá meteostanica poriadna :), hľadal som senzor pre dvojkombináciu teplota + vlhkosť. Narazil som na DHT22, čo je pomerne používaný senzor v tejto sfére.

Senzor ma ale nepotešil, nakoľko mal často zlé dáta, i keď bol okolím vychválený, že nič lepšie nie je. Často krát sa namerala hodnota 0 pre teplotu i pre vlhkosť. Tento defekt - porucha priemerne vychádzala na jedno z 12 meraní, čo je dosť veľká chybovosť na jednoduchý digitálny senzor. Preto som siahol po náhrade v podobe SHT21, respektíve Si7021 (iné označenie pre modul). Modul komunikuje po I2C zbernici a  osvedčil sa.

Modul bol veľmi spoľahlivý a v prípade problému s komunikáciou doska namerala -5% vlhkosti, teda som tiež vedel ošetriť tento stav a prípadný problém hlásiť do logu a problém riešiť. Senzor sa osvedčil a počas prevádzky niekoľko mesiacov som nenarazil na problém. Keďže som meteostanicu ďalej rozširoval a chcel som zaznamenávať aj atmosférický tlak, vyskúšal som senzor BMP280, ktorý vie merať teplotu a atm. tlak vzduchu. Meranie tlaku vzduchu po prepočte na nadmorskú výšku bol s rozdielom do 0,4hPa, čo si myslím, že je na modul za euro aj niečo výborné.

Onedlho bol senzor vymenený za BME280, ktoré vie zaznamenať teplotu, atmosférický tlak vzduchu a vlhkosť vzduchu. Naozaj kompaktný senzor 3v1, odporúčam. Tento senzor som teda umiestnil von a modul skryl do radiačného štítu, ktorý ho chráni pred vodou, či už v podobe dažďa, alebo kondenzátu.

Moduly BMP a BME sú ľahko zameniteľné a často dochádza k omylom pri nákupe, kedy predajca zašle BMP verziu za cenu BME, býva 3x drahšia. Rozlišovať by sa mali zvýraznením písmena na senzore, ale často to nie je pravidlom. Nakoľko BMP, resp. BME280 komunikuje po I2C zbernici, má určitú adresu pod ktorou vystupuje. Problém môže nastať, ak chceme použiť viacero týchto senzorov. Riešením je emulovať softvérovo I2C zbernicu na iných pinoch, kam sa ďalší senzor pripojí, alebo prostredníctvom SDO pinu je možné napojiť ho voči Vcc (pullup), respektíve GND (pulldown), čím získame inú adresu a môžeme tak využiť viacero rovnakých senzorov na jednej hardvérovej I2C zbernici. Zaujímavosťou u týchto modulov je aj možnosť určiť nadmorskú výšku na základe teploty a absolúteho tlaku vzduchu a i ten prepočítať na relatívny v závislosti od nadmorskej výšky a teploty:
Kód: [Vybrat]
relativny_tlak = absolutny_tlak / pow(1 - ((0.0065 *nadmorska_vyska) / (teplota + (0.0065 *nadmorska_vyska) + 273.15)), 5.257);Doterajšie riešenie bolo vybavené takýmto typom hardvéru pre záznam dát:
    DS18B20 (teplota dnu), BME280 (tlak, teplota, vlhkosť)
    DHT22(teplota dnu, vlhkosť), BMP280 (tlak, teplota)
    DS18B20 (teplota dnu), DHT22 (vlhkosť von), BMP280 (tlak, teplota)
    DS18B20 (teplota dnu, SHT21 (vlhkosť von), BMP280 (tlak, teplota)
Webové rozhranie využíva voľne dostupnú šablónu Klorofil od Bootstrapu, AJAX-ové volania PHP scriptov pre real-time tabuľku, HTML elementy pre tlačidlové rozhranie používateľa. Pre grafy som využil hotový balík Google Charts. Zjednodušenú verziu tejto meteostanice je možné zdarma vyskúšať v pripravenom webovom rozhraní na adrese: https://arduino.php5.sk/meteostanicav2/
Ak si chcete webové rozhranie vyskúšať, máte možnosť! Pri použití Arduina s Ethernet shieldom W5100, alebo ESP8266 (NodeMCU) s hardvérom: DS18B20 (teplota dnu), DHT22 (vlhkosť), BMP280 (teplota, tlak vzduchu). ESP8266 využíva HTTPS pripojenie s knižnicou WifiClientSecure. Arduino podporuje iba HTTP spojenia. Vo webovom rozhraní meteostanice nájdete aj potrebné knižnice pre senzory.
Zdrojový program pre Arduino: https://arduino.php5.sk/meteostanica-arduino.php
Zdrojový program pre NodeMCU: https://arduino.php5.sk/meteostanica-nodemcu.php
Fotogaléria webového rozhrania: Obrázky sú ilustračné z webového rozhrania, ktorá je voľne prístupné, každý tam môže nahrať čo chce, teda dáta sú neplatné, prestrelené, atď....



2
Projekty / Wifi teplomer s ESP8266 v STA - AP móde
« Poslední příspěvek od martinius96 kdy Únor 04, 2019, 01:19:02 dopoledne »
Dnes v krátkosti predstavím projekt wifi teplomera. Teplomer využíva wifi čip ESP8266 na vývojovej doske NodeMCU v3 Lolin. Wifi čip okrem záznamu údajov drží aj webový server, kde vypisuje namerané údaje. Údaje sa odmerajú vždy pri načítaní stránky. V nečinnosti sa dáta nezaznamenávajú. Webový server umožňuje spúšťať HTML + CSS kód, čo umožňuje do istej miery spraviť aj pekné grafické rozhranie pre vykreslenie teplôt používateľovi napríklad do tabuľky. Prostredníctvom Javascriptu je možné dáta aj automaticky aktualizovať na stránke, avšak túto možnosť som nevyužil, nebola potrebná.

Existujú dve verzie tohto projektu, pričom funkčnosť webstránky ako takej je totožná. V oboch prípadoch na ESP8266 beží webserver, ktorý vykreslí teploty do tabuľky. Pri verziách sa rozlišuje konektivita. V jednom prípade je možné využiť už existujúcu LAN sieť, do ktorej sa doska pripojí a na statickej, alebo dynamickej IP adrese drží webserver. Používateľ po zadaní IP do okna prehliadača dostane na požiadavku stránku od ESP s teplotami.

V druhom prípade doska vysiela vlastnú SSID v AP móde ako prístupový bod. Používateľ k doske pristúpi zadaním hesla do siete (je obsiahnuté v programe ESP8266). Doska vysiela SSID so šifrovaním WPA/WPA2 PSK, prípadne je možné vysielať otvorenú wifi sieť. Dáta sú prístupné iba v dosahu tejto wifi siete mimo LAN siete domácnosti. Na ESP beží aj DHCP server, ktorý po úspešnej autentizácii používateľa pridelí IP adresu z rozsahu. Webová stránka sa nachádza na IP adrese brány - ESP.

Dáta o teplote sú zaznamenávané z dvojice teplotných senzorov DS18B20, ktoré sú zapojené na OneWire zbernici, ktorá umožňuje zber dát po jednom vodiči s možnosťou ťahania vodiča na desiatky až stovky metrov. DS18B20 sa vyrábajú v dvoch hlavných verziách - tzv. interiérový senzor v obale tranzistora, alebo vo vodotesnom - exteriérovom vyhotovení v hliníkovej rúrke. Zbernica OneWire je vhodná do interferenčného prostredia a je možné na ňu zapojiť až 256 senzorov. Jednotlivé senzory sú rozdelené svojou adresou z výroby - sériovým číslom. Existujú 2 hlavné možnosti pripojenia senzorov. Normálne zapojenie a parazitné, u oboch je možné napájať na 3.3 - 5.5V.
Rozdiely sú patrné už zo schém:


Viac o projekte je možné nájsť na webe: https://arduino.php5.sk/wifi-teplomer.php a dozvedieť sa ďalšie zaujímavé info k projektu.
3
Projekty / Autonómne vykurovanie cez internet s ESP8266
« Poslední příspěvek od martinius96 kdy Leden 15, 2019, 18:20:23 odpoledne »
Ahoj všetci, dnes by som vám rád predstavil môj projekt, ktorý som tvoril 2 roky, čas od času som do neho niečo pridal a dnes by som vám rád predstavil jeho plnú funkcionalitu. Dozviete sa, čo systém vie, prečo je autonómny, prečo som zvolil ESP8266 namiesto Arduina a aké technológie som pre tento webovo orientovaný projekt vykurovania použil. Systém je schopný riadiť vykurovanie v dome, pôvodne navrhnutý pre chatu s plynovým kotlom.

Webové rozhranie je tvorené pre používanie laikami, teda je vhodný pre každého bez ohľadu na skúsenosti s prácou s počítačom, či webovým prehliadačom. To, čo používateľ potrebuje vie na stránke  nájsť v menu a na jednotlivých podstránkach, ktorými vie systém riadiť. Používam 6 teplotných senzorov DS18B20 pre záznam teplôt v miestnostiach a taktiež aj pre teplotu vody v radiátoroch, respektíve v obehovom okruhu kotla.

Systém umožňuje riadiť dva výstupy - fyzické relé pre:
    Kúrenie - kotol s voliteľnou hysterézou s voliteľným senzorom teploty pre riadenie, voliteľná referenčná teplota
    Obehové čerpadlo - voliteľná referenčná teplota, voliteľný senzor teploty pre riadenie, spína ak je teplota pod nastavenú - bez hysterézy
Oba tieto výstupy viem ovládať v dvoch základných režimoch:
    Automatický - pracuje sám autonómne, s hysterézou (kotol), s referenčnými teplotami, zvolenými senzormi
    Manuálny - manuálne ZAP/VYP - natvrdo na dobu neurčitú (používateľ je upozornený)

Vývojovú dosku NodeMCU v3 Lolin  s čipom ESP8266 som využil z dôvodu wifi konektivity s dobrým dosahom k AP. Podporuje šifrované HTTPS spojenie na web, kde predáva dáta serveru, ktorý ich ďalej spracuje. Doska okrem odosielania teplôt plní aj dôležitú funkciu v spúšťaní scriptov, ktoré umožňujú tomuto systému byť autonómnym - dokáže sa riadiť sám na základe nameraných teplôt, hysterézy, referečných teplôt.

Doska teda v pravidelných intervaloch spúšťa logiku systému, ktorý dokáže zmeniť stavy výstupov ZAP/VYP (používateľ spúšťa rovnaké scripty na pozadí ak je na webe AJAX-ovými volaniami). Doska si sťahuje aj aktuálne informácie o referenčných teplotách, hysteréze a v prípade výpadku wifi spojenia, alebo webstránky doska ďalej riadi autonómne domácnosť s posledne známymi referenčnými teplotami a hysterézou. Pri nadviazaní spojenia s webom sa okamžite aktualizuje a riadi sa podľa webu.

Webové rozhranie z hľadiska používateľa umožňuje:
    Zmeniť názvy teplomerov, napr podľa miestností
    Prezeranie real-time dát o teplotách (Karta Prehľad: dáta sa menia automaticky v tabuľke)
    Riadiť kúrenie, obehové čerpadlo
    Prezerať grafy za 24 hodín pre výstupy s minútovou reprezentáciou a pre teploty so 4 minútovou reprezentáciou nameraných dát
    Doplnkové grafy so 7-dňovou históriou
    Vzdialený reštart dosky
    Login systém
    Log prihlásení so záznamom IP adresy (IPv4 aj IPv6)
    Log zmien v systéme, kedy mikrokontróler prepol kúrenie, vypol, a pod.
    Zmena login informácii do webu
    Zdrojový kód pre mikrokontróler priamo na webe
Systém je svižný, ľahko udržiavateľný. Používateľ si na webe môže pozrieť aj deň a čas, kedy došlo k výpadku dosky v prehľadom grafe a taktiež kedy bola aká teplota nameraná, či kedy bolo ktoré relé výstupu aktívne. Doska môže na web zasielať aj ďalšie dôležité informácie - procesorový čas, sila signálu Wifi hotspotu, názov wifi hotspotu (možnosť navoliť viacero v programe pre NodeMCU).

Tieto doplnkové hodnoty môžu pomôcť systému ako takému z pohľadu plánovania automatického reštartu dosky po mesiaci, či týždni a podobne. Celé webové rozhranie používa PHP scripty pre funkcionalitu, AJAX-ové volania PHP scriptov pri účasti používateľa na webe, šablónu ControlR, grid systém Bootstrap.
Ďalšie zaujímavé projekty môžete nájsť aj na mojom webe: https://arduino.php5.sk
Fotogaléria:





4
Bastlírna / Re:Rušení
« Poslední příspěvek od posjirka kdy Leden 09, 2019, 07:58:35 dopoledne »
pokud se jedná o obráběcí stroj ta je velmi pravděpodobné, že má motory na stř.230V/400V.
To je vcelku dost veliký zdroj možného rušení nebo indkovaného přepětí.
Arduino nemá žádnou ochranu proti přepětí a to je právě jeho největší problém při reálném nasazení.
V podstatě můžu poradit jen 5 věci:
- zkrátit kabely na minimum a žádné smyčky jako "rezerva"
- vložit arduino i LCD do kovové krabičky a tu uzemnit.
- použit stíněné kabely i pro krátké trasy (rozuměj od 10cm víc)
- dát na vstupy Arduina ochranné zenerovy diody (v řadě je 5V1 tedy 5,1 V). Zapojují se katadou na pin Arduina anodou na zem případě se doplnuje o kondenzátor pro eliminaci vyšších frekvencí:
https://goo.gl/images/HnSzRi
https://goo.gl/images/MERw7B
- poslední doporučení je oddělit galvanicky čidla od Arduina. Pokud používáš digitální čidla je to v pohodě, použiješ optočlen jako oddělovač a můžeš ho v případě problémů ještě zatížit odporem aby byl víc odolný proti náhodnému rušení.

Ono to že ti kolabuje Arduino při připojení LCD nemusí ještě znamenat, že právě tady je zdroj problému. Můžeš mít rušení nekde jinde, kde ho programově nezachytíš, nebo ti nevadí/nevíš o něm a LCD je už jen ta legendární "poslední kapka".

5
Bastlírna / Re:Rušení
« Poslední příspěvek od David0306 kdy Leden 08, 2019, 17:03:35 odpoledne »
Ahoj, mám podobný problém s kombinací Arduino, LCD displej 20x4 znaky zapojený přes I2C a desky s 8 relé. Potom samozřejmě spousta vstupů z mechanických snmačů, vystupů z panelu ovládání, výstupy jsou z Arduino jsou i přes tranzistory (např do frekvenčního měniče) a celé to tvoří řídící systém obráběcího stroje. Po zprovoznění se deska vždy zasekla během několika minut. S odstíněním všech vodičů jsem si práci nedával, protože jsem využil původní vodiče a snímače starého obráběcího stroje, které fungují. Zjistil jsem, že když je LCD displej odpojený, tak se deska nikdy (opravdu nikdy za rok používání) nezasekla. Po připojení LCD se zasekne vždy. Nyní bych rád problém odstranil, máte nějaké tipy jak ošetřeit patrně linku mezi uPC a LCD aby k problému nedocházelo?
Nápady o napájení baterií, nebo stínění všech vstupů nepovažuji za dobré. Napájení zajišťuji uzeměným minus pólem galvanicky odděleného 12V zdroje, který následně stabilizuji na 7V a napájím s tím všechny zařízení. Uzeměn je též kontakt GND na desce a všech komponentech, ovládací panel a v podstatě celý stroj.

Děkuji za odpovědi
6
Bastlírna / Re: Komunikace VS + Arduino
« Poslední příspěvek od Prayutocha2 kdy Leden 08, 2019, 08:37:11 dopoledne »
Je to opravdu vzácná znalost
7
Bastlírna / Re:LCD 16x2 s I2C Kontrolerem
« Poslední příspěvek od Prayutocha2 kdy Leden 08, 2019, 08:34:24 dopoledne »
mám následující problém. Mám UNO a NANO desku a dva Displeje 16x2
8
Projekty / RFID systém so správou on-line s wifi konektivitou
« Poslední příspěvek od martinius96 kdy Leden 04, 2019, 21:15:04 odpoledne »
Dnes by som rád predstavil systém, ktorý som vyvíjal posledný týždeň.
Vyhotovil som RFID systém na otváranie elektronických dverí. Systém je postavený na komponentoch pre Arduino, teda čítačka kariet a kľúčeniek na 13.56MHz RC522, kompatibilné karty a kľúčenky. Čítačka dokáže prečítať karty štandardu ISO/IEC 14443 A. Tento štandard funguje i na ISIC kartách, bankomatových kartách, či autobosových, zamestnaneckých a je ich možné taktiež prečítať a využiť pre takýto projekt. Čítačkou čítam MAC adresy kariet (je možné čítať a zapisovať aj do pamäte kariet a kľúčeniek, ktorá má väčšinou 1kB, alebo 4kB), MAC adresy, ktoré čítam si prevádzam na špecifický DEC formát. V úlohe mikrokontroléru pre spracovanie a odosielanie dát som použil dosku NodeMCU, ktorá disponuje wifi konektivitou a je pre tento účel viac než dostačujúca. Systém je vhodný pre haly, firemné vstupné vrátnice, elektronické dvere a pre podobné využitie.

Úlohou NodeMCU je odosielať dáta na web backend vždy, keď zaznamená kartu a na základe navrátenej odpovede z webservera (štandardne ACCEPT / DENY) otvorí, alebo neotvorí dvere. Vo dverách sa okrem klasického mechanizmu s kľučkou nachádza i špeciálny elmg. jazýček, ktorý je otváraný mikrokontrolérom na určitú dobu po úspešnej odpovedi z webservera. Z vonkajšej strany dverí je guľa, z druhej strany kľučka, ktorá je prepojená i na jazýček. Z tohto dôvodu teda nie je nutné inštalovať dve čítačky a pod.

Dáta sa odosielajú na server a spracuvávajú sa v .php backende. Všetky karty, ktoré boli kedy priložené sú archivované a z administračného rozhrania, kde je možné vidieť i real-time vstupy do objektu je možné dané karty povoliť - autorizovať, alebo zamietnuť - deautorizovať. Real-time aktualizácia dát sa realizuje AJAX-ovým volaním. Celé webové rozhranie je skryté za bezpečnostným loginom pre administrátora, prípadne spravcu kariet.

Systém je rýchly a pravidlá pre karty na jej autorizáciu, alebo deautorizáciu je možné vykonať pohodlne odkiaľkoľvek a pravidlo platí ihneď. Je teda veľmi jednoduché takýto systém spravovať i pre laikov. V prípade nedostupnosti webu/výpadku internetu je možné vždy do objektu vstúpiť kľúčom, ktorý dokáže jazýček odtiahnuť spolu s jazýčkom mechanizmu zámku.

Obšírnejšie info o projekte je možné nájsť i na mojom webe: https://arduino.php5.sk/rfid-system.php
Vyskúšať môžete na: https://arduino.php5.sk/rfid/
Datasheet čítačky RC522: https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf
Datasheet NodeMCU (ESP8266): http://www.handsontec.com/pdf_learn/esp8266-V10.pdf
9
Projekty / Re: Výtah se 3 podlažím
« Poslední příspěvek od Martin+- kdy Leden 01, 2019, 18:41:25 odpoledne »
Dobrý den, Potřeboval bych poradit s tímto kodem. Potřebuji vyřešit podmínku, že když výtah pojede ze 3 patra dolu a někdo ho zavolá ve 2 patře tak se zastaví nabereho a pojede dál.Kod nebude na 100% správně je ve fázi vývoje. Za jakékoliv poznámky budu vděčný.
Kód: [Vybrat]
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define PINsensPatroprvni 1
#define PINsensPatrodruhy 2
#define PINsensPatrotreti 3
#define PINbtnVytahprvni  4
#define PINbtnVytahdruhy  5
#define PINbtnVytahtreti  6
#define PINbtnPatroprvni  7
#define PINbtnPatrodruhy  8
#define PINbtnPatrotreti  9
#define motorPin1     10
#define motorPin2     11
#define motorPin3     12
#define motorPin4     13
int krokMotoru = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);

bool sensPatro1, sensPatro2, sensPatro3;  //snimace pater
bool btnVytah1, btnVytah2, btnVytah3; //tlacitka ve vytahu
bool btnPatro1, btnPatro2, btnPatro3; //tlacitka v patrech
byte stavVytahu;  //musis vedet, co vytah dela, abys podle toho mohl resit nejakou logiku. Tezko muzes privolat vytah dolu, když jede nahoru
      //0 - vytah stoji, 1 - vytah jede dolu, 2 - vytah jede nahoru, atd. Pripadne to řesit pomoci bool proměnnych
bool aktualniPatro;
bool vytahStoji=0;
bool stisknutoPrivolavaciTlacitko;
bool pozadovanePatro;
bool jedNahoru=2;
bool jedDolu=1;
bool vytahStop=0;


void setup() {
  // put your setup code here, to run once:
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(PINbtnVytahprvni, INPUT);
pinMode(PINbtnVytahdruhy, INPUT);
pinMode(PINbtnVytahtreti, INPUT);
pinMode(PINbtnPatroprvni, INPUT);
pinMode(PINbtnPatrodruhy, INPUT);
pinMode(PINbtnPatrotreti, INPUT);
pinMode(PINsensPatroprvni,INPUT);
pinMode(PINsensPatrodruhy,INPUT);
pinMode(PINsensPatrotreti,INPUT);
lcd.begin();
}

void loop(){    //zde přidělit proměnným hodnoty z digitálních vstupů
 
  if(sensPatro1){
    aktualniPatro = 1;}
   
  if(sensPatro2){
    aktualniPatro = 2;}
   
  if(sensPatro3){
    aktualniPatro = 3;}
   
  if(vytahStoji && stisknutoPrivolavaciTlacitko)
  {
    if(aktualniPatro < pozadovanePatro){
      jedNahoru = true;
    }
   
    if(aktualniPatro > pozadovanePatro){
      jedDolu = true;}
     
    if(aktualniPatro == pozadovanePatro){
      jedNahoru = false;
      jedDolu = false;}         
  }
  if(jedNahoru && stisknutoPrivolavaciTlacitko){
   
    if(aktualniPatro<pozadovanePatro){
      stop==pozadovanePatro && jedNahoru;}

    if(aktualniPatro>pozadovanePatro){
      jedNahoru = true;}
  }
   if(jedDolu && stisknutoPrivolavaciTlacitko){
   
     if(aktualniPatro<pozadovanePatro){
      jedDolu = true;}
     
     if(aktualniPatro>pozadovanePatro){
       stop==pozadovanePatro && jedDolu;}
   }
}
void VypisPatra(){
 lcd.setCursor(0,0);
 lcd.print("Patro:");
 lcd.print(digitalRead(aktualniPatro));
  }
  void JedNahoru(){
  krokMotoru++;
  if(krokMotoru > 3){
    krokMotoru = 0;
  }
  RizeniMotoru(krokMotoru);
}

void JedDolu(){
  krokMotoru--;
  if(krokMotoru < 0){
    krokMotoru = 3;
  }
  RizeniMotoru(krokMotoru);
}

void RizeniMotoru(int step){
if(step < 0 || step > 3){
  //jenom takovej sichr.
  //Pokud je proměnná step menší než 0, nebo větší než 3, tak se do proměnné přiřadí 0, tedy první krok
  step = 0;
}

switch(step){
  case 0:
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  break;
  case 1:
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  break;
  case 2:
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  break;
  case 3:
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  break;   
}

delay(3);

10
Služby / 3D tisk zdarma (tedy ne úplně:))
« Poslední příspěvek od Sharplayers kdy Prosinec 30, 2018, 18:57:45 odpoledne »
Ahoj, v rámci prací na novém webu nabízíme 3D tisk za "referenci". Respektive za fotky pro case study.

Pokud potřebujete vytisknout třeba krabičku elektroniky pro nějaký projekt, rádi vytiskneme zdarma, včetně dopravy zdarma. Jediné co požadujeme je fotodokumentace hotového projektu, a krátký popis toho, k čemu slouží.

3D model není podmínkou, ale může být rozhodujícím faktorem pro realizaci.

Čas realizace v případě dodaného 3D modelu (pro Arduino, Raspbery apod. je hodně krabiček k nalezení třeba na thingiverse.com) je 24 hodin.

V případě zájmu pošlete soubory a popis projektu do emailu info@sharplayers.cz.

Tomáš.
Stran: [1] 2 3 ... 10