Close

posjirka

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 15 příspěvků - 121. až 135. (celkem z 481)
  • Autor
    Příspěvky
  • odpověď na: Due #10387
    posjirka
    Účastník

    tak jsem se na ten modul díval a je tam použit IRF520. Ten má při Ugs =4V proud cca 0,2A až od Ugs = 5V má skoro 3A. viz datasheet
    https://arduino-info.wikispaces.com/file/view/irf520.pdf
    list č.4 vpravo nahoře. Proto to nefunguje jak má.
    Vidím 2 cesty:
    Buď použít jiný modul např. ten 4. na tomto odkazu:
    https://arduino-info.wikispaces.com/Brick-4ChannelPowerFetSwitch
    má vstupy řešeny přes optočlen a tím spíná vyšší napětí než toje 3,3V.
    Druhá varinata je udělat vlastní modul. ćetl jsem že si nevěříš v dělání tiš´táků, ale věř mi že pomocí univerzálního PCB ( třeba http://www.santy.cz/vyvojove-desky-c3/pcb-otvory-1mm-oboustranna-deska-30x70mm-i161/ ) by jsi to zvládnul v pohodě. koupit pár součástek za cca 30kč, k tomu tu univ. desku 2x dvojsvorky do tiš´táku a za chvilku máš hotovo. Kliděn udělaj 1 část té 4 desky. jestli se na to necítíš, tak určitě najdeš v okolí nějákého bastlíře, nebo střední školu, kde se s nějákým mistrem určitě domluvíš…

    odpověď na: Due #10383
    posjirka
    Účastník

    myslim ze je na miste otazka na co to potrebujes. jestli pro pwm regulacu jak z textu dedukuji tak je treba uvest i o jakych vykonech se bavime. ve vetsine pripadu staci obycejny bipolarni tranzistor a lidi tam cpou fety ktere se stejne naplno neotevrou.

    odpověď na: Generování bílého šumu do reproduktoru #10379
    posjirka
    Účastník

    tady máš několik možností:
    – buď jej vzít někde jako MP3 nahrávku a tu pak arduinem spouštět a výsledek měřit
    – vygenerovat nějákým jednoduchým zapojením (te´d nevím jestli se šum na diodě projevuje jako růžový nebo bílý)
    – vygenerovat jej z arduina pomocí nějákého algoritmu změny frekvence (nastavení čítače)
    pár rychlých nálezů na netu:
    http://www.instructables.com/id/White-noise-sound-machine-for-under-20/step3/Create-custom-white-noise/
    http://arduino.stackexchange.com/questions/6715/audio-frequency-white-noise-generation-using-arduino-mini-pro

    Custom White Noise Machine


    http://fritzing.org/projects/sleepduino

    jen poznámka: pokud použije arduino na generovaní šumu asi mu nezbude moc prostoru pro analýzu. Stejně bych radši použil Raspberry PI

    odpověď na: ovladani klapky privodu vzduchu #10371
    posjirka
    Účastník

    zátěž byl 1k takže cca 1mA ale nepředpokládám zhoršení když je jako oddělovač použitý OZ ze zpětnou vazbou

    odpověď na: ovladani klapky privodu vzduchu #10369
    posjirka
    Účastník

    tady je fotka pro 150/255 zvlnění tu velké, ale jak říkám stavěl jsem to z toho co bylo po ruce.

    Attachments:
    odpověď na: ovladani klapky privodu vzduchu #10367
    posjirka
    Účastník

    tak jsem to dnes odzkoušel :
    http://www.mikrocontroller.net/attachment/10061/pwm_to_analog.jpg

    zapojení jsem výrazně zjednodušil pro rychlou zkoušku (nebyl tam trimr, kapacity co přišli pod ruku, OZ by TL072, …) Trochu jsem měl strach z toho abych neodpáli Arduino, když PWM signál je spojný přes odpor z výstupem až 10V.
    No výsledek je, že se mi to jevý jako funkční řešení, jen oddělit vstup arduinu od zbytku zapojení pomocí optočlenu.
    dosáhl jsem rozsahu 0-9V (12V nájení) což při podmínkách testu je zcela vyhovující.
    Linearitu jsem netestoval ale šlo mi o výslednou křivku. Testoval jsem nastavení 80/255, 150/255, 250/255 .
    Zvlnění tam je Při 3 V to bylo cca 0,5V zvlnění ale používal jsem vstup s 500Hz PWM signálem. Se zvyšujícím se napětím zvlnění mizelo až při 9V mělo cca 0,1V.

    Attachments:
    odpověď na: ovladani klapky privodu vzduchu #10365
    posjirka
    Účastník

    řekl bych, že ten kondenzátor dělal impulz na zavření tranzistoru méně strmý/šikmý a tím pádem to mělo takový pozvolnější průběh. Je třeba to vyzkoušet, ale když jsem se díval na ten převodník na ebay tak mi připadjí ty součástky velmi podobné tomu c jsem zkoušel simulovat. Ono se to totiž prodává i u nás v ČR. :
    http://www.c-n-c.cz/viewtopic.php?f=56&t=8650
    http://www.cncshop.cz/prevodnik-pwm-na-0-10v

    v podstatě podle součástek podobné zapojení jako toto:
    http://www.mikrocontroller.net/attachment/10061/pwm_to_analog.jpg

    jen to má navíc optočlenem oddělené .

    odpověď na: Krokový motor #10363
    posjirka
    Účastník

    všechno jde. Jen když se dívám na to řešení je docela „not friendly“ pro tuto funkci.
    Kdyby spoužil celý krok pro otáčení a né půl kroky mohls to vše dělat ve smyčce Loop, jen posunem bitu a reagovalo by ti to kdy budeš potřebovat. Takto musíš použít před definicí proměnné příkaz „volatile“ ( https://www.arduino.cc/en/Reference/Volatile ) aby ti reagoval i v případě přerušení hlavní smyčky a nastavit přerušení na pin tlačítka ( https://www.arduino.cc/en/Reference/AttachInterrupt ). Toto přerušení přeruší hlavní program a vykoná funkci, na kterou se v definici přerušení odkazuješ. Až skončí tato funkce, smyčka hlavního programu se opět rozjede tam, kde skončila a v klidu pokračuje. Jen musíš hlídat aby se ti nezacyklila. To nastane, kdy funkce volaná přerušení trvá déle než interval mezi přerušeními. Můžeš dokonce ragovat zvlášť na na změnu stavu, na přechod na log. 0 a na přechod na log.1.

    odpověď na: ovladani klapky privodu vzduchu #10362
    posjirka
    Účastník

    to bude asi něco podobného. jen mám trochu obavy z té nominální frekvence. Tady uvádí 1-3kHz, arduino má defaultně cca 450Hz.

    odpověď na: Hodinový displej TM1637 #10361
    posjirka
    Účastník

    rád jsem pomohl 🙂

    odpověď na: Krokový motor #10357
    posjirka
    Účastník

    to bohužel není muj boj. Tuto část jsem převzal z tveho kodu.
    NAUČTE SE POUŽÍVAT PÁROVÉ ZNAČKY „CODE“

    odpověď na: Krokový motor #10350
    posjirka
    Účastník

    prosím používejte párové značky CODE, jinak je kod špatně formátovaný a zároveń není použitelný.
    zkus tento upravený kod:

    // Krokový motor a driver
    
    #define tlacitko 2 // cislo pinu s talcitkem
    #define rychlost1 1 // prvni -standratni rychlost
    #define rychlost2 2 // rychlost pri stisku tlacitka
    
    // čísla pinů pro digitální výstupy
    const int in1 = 8;
    const int in2 = 9;
    const int in3 = 10;
    const int in4 = 11;
    
    // proměnná pro nastavení rychlosti,
    // se zvětšujícím se číslem se rychlost zmenšuje
    int rychlost =1;
    //
    int uhel = 90;
    
    void setup() {
      // inicializace digitálních výstupů
      pinMode(in1, OUTPUT);
      pinMode(in2, OUTPUT);
      pinMode(in3, OUTPUT);
      pinMode(in4, OUTPUT);
      pinMode(tlacitko, INPUT);
    }
    
    void loop() {
      if(digitalRead(tlacitko) == 0){ // kdyz je stisknuto tlacitko
        rychlost = rychlost2; // sniz rychlost  
      } else { // jinak
        rychlost = rychlost1; // pouzij normalni rychlost  
      }
      // plná rotace o 360 stupňů = 512 volání
      // funkce rotacePoSmeru() či rotaceProtiSmeru()
      for(int i=0;i<(uhel*64/45);i++){
        rotacePoSmeru();
      }
      // pauza po dobu 1 vteřiny
      delay(1000);
      
      for(int i=0;i<(uhel*64/45);i++){
        rotaceProtiSmeru();
      }
      // pauza po dobu 1 vteřiny
      delay(1000);
    }
    // zde následují funkce pro volání jednotlivých
    // kroků pro otočení po či proti směru hodinových
    // ručiček
    void rotacePoSmeru() {
      krok1();
      krok2();
      krok3();
      krok4();
      krok5();
      krok6();
      krok7();
      krok8();
    }
    void rotaceProtiSmeru() {
      krok8();
      krok7();
      krok6();
      krok5();
      krok4();
      krok3();
      krok2();
      krok1();
    }
    // každý krok obsahuje výrobcem dané pořadí
    // pro správné spínání motoru a následnou
    // pauzu, kterou určujeme rychlost otáčení
    void krok1(){
      digitalWrite(in1, HIGH);
      digitalWrite(in2, LOW);
      digitalWrite(in3, LOW);
      digitalWrite(in4, LOW);
      delay(rychlost);
    }
    void krok2(){
      digitalWrite(in1, HIGH);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, LOW);
      digitalWrite(in4, LOW);
      delay(rychlost);
    }
    void krok3(){
      digitalWrite(in1, LOW);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, LOW);
      digitalWrite(in4, LOW);
      delay(rychlost);
    }
    void krok4(){
      digitalWrite(in1, LOW);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, LOW);
      delay(rychlost);
    }
    void krok5(){
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, LOW);
      delay(rychlost);
    }
    void krok6(){
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, HIGH);
      delay(rychlost);
    }
    void krok7(){
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
      digitalWrite(in3, LOW);
      digitalWrite(in4, HIGH);
      delay(rychlost);
    }
    void krok8(){
      digitalWrite(in1, HIGH);
      digitalWrite(in2, LOW);
      digitalWrite(in3, LOW);
      digitalWrite(in4, HIGH);
      delay(rychlost);
    }
    odpověď na: Hodinový displej TM1637 #10349
    posjirka
    Účastník

    to je vcelku jasné. bavíme se o proměnné typu byte která nabývá hodnot 0-255.
    Když dělíš -5 st. c tak ti vyjde 255-5 = 250 což je v hex. kodovani rovno „FA“.
    zkus toto:

    #include <OneWire.h>
    #include <DallasTemperature.h>
    #include <Arduino.h>
    #include <TM1637Display.h>
    
    #define CLK 2
    #define DIO 3
    TM1637Display displej(CLK,DIO);
    
    const int pinCidlaDS = 4; // nastavení čísla vstupního pinu
    OneWire oneWireDS(pinCidlaDS);
    DallasTemperature senzoryDS(&oneWireDS);
    byte teplota=0;
    int rele=8;
    
    void setup() {
      pinMode(rele,OUTPUT);
      Serial.begin(9600);
      senzoryDS.begin();
      displej.setBrightness(8);//jas displeje 8-15
    }
    void loop() {
      senzoryDS.requestTemperatures();
      teplota=senzoryDS.getTempCByIndex(0);
      Serial.print("Teplota cidla DS18B20: ");
      Serial.print(senzoryDS.getTempCByIndex(0));
      Serial.println(" stupnu Celsia");
      // pauza pro přehlednější výpis
      delay(1000);
      if(teplota>25){
        digitalWrite(rele,LOW);//sepne rele
      } else {
        digitalWrite(rele,HIGH);//rozepne rele
      }
      uint8_t vypis[] = { 0, 0, 0, 0 };//nastavení displeje na zobrazení teploty
      if(teplota<1){
        vypis[0]=(SEG_G);
      }
      teplota = abs(teplota); // prepocet na absolutni hodnotu 
      vypis[1]=displej.encodeDigit((teplota/10)/10);//teplota stovky
      vypis[2]=displej.encodeDigit((teplota/10)%10);//teplota desítky
      vypis[3]=displej.encodeDigit((teplota%10)%10);//teplota jednotky
      displej.setSegments(vypis);
    }

    jinak pro vkladani kodu používej párové značky CODE. Je to to tlačítko v horni části odpovědi s nápisem CODE. jinak se ti špatně vloží text a není pak čitelný

    odpověď na: Připojení displeje 1602 s převodníkem I2C #10334
    posjirka
    Účastník

    predpokladam ze mas spravne propoje mezi arduinem a prevodnikem.

    odpověď na: Připojení displeje 1602 s převodníkem I2C #10333
    posjirka
    Účastník

    a co zkusit nechat zapnout a vynout podsviceni lcd? to taky jede na prevodnik a pokud ani to nepojede je spatne knihovna nebo prevodnik. udelej proste jednoduchy blik program. kdyby toto fungovalo tak nektere lcd jsou citlive kdyz nemaji volne piny uzemnene. je otazkou jak je to reseno na prevodniku….

Aktuálně je na stránce zobrazeno 15 příspěvků - 121. až 135. (celkem z 481)