Close

martinius96

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,311. až 2,340. (celkem z 2,768)
  • Autor
    Příspěvky
  • odpověď na: pomoc s projektem: použití "random" #5846
    posjirka
    Účastník

    díky

    posjirka
    Účastník

    trochu se zpožděním ale přeci:

    // náhodné říze 3 serv
    // v1
    // místo serv bude řešením výpis stavu 3 proměnných na seriový port.
    // by JP 2016
    //
    
    int servo1 = 0; // uhel natočeníserva 1
    int servo2 = 0; // uhel natočeníserva 2
    int servo3 = 0; // uhel natočeníserva 3
    int uhel = 0; // novz uhel natočení
    int pauza = 0; // doba pauzy před další změnou
    int vyber = 0; // pomocná promměná pro výběr , které servo se bude měnit
    
    void setup() {
      Serial.begin(9600); // inicializace seriove komunikace
      randomSeed(analogRead(A0)); // generátor náhodných čísel začne od čísla == aktuální hodnota na portu A0
    }
    
    void loop() {
      // generovaní náhodných hodnot
      //----------------------------
      // novy uhel natočení serv
      uhel = random(0, 180);
      // výběr serv pro změnu
      vyber = random(0, 127);
      // délka pauzy v ms
      pauza = random(200, 1000);
      
      // uprava hodnot natočení serv
      //----------------------------
      // když 0. bit proměnné "výber" bude rovný 1 aktualizuj hodnotu "servo1"
      if (bitRead(vyber,0) == 1) {
        servo1 = uhel; 
      }
      // když 1. bit proměnné "výber" bude rovný 1 aktualizuj hodnotu "servo2"
      if (bitRead(vyber,1) == 1) {
        servo2 = uhel; 
      }
      // když 2. bit proměnné "výber" bude rovný 1 aktualizuj hodnotu "servo3"
      if (bitRead(vyber,2) == 1) {
        servo3 = uhel; 
      }
      
      // výpis proměnných a stavu serv
      //------------------------------  
      Serial.print("Servo 1 : ");
      Serial.print(servo1);
      Serial.println(" st.");
      Serial.print("Servo 2 : ");
      Serial.print(servo2);
      Serial.println(" st.");
      Serial.print("Servo 3 : ");
      Serial.print(servo3);
      Serial.println(" st.");
      Serial.print("Vyber : ");
      Serial.print(vyber);
      Serial.print(" = ");
      Serial.println(vyber, BIN);
      Serial.print("Pauza : ");
      Serial.print(pauza);
      Serial.println(" ms");
      
     // oddělovač 
     //----------
      Serial.println("****************************");
      delay(pauza);   // čekání na další změnu
    }
    odpověď na: pomoc s projektem: použití "random" #5843
    Zbyšek Voda
    Účastník

    Vkládám slíbený obrázek od posjirka.
    Tlačítko a LED na jednom Arduino pinu

    odpověď na: FRID-RC522, ověření + led dioda #5840
    posjirka
    Účastník

    omlouvat se nemusíš. každý něják začínal. spíš je důležitější že jsi našel řešení a podělil se o něj s námi.
    Díky

    odpověď na: FRID-RC522, ověření + led dioda #5806
    Soci
    Účastník

    Za málo informací se omlouvám, nicméně se mi mezitím podařilo najít správný návod. Pokud by někdo měl stejný problém přikládám odkaz díky kterému jsem to rozchodil, stačilo se jen zbavit částí ovládající servo.

    http://www.arduinoecia.com.br/2014/12/controle-de-acesso-modulo-rfid-rc522.html

    odpověď na: pomoc s projektem: použití "random" #5802
    Zbyšek Voda
    Účastník

    Zatím je bohužel pro uživatele možné vložit obrázek pouze z externího zdroje.
    Když mi ho ale pošlete na mail zbysekvoda@gmail.com, dám ho sem.

    odpověď na: INPUT_PULLUP #5801
    posjirka
    Účastník

    jojo přesně tak, chtěl jsem jej využít jako předřadný odpor pro měření teploty pomocí NTC čidla a zjistil jsem, že se hodnoty těchto odporů na ATMEGA328p na 2 analogových pinech výrazně lišila. Pokud si dobře vzpomínám tak to bylo cca 12k Ohm a 18kOhm (měřeno jako úbytek napětí na stejném odporu proti vstupu a zemi).

    Na hrubší věci super, pro něco intenzivnějšího to není. Navíc to má tuším max.0,125W/pin(odpor)

    odpověď na: pomoc s projektem: použití "random" #5800
    posjirka
    Účastník

    obrázek je správně, jen blog si jej zablokoval pro extrení využití. Je nějáká varianta jak sem vložit obrázek?
    Google Drive mám, ale používat nebudu, zbytečně bych si zanášel místo na disku a až budu dělat pravidelnou čístku smažu i toto a nebude mít nikdo nic. Na netu oceňuji že jsou informace dostupné i o několik let později a stále mohou pomoci….

    piticko
    Účastník

    Jo tak. Jsem nechápal moc ten první bit. Budu muset někde nastudovat… Ta možnost sepnutí náhodného počtu serv je teď mimo mne. Ale pokud bys měl energii spáchat jednoduchý prográmek např. s LEDkama, budu rád (možná nejen já).

    odpověď na: INPUT_PULLUP #5798
    piticko
    Účastník

    Super, takže využití je ideálni pro tlačítka a jiné „hrubší“ činnosti. 🙂 Díky!

    odpověď na: pomoc s projektem: použití "random" #5797
    Zbyšek Voda
    Účastník

    Rozčilujete se zbytečně. To, že se zobrazil jiný obrázek, než jste chtěl… za to může váš blog. Co zkusit třeba Google Drive, Dropbox…?

    posjirka
    Účastník

    nechápu dotaz. Jak jsem psal vygeneruj náhodnou proměnnou a urči si např. že 1, bit bude aktivita serva 1. 2. bit aktivace serva 2, 3. bit aktivace serva 3.
    V kodu je to ještě jednodušší

    #include <Servo.h>

    Servo servo1;
    Servo servo2;
    Servo servo3;

    int random1 = 0; // promenna kam se ulozi nahodne cislo – cislo serva
    int random2 = 0; // promenna kam se ulozi nahodne cislo – novz uhel
    int random3 = 0; // promenna kam se ulozi nahodne cislo – prodleva

    …. nastaveni pinu atd.

    random1 = random(0, 16); // vzgeneruj noahodne cislo pro pocet serv
    random2 = random(0, 180); // vzgeneruj noahodne cislo pro uhel serva
    random3 = random(200, 1000); // vzgeneruj noahodne cislo pro delay
    if (bitRead(random1, 1) == 1 )
    {
    servo1.write(random2);// uprav stav serva 1
    }

    delay(random3); // pauya

    odpověď na: INPUT_PULLUP #5795
    posjirka
    Účastník

    obávám se že ani to není přesné. Hodnota interního pull up drporu u AVR kolísá mezi 10 a 50 kOhm.

    odpověď na: pomoc s projektem: použití "random" #5794
    posjirka
    Účastník

    tak já nakreslím lepší schéma, přidám ho k sobě do obrázku pro blog (pouze souborově bez zobrazení) a ani to sem nemůžu vložit. Tak kam mám do….le vkládat obrazky admine????????????

    odpověď na: INPUT_PULLUP #5793
    Aleš
    Účastník

    V podstatě ano. Jenom s tím rozdílem, že vnitřní pull-up není 10k ale 50k, což někdy nemusí stačit.

    odpověď na: novinky pro nepřihlášené #5788
    piticko
    Účastník

    nějak se tu stránky zastavily?

    odpovím za fiam…

    zobrazí se mi úvodní stránka, s tím, že je tam:

    ZDARMA: Průvodce světem Arduina (reklama na knihu)

    další je:

    Nejnovější články (pusto prázdno)

    a nakonec po scrollování dolu:

    Co je arduino (se základním popisem)
    .

    Jo a přihlášení funguje jen z úvodní stránky, na jiných to hodí:

    No posts found.

    piticko
    Účastník

    …a teď ještě vyřešit to, aby se pohybovaly i dvě serva najednou…jak na to?

    odpověď na: pomoc s projektem: použití "random" #5785
    piticko
    Účastník

    posjirka: někde se asi stala chyba… co se to objevilo za hlášku, místo obrázku? 😉

    odpověď na: pomoc s projektem: použití "random" #5783
    posjirka
    Účastník

    tlacitko_led_1-pin
    tak jsem to dal na uložiště blogu….

    Attachments:
    odpověď na: FRID-RC522, ověření + led dioda #5782
    posjirka
    Účastník

    s tím ti nikdo nepomůže protože netušíme na co se ptáš.
    Pokud potřebuješ pomoct musíš nám dát co možná nejvíc informací.
    Z výsledku kodu „xy“ nic nevyčeteme.
    Dej sem původní kod, nebo odkus jsi to stáhnul, dej sen schéma zapojení a co vlastně má to zapojení dělat a můžeme se na to vrhnout.

    posjirka
    Účastník

    já bych použil 3 generované random proměnné.
    1. by mi určovala které serva mají reagovat (1.bit bylo servo 1, 2 bit servo 2, 3bit servo 3)
    2. proměnná by mi řešila nastavení (úhel) pro tyto serva
    3. proměnná by mi generovala délku prodlevy k dalšímu kroku.

    piticko
    Účastník

    co vymyslet nějaký takový kód:

    vygeneruj náhodné číslo z pinu A1 od 0 do 1023
    čekej vygenerovaný čas A1 (pro delší čas si lze pomoct matikou)
    vygeneruj náhodné číslo z pinu A0 od 1 do 3
    když bude číslo 1->udělej něco se servem1
    když bude číslo 2->udělej něco se servem2
    když bude číslo 3->udělej něco se servem3
    …a znova

    odpověď na: pomoc s projektem: použití "random" #5779
    piticko
    Účastník

    Tak jsem spáchal první verzi tak, aby byla funkční…

    int tln;
    int tl=0;
    void setup() {
      for (int x=2;x<=6;x++){
        pinMode(x,INPUT_PULLUP);
        }
      for (int i=8;i<=12;i++){
        pinMode(i,OUTPUT);
        digitalWrite(i,HIGH);
        delay(100);
        digitalWrite(i,LOW);
        }
      delay(2000);
      randomSeed(analogRead(0));
      tln = random(2,7);
      
    }
    
    void loop() {
      if(tln==2){
        digitalWrite(8,HIGH);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,LOW);
        }
      else if(tln==3){
        digitalWrite(9,HIGH);
        digitalWrite(8,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,LOW);
      }
      else if(tln==4){
        digitalWrite(10,HIGH);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,LOW);
      }
      else if(tln==5){
        digitalWrite(11,HIGH);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(12,LOW);
      }
      else if(tln==6){
        digitalWrite(12,HIGH);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
      }
      tl=digitalRead(tln);
      if (tl==LOW){
        tln=random(2,7);
      }
      else{}  
      }
    

    I jsem tedy zkoušel na výstup PULLUP 5V připojit OV a měl jsem asi štěstí, výstup přežil a i reagoval na těch 0V, jak poprvé psal Zbyšek.
    posjirka, nastuduji tvůj „obrázek“ a rád bych samozřejmě využil co nejméně pinů…poněvač, pokud budu chtít více tlačítek, tímto způsobem, co jsem spáchal, je k dispozici jen jedno. 🙂

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

    Mnohokrát děkuji,
    hned v pondělí to vyzkouším.

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

    Vždyť nikde nemáš paralelu mezi vzdáleností a intenzitou, pouze stále dokola rozsvěcíš a zhasínaš LED.

    Zkus toto, ale píšu to jen od PC nemám Arduino u sebe:

    #‎include‬ <ultrasonicranging.h>
    ‪#‎define‬ ECHO_PIN 7 // ECHO pin of HC-SR04
    #define TRIG_PIN 6 // Trigger pin of HC-SR04
    #define LED_OUT 11 // Drive LED (Base pin of TIP120

    void setup()
    {
    pinMode(TRIG_PIN, OUTPUT); // trigger pin of US range finder
    pinMode(ECHO_PIN, INPUT); // Echo pin of US range finder
    pinMode(LED_OUT, OUTPUT); // base of TIP120 to drive LED
    analogWrite(LED_OUT, 0);
    }

    void loop()
    {
    int distance = GetDistanceInCm(TRIG_PIN, ECHO_PIN);
    if (distance > 254 ) {
    distance = 254;
    }
    analogWrite(LED_OUT, distance);
    delay(500);
    }

    odpověď na: pomoc s projektem: použití "random" #5776
    posjirka
    Účastník

    Samozřejmě že jde použít 1 pin jak pro tlačítko tak pro LED.
    śkoda, že sem nejde vkládat obrázky přímo … .

    R1 TL1 R2 LED
    +5V -[330R]–/ —*—[330R]—|>|— GND
    |
    D1 —————|

    V podstatě žekáš na log.1 na pinu a když příjde tak jí zapíšeš a začneš se zajímat o jiný pin /LED/ .
    Odpor R1 chrání vstup před přímým připojením na +5V.

    Programově to můžeš udělat jako nahodile přiřazení pinu do pole a po stisku správného tlačítka bys šel o pozici doprava dokud nenarazíš na konec.

    odpověď na: pomoc s projektem: použití "random" #5753
    Zbyšek Voda
    Účastník

    Když se na to teď dívám s odstupem, vidím v tom zásadní problém… v momentu, kdy je zmáčknuté tlačítko a na výstupu je nastaveno HIGH je připojeno + přímo na GND a to se Arduinu líbit nebude.

    Toto tedy nebude správná cesta.
    Omlouvám se, že jsem si toho nevšiml dřív.

    Asi bych šel cestou nějakého toho multiplexingu.

    odpověď na: ARM programátor (C++) #5752
    Mirda
    Účastník

    No – chcete toho celkem dost. Asi budete muset vydržet, než dorazej posily ze Sahary a z Persie. Pak to zde určitě bude samej robotik,elektronik a programátor s velkýma zkušenostma s programovánim AI…

    odpověď na: pomoc s projektem: použití "random" #5750
    piticko
    Účastník

    Zbyšku díky,
    kouknu na ten PULLUP. Pro mne je to novinka 🙂

    Nemám potřebu při tomto projektu šetřit pinama, ale pokud to půjde tak, jak jsi nakreslil, bude to fajn.

    jdu si hrát…

    odpověď na: pomoc s projektem: použití "random" #5719
    Zbyšek Voda
    Účastník

    Dobrý den,
    když nad tím tak přemýšlím, možná by šlo použít něco jako toto:
    Schéma
    Je potřeba to ale vyzkoušet. Nemám u sebe teď Arduino.

    Potom by ovládání probíhalo tak, že byste přepínal mezi
    pinMode(pin, OUTPUT);
    a
    pinMode(pin, INPUT_PULLUP);
    společně s rozsvěcením LED, čtení stavu…


    Použití 2×5 pinů by bylo rozhodně nejjednodušší.


    Pokud ale chcete ušetřit piny, najdou se i další způsoby, které piny ušetří ještě o trochu více.

    Použitím nějakého multiplexingu se dá ovládat mnohonásobně více LED, než je pinů (počet roste i exponenciálně). Například při použití Charlieplexingu je možné pomocí tří pinů ovládat až šest LED (obecně je počet LED dán vztahem n^2-n, kde n je počet použitých pinů). Více o Charlieplexingu zde.

    Druhou kategorií je ovládání tlačítek. Těch je možné na jeden pin připojit teoreticky až 1023 (respektive rozsah analogového převodníku – 1). V praxi je počet menší, ale vašich potřebných pět tlačítek je OK. Všechny tlačítka jsou připojena paralelně k jednomu pinu v sérii s resistory různých hodnot. Stisknutím dvou tlačítek tak vznikne paralelní kombinace více resistorů. Pokud vyberete správné hodnoty odporů, budete schopný vyčíst všechny možné kombinace stisků tlačítek. Více tlačítek připojených k jednomu Arduino pinu je popsán zde.

    S využitím těchto dvou způsobů tedy použijete pouze čtyři piny! 🙂

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