Close

MiK

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,221. až 2,250. (celkem z 2,779)
  • Autor
    Příspěvky
  • odpověď na: Rozsvícení větší LED #6192
    posjirka
    Účastník

    tribal tam má chybku.
    Buď použiješ :
    1, NPN pro spínání země : logická 1 přes odpor otevře tranzistor a ten sepne zátěž a moc ti nezáleží na tom jestli je napájeci napětí 5V nebo 12V. Stačí správně určit protékajíc proud, podel toho vypočítat předřadný odpor a vybrat tranzistor, který tu zátěž vydrží.
    2, PNP spínáš napájecí napětí : logická 0 přivede „záporné“ napětí na bázi tranzistoru. Ve výsledku ale nepustí vyšší napětí než je napětí mikroprocesoru (tedy 5V), nebo nepůjde uzavřít tranzistor. je vhodné pro spínání zátěže stejného napští jako má mikroprocesor o větším proudu.

    Někdy se používá kombinace pro spínání segmentu a číslaovky.

    Ve zkratce použij zapojení s NPN tranzistorem.

    Attachments:
    odpověď na: Začátečník – akcelerometr, gyroskop #6191
    posjirka
    Účastník

    od pohonu se bude odvijet typ ovládání (pWM, Hmustek, krokáč)
    Jinak samozřejmě Ardunio (v podstatě je jedno jakýkoliv) a gryoskop.

    Možná se podívej na diy projekty BB8.

    odpověď na: Začátečník – akcelerometr, gyroskop #6190
    posjirka
    Účastník

    spíš se bude vše obvijet od typu pohonu. Nepíše třeba jaká je třeba reakční rychlost, jaké předpokládáš mezní parametry, napájecí napětí, síla atd.
    Na něco stačí stolice + deska spojená šroubovnicí, někde potřebuješ řemenici Tady všude je určitá mez + koncové dorazy/spínače.
    Na něco potřebuješ kluzné plochy spojené koly se základnou podoběn jako BB8 🙂

    odpověď na: Rozsvícení větší LED #6189
    klachma
    Účastník

    Aha, v tom článku právě psali o PNP, tak jsem koupil PNP. Díky za tip, zkusím ten BC337.

    odpověď na: propojení 2 mikrokontrolérů #6188
    posjirka
    Účastník

    5m je v pohodě, většina těch modulů nemá problém ani s 10 m.
    Jen si mi pořád neřekl jaká data tam potečou, jak jsou důležitá, jak často se budou opakovat, jaké je potřeba zabezpečení těch dat …
    na 433 MHz pracuje kde co, třeba i meteostanice, nebo dálkové ovládání centrálu u auta. pro důležitá jednorázová data není moc vhodný, spíš pro přenost dat ze senzoru, s opakovatelnosti třeba 1x 5s.
    Bluetooth je vcelku v pohodě jen si musíš udržet vazbu obou zařízení ať se ti nechytne na kdejaký mobil
    2,4GHz pracuje taky vcelku dost věcí (právě bluetooth, dálkové ovládání pro modely, …)
    WIFI je taky na 2,4GHz nebo na 5GHz podle typu sítě a potřebuješ mít aktuální název SSID a správné heslo. Provést aktualizaci zanmená nahrát nový program do mikroproces.
    Je potřeba opravdu správně vybírat, podle toho na co to chceš, z toho, že to bude panel na ruku moc nezjitím. Může to být 1x denně data o objemu 2kB (potřebuješ větčí zabezpečení a kontorlu popslaných dat) , nebo každých 5s data o 5MB (v tu chvíli taky můžeše zarušit vlastní WIFI signál pro jiná zařízení)….

    Jak vidíš nejlepší je starý dobrý drát, nebo mě ještě napadá IR jak pro dálkové ovládání …. Pro jednoměrnou komunikaci to může být vhodné řešení.

    odpověď na: Rozsvícení větší LED #6187
    posjirka
    Účastník

    wooow kaviárové tousty … BC556 je PNP tranzistor, ten se otevírá při záporném napětí na bázi.
    Použij BC337 …

    odpověď na: LED pásek + ultrasonic sensorem HC-SR04 #6186
    posjirka
    Účastník

    eepromka ti moc nepomůže, spíš ji ničíš neustálím přepisem. Má max 100 000 přepísů což vypadá nekonečně ale při zápisu 1 x 1s = 100 000 s = 1666 min = 27h takže za 1 den zničíš 1 buňku eeprom….

    Když se nad tím zamyslím, tak by to mohlo jít např. touto cestou:
    1, udělat to formou hrubé stupnice např:
    <10cm = 0 (pwm)
    15-20cm = 85
    25-30cm = 170
    35-40cm = 255
    >40cm = zapiš ale ignoruj
    žádné mezi stavy, prostě tyto hodnoty.
    2, Každou 1s si změříš vzdálenost.
    3, Tu zapíšeš do pole o 5-ti hodnotách, které budeš neustále posouvat.
    4, Když 3 z 5 hodnot budou stejné a přitom menší než 40cm nastav PWM a zapiš do eeprom (pokud je změna proti původní hodnotě v eeprom)

    Takže dáš ruku na víc než 3s na vzdálenost/intenzitu jakou chceš a podle toho se ti nastaví LED.

    Co ty na to? Je to co si představuješ?

    odpověď na: Rozsvícení větší LED #6183
    klachma
    Účastník

    Ach jo, já jsem asi úplně blbej. Mohl bys mi prosím poradit, jaký tranzistor tam dát? Zkusil jsem tenhle: http://www.gme.cz/bipolarni-tranzistor-bc556a-to92-p210-035 a dioda pořád nesvítí. Nevím, jestli jsem nedělal blbost, ale měřil jsem napětí Uce a je pořád 4,5 V, i když zdroj dává 9 V a v celým obvodu je jen ten tranzistor a dioda a hlavně to napětí tam je ať mám na bázi 0 nebo 5 V.

    odpověď na: LED pásek + ultrasonic sensorem HC-SR04 #6182
    Nacelnik
    Účastník

    Ahoj, zneužiji již tento vyřešený dotaz ke svému.

    Jsem ve fázi úvah kdy chci také měnit intenzitu jasu pomocí vzdálenosti. Můj problém je ten, že když podržím překážku třebas v rozmezí 10-40cm (ta bude pevně daná) chci aby tato vzdálenost byla převedena na PWM a dále když tu překážku odstraním, tak chci aby hodnota PWM platila i pro odpojení napájení. Jenže jak to udělat?

    Podržím ruku na 10 cm bude PWM 125 (vymyslel jsem si toto)
    ale když tu ruku odstraním, tak nechci další přepočet ale chci aby platila hodnota 125.
    PO čase podržím ruku na 30cm, přepočte se hodntota na PWM (třeba) 200 a pak když dám tu ruku pryč, aby zas platila hodnota 200.

    Šlo by to zapisovat do EEpromky ( nebude častý zápis),ale jak udělat to, že když dám ruku do vzdálenosti 10cm , rozsvítí se ledka jasem PWM 125 a když překážku odstraním, nedojde k přepisu hodnoty PWM dokuď zase nepodržím ruku jakkoliv ve vzdálenosti 10-40cm.

    Poradíte?

    Děkuji velice

    David

    odpověď na: Časovane spinaní pinu #6166
    posjirka
    Účastník

    nemusíš to nulovat, stačí když budeš dál odpočítávát millis od old-millis. Stejně to nepustí v rámci proměnné více než je její rozsah a bude ti počítat od nuly. když dáš byte a jeho max hodnotu 255 a příčteš 1 tak máš zase 1 a né 256.

    odpověď na: Časovane spinaní pinu #6165
    Le_Ze
    Účastník

    A nedá se časovač programově vynulovat?

    odpověď na: Časovane spinaní pinu #6164
    Zbyšek Voda
    Účastník

    Funkci „nepřetíkat“ nedonutíte, ale můžete s tím v kódu počítat.
    Když najednou funkce millis nevrací něco přes čtyři miliardy (kdy přetéká),
    ale jede od nuly, musíte s tím v programu počítat a například si vynulovat nějaký čítač, nebo podobně.

    odpověď na: Časovane spinaní pinu #6161
    Le_Ze
    Účastník

    Tak zbyla chvilka času a ja chtěl vzykoušet i to s millis.
    Dočet jsem se, že u funkce millis dochazí co 50 dní k přetečení.
    Da se to nějak pořešít?

    odpověď na: propojení 2 mikrokontrolérů #6160
    rades
    Účastník

    Tím panelem myslím hodinky s pár tlačítky, kterými budu ovládat to druhé arduino, na kterém jsou připojeny 2 relé, dva teploměry a ještě čidlo pohybu…. první arduino funguje normálně pomocí BT, ale uvažoval jsem i o jiných možnostech. Dosah bych si přál tak, ať mi to funguje v místnosti o velikosti cca 5×5 m..

    odpověď na: propojení 2 mikrokontrolérů #6159
    rades
    Účastník

    Tím panelem myslím hodinky s pár tlačítky, kterými budu ovládat to druhé arduino, na kterém jsou připojeny 2 relé, dva teploměry a ještě mám v plánu čidlo pohybu…. první arduino funguje normálně pomocí BT, ale uvažoval jsem i o jiných možnostech. Dosah bych si přál tak, ať mi to funguje v místnosti o velikosti cca 5×5 m..

    odpověď na: propojení 2 mikrokontrolérů #6158
    posjirka
    Účastník

    co to je panel na ruku?
    Nepíše do jaké vzdálenosti a jak složitou potřebuješ komunikaci.
    Pro jednoduché řešení se používají moduly 433MHz
    http://arduino8.webnode.cz/news/lekce-20-arduino-a-vyuziti-433-92-mhz/

    pro složitější bluetooth nebo Xbee ten je ještě v provedení silver a gold
    http://arduino8.webnode.cz/news/lekce-20-arduino-a-vyuziti-433-92-mhz/

    případně moduly na 2,4GHz tuším že s čipem NRF24L01 např:
    https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo

    končit můžeš u wifi řešení. Využít vlastní wifi síť, z 1 arduina udělat miniserver, který bude generovat obsah HTML stránky a ostatní jej pak jen dekodují.

    odpověď na: Rozsvícení větší LED #6157
    tribal.cz
    Účastník

    Nemáš za co, hlavně si pročti datasheet daného tranzistoru. Ne vždy je to stejné.

    odpověď na: Rozsvícení větší LED #6156
    klachma
    Účastník

    Mockrát děkuju za hezký popis! Vyměním teda zdroj za 9V a zkusím to s tím tranzistorem.

    odpověď na: ESP 8266 #6155
    terje
    Účastník

    Dík za odpověď, ale asi jsem to upravil špatně (zatím v tom tápu). Podívej se na to, prosím Tě, až budeš mít čas.

    /*
    * This sketch sends data via HTTP GET requests to data.sparkfun.com service.
    *
    * You need to get streamId and privateKey at data.sparkfun.com and paste them
    * below. Or just customize this script to talk to other HTTP servers.
    *
    */

    #include <ESP8266WiFi.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>
    #include <stdlib_noniso.h>

    #define ONE_WIRE_BUS 2 // DS18B20 pin
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature DS18B20(&oneWire);

    const char* ssid = „terje“;
    const char* password = „xxxx“;

    const char* host = „api.thingspeak.com“;
    const char* APIkey = „xxxxxxx“;

    float oldTemp;

    void setup() {
    Serial.begin(115200);
    delay(10);

    // We start by connecting to a WiFi network

    Serial.println();
    Serial.println();
    Serial.print(„Connecting to „);
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(„.“);
    }

    Serial.println(„“);
    Serial.println(„WiFi connected“);
    Serial.println(„IP address: „);
    Serial.println(WiFi.localIP());
    }

    void loop() {
    delay(30000);

    float temp;

    DS18B20.requestTemperatures();
    temp0 = DS18B20.getTempCByIndex(0); // první čidlo
    temp1 = DS18B20.getTempCByIndex(1); // druhé čidlo
    Serial.print(„Temperature: „);
    Serial.println(temp);
    char buf[24];
    String strTemp0 = dtostrf(temp0, 6, 2, buf);
    String strTemp1 = dtostrf(temp1, 6, 2, buf);

    Serial.print(„connecting to „);
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;
    const int httpPort = 80;
    if (!client.connect(host, httpPort)) {
    Serial.println(„connection failed“);
    return;
    }

    // We now create a URI for the request
    String url = „/update?key=“;
    url += „&field1=“;
    url += strTemp0; //String(temp0);
    url += „&field2=“;
    url += strTemp1; //String(temp1);
    url += charVal;//String(temp);

    Serial.print(„Requesting URL: „);
    Serial.println(url);

    // This will send the request to the server
    client.print(String(„GET „) + url + “ HTTP/1.1\r\n“ +
    „Host: “ + host + „\r\n“ +
    „Connection: close\r\n\r\n“);
    delay(10);

    // Read all the lines of the reply from server and print them to Serial
    while (client.available()) {
    String line = client.readStringUntil(‚\r‘);
    Serial.print(line);
    }

    Serial.println();
    Serial.println(„closing connection“);
    }

    Chybová zpráva:

    Arduino: 1.6.7 (Windows 7), Vývojová deska: „NodeMCU 1.0 (ESP-12E Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)“

    Volby pro sestavení se změnily; sestavuji vše znovu
    sketch_feb25a:88: error: stray ‚\204‘ in program

    url += „&field1=“;

    ^

    sketch_feb25a:88: error: stray ‚\223‘ in program

    sketch_feb25a:90: error: stray ‚\204‘ in program

    url += „&field2=“;

    ^

    sketch_feb25a:90: error: stray ‚\223‘ in program

    C:\Users\terje\AppData\Local\Temp\arduino_128afa9af2287aba088309aaca1e436f\sketch_feb25a.ino: In function ‚void loop()‘:

    sketch_feb25a:63: error: ‚temp0‘ was not declared in this scope

    temp0 = DS18B20.getTempCByIndex(0); // první čidlo

    ^

    sketch_feb25a:64: error: ‚temp1‘ was not declared in this scope

    temp1 = DS18B20.getTempCByIndex(1); // druhé čidlo

    ^

    sketch_feb25a:88: error: ‚field1‘ was not declared in this scope

    url += „&field1=“;

    ^

    sketch_feb25a:88: error: expected primary-expression before ‚;‘ token

    url += „&field1=“;

    ^

    sketch_feb25a:90: error: ‚field2‘ was not declared in this scope

    url += „&field2=“;

    ^

    sketch_feb25a:90: error: expected primary-expression before ‚;‘ token

    url += „&field2=“;

    ^

    sketch_feb25a:92: error: ‚charVal‘ was not declared in this scope

    url += charVal;//String(temp);

    ^

    exit status 1
    stray ‚\204‘ in program

    Tento výpis by měl více informací s
    „Zobrazit více informací během kompilace“
    povoleno v Soubor > Vlastnosti

    odpověď na: Rozsvícení větší LED #6152
    tribal.cz
    Účastník

    Ano tranzistorem si pouze sepneš potřebné. Pokusím se ti to popsat a ještě ti dám odkaz na itnetwork.cz kde je o tom článek takže. K rozsvícení využiješ jiný externí zdroj, arduinem budeš jen spínat. Tranzistor má tři vývody báze, colector a emitor.Bázi připojíš na nějaký pin třeba 5, emitor dáš na GND vývod diody a colector na GND zdroje. Mezi bázi a arduino si ještě bouchni diodu jako pojistku proti proražení tranzistoru. Takovýto obvod je bezpečný, poté si stačí jen nějaký kód. Třeba upravený příklad BLINK z arduino IDE

    void setup() {
      pinMode(5, OUTPUT);
    }
    
    void loop() {
      digitalWrite(5, HIGH);   
      delay(1000);             
      digitalWrite(5, LOW);    
      delay(1000);             
    }

    Tady máš ještě ten odkaz je to tam i schéma tak to líp pochopíš než z mého popisu

    Edit: promiň zapomněl jsem odkaz 😀 http://www.itnetwork.cz/hardware-pc/arduino/arduino-spinani-velke-zateze

    odpověď na: Časovane spinaní pinu #6151
    posjirka
    Účastník

    ok hlavní je spokojenost .)

    odpověď na: Rozsvícení větší LED #6150
    posjirka
    Účastník

    integrovaný obvod nebli šváb je jen shluk zsiučástek v 1 pouzdru a převládá tam saoučástka zvanaá tranzistor. Když nepochopíš tranzitor tak tě šváb nevytrhně….
    Navíc bylo určutě myšleno tranzistor jako spínač. Žádné v/a charakteristiky, žádný pracovní bod, jen zapni vynpi.

    odpověď na: Rozsvícení větší LED #6149
    klachma
    Účastník

    Bohužel tranzistor je součástka, kterou asi nejsem schopnej pochopit 🙁 Učitel byl debil, co by snad nedokázal vysvětlit ani funkci rezistoru a všechny mé pokusy o samostudium zatím skončily krachem. Za to jsme měli skvělého učitele na číslicovku, proto mě napadlo řešení nějakým švábem 🙂

    odpověď na: Rozsvícení větší LED #6148
    tribal.cz
    Účastník

    Pokud se jedná o něco co přesahuje hodnoty jen trochu jako ve tvém případě tak bych použil tranzistor. Pokud se jedná o něco většího tak bych obvod rozdělil a externí bych připojil na relé je to jednoduché a čisté řešení.

    odpověď na: Časovane spinaní pinu #6147
    Le_Ze
    Účastník

    Ano mam 4 rele a 4 timery a jednu splečnou funkcí pro vypinaní

    odpověď na: Časovane spinaní pinu #6145
    posjirka
    Účastník

    ještě si vyzkoušej jestli ti dovolí pracovat dál s jiným pinem.
    myslím tím, když aktivuješ 1 pin na zpoždění, můžeš aktivovat hned i druhý?
    Myslím, že minimálně budeš muset udělat druhou instanci timer aby se ti nemíchali proměnné z knihovny….
    originální řešení je uděláno jako aktivace časovače a ve smyčce loop si aktualizuje strojní čas do rozhodovacího procesu.

    odpověď na: ESP 8266 #6136
    Aleš
    Účastník

    Takhle:
    temp0 = DS18B20.getTempCByIndex(0); // první čidlo
    temp1 = DS18B20.getTempCByIndex(1); // druhé čidlo, atd..

    char buf[24];
    String strTemp0 = dtostrf(temp0, 6, 2, buf);
    String strTemp1 = dtostrf(temp1, 6, 2, buf);
    ….

    Odeslání:
    url += „&field1=“;
    url += strTemp0; //String(temp0);
    url += „&field2=“;
    url += strTemp1; //String(temp1);
    …..

    odpověď na: ESP 8266 #6135
    terje
    Účastník

    Jo, ty čidla by byly na jedné sběrnici.

    odpověď na: ESP 8266 #6134
    terje
    Účastník

    Zdravím chlapi, mám prosbu. Zprovoznil jsem ESP8266 s jedním čidlem(ds18b20) na thingspeak. Potřeboval bych k tomu modulu připojit více čidel(např.4).V HW se celkem vyznám, ale SW mi dělá potíže. Dík za radu.
    Tady je kód:

    /*
    * This sketch sends data via HTTP GET requests to data.sparkfun.com service.
    *
    * You need to get streamId and privateKey at data.sparkfun.com and paste them
    * below. Or just customize this script to talk to other HTTP servers.
    *
    */

    #include <ESP8266WiFi.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>
    #include <stdlib_noniso.h>

    #define ONE_WIRE_BUS 2 // DS18B20 pin
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature DS18B20(&oneWire);

    const char* ssid = „terje“;
    const char* password = „xxxxx“;

    const char* host = „api.thingspeak.com“;
    const char* APIkey = „xxxxxxxxxxxx“;

    float oldTemp;

    void setup() {
    Serial.begin(115200);
    delay(10);

    // We start by connecting to a WiFi network

    Serial.println();
    Serial.println();
    Serial.print(„Connecting to „);
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(„.“);
    }

    Serial.println(„“);
    Serial.println(„WiFi connected“);
    Serial.println(„IP address: „);
    Serial.println(WiFi.localIP());
    }

    void loop() {
    delay(30000);

    float temp;

    DS18B20.requestTemperatures();
    temp = DS18B20.getTempCByIndex(0);
    Serial.print(„Temperature: „);
    Serial.println(temp);

    char charVal[12];

    dtostrf(temp, 8, 2, charVal);

    Serial.print(„connecting to „);
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;
    const int httpPort = 80;
    if (!client.connect(host, httpPort)) {
    Serial.println(„connection failed“);
    return;
    }

    // We now create a URI for the request
    String url = „/update?key=“;
    url += APIkey;
    url += „&field1=“;
    url += charVal;//String(temp);

    Serial.print(„Requesting URL: „);
    Serial.println(url);

    // This will send the request to the server
    client.print(String(„GET „) + url + “ HTTP/1.1\r\n“ +
    „Host: “ + host + „\r\n“ +
    „Connection: close\r\n\r\n“);
    delay(10);

    // Read all the lines of the reply from server and print them to Serial
    while (client.available()) {
    String line = client.readStringUntil(‚\r‘);
    Serial.print(line);
    }

    Serial.println();
    Serial.println(„closing connection“);
    }

    odpověď na: Časovane spinaní pinu #6133
    Le_Ze
    Účastník

    Tak vyřešene a odzkoušené přes tu knihovnu timer :).
    Přimo v if zapnu pin.
    digitalWrite(pin, HIGH);
    t.after(10 * 60 * 10000, vypnirele);
    a pak se po určité době spusti funkce, která ho vypne.
    Pokud si při volaní funkce pošlu i čislo pinu, postači mi 1 funkce pro všechny rele.

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,221. až 2,250. (celkem z 2,779)