Close

Bargraf

  • Toto téma obsahuje celkem 31 odpovědí. Do diskuze (4 diskutující) se naposledy zapojil uživatel posjirka a poslední změna proběhla před 7 roky a 3 měsíci.
Aktuálně je na stránce zobrazeno 15 příspěvků - 16. až 30. (celkem z 32)
  • Autor
    Příspěvky
  • #9640
    Jerry
    Účastník

    Takhle mi to funguje

    int prodleva = 40;
    int prodleva1 = 80;

    void setup() {
    for (int ledPin = 2; ledPin < 12; ledPin++) {
    pinMode(ledPin, OUTPUT);}}

    void loop() {
    // rozsvítí postupně led 1-10
    for (int ledPin = 2; ledPin < 12; ledPin++) {
    digitalWrite(ledPin, HIGH);
    delay(prodleva);
    }
    // zhasne postupně led 1-10
    for (int ledPin = 2; ledPin < 12; ledPin++) {
    digitalWrite(ledPin, LOW);
    delay(prodleva);
    }
    // rozsvítí postupně led 10-1
    for (int ledPin = 12; ledPin >=2; ledPin–) {
    digitalWrite(ledPin, HIGH);
    delay(prodleva1);
    }
    // zhasne postupně led 10-1
    for (int ledPin = 12; ledPin >=2; ledPin–) {
    digitalWrite(ledPin, LOW);
    delay(prodleva1);
    }
    }

    #9643
    posjirka
    Účastník

    uuuauauauauau …. nepoučitelnej.
    Nepoužíváš párové značky CODE, takže ten tvůj kod je pro všechny ostatní nepoužitelněj (ztracené — atd.)
    Navíc , nevadí ti, že první směr adresuje 10 (2-11, protože máš < 12)pinů a opačný směr 11 (12 – 2 protože máš >=2)
    Původní „krása“ řešení přes pole je pryč a pomocí 2 cmosů bych to udělal jednodušeji.
    Jde ti o to něco se naučit, nebo jen rozblikat pár ledek ? píšu to proto, že tvoje aktuální řešní je pro jakékoliv změny strašně těžkopádné. Pro začátek dobrý. Pro další vývoj 3- .

    #9645
    Jerry
    Účastník

    Když zadám počet pinů 11 tak mi to nekomunikuje s poslední led.

    #9646
    posjirka
    Účastník

    ????????????????:
    for (int ledPin = 2; ledPin < 12; ledPin++) {
    ledPin = 2, 3, 4, 5, 6, 7, 8, 9, 10, 11

    for (int ledPin = 12; ledPin >=2; ledPin–) {
    ledPin = 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2

    už chápeš ten rozdíl? ten první příklad ti nevolá pin č. 12 …
    Správně by měl být:
    for (int ledPin = 2; ledPin <= 12; ledPin++) {
    ledPin = 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

    #9648
    Jerry
    Účastník

    int prodleva = 40;
    int prodleva1 = 80;

    void setup() {
    // nastavení pinů pro led jako OUTPUT
    for (int i = 2; i <= 11; i++) {
    pinMode(i, OUTPUT);}}

    void loop() {
    // rozsvítí postupně led 1-10
    for (int i = 2; i <= 11; i++) {
    digitalWrite(i, HIGH);
    delay(prodleva);
    }
    // zhasne postupně led 1-10
    for (int i = 2; i <= 11; i++) {
    digitalWrite(i, LOW);
    delay(prodleva);
    }
    // rozsvítí postupně led 10-1
    for (int i = 11; i >=2; i–) {
    digitalWrite(i, HIGH);
    delay(prodleva1);
    }
    // zhasne postupně led 10-1
    for (int i = 11; i >=2; i–) {
    digitalWrite(i, LOW);
    delay(prodleva1);
    }
    }

    #9649
    Jerry
    Účastník

    Nevím jak to sem dát aby to bylo skutečně to co je v kódu. Při kopírování si to dělá co chce po editu taky a po odeslání to napíše nesmysly.

    #9651
    posjirka
    Účastník

    je to jednuduché. Když píšeš odpověd tak nad tectovým polem, kde píšeš je sada tlačítek:
    B – tučné písmo
    / – kurzíva
    lINK – vkladani HTML odkazu


    CODE – pro vložení kódu
    UZAVRIT ZNACKY – uzavře párové značky.

    Funguje to tka, že píšeš normální text: sdfaergasdcargascfWG
    Pak chceš vložit kód tak klikneš na CODE (vloží se apostrof), vložíš kod a buď dáš znovu CODE nebo UZAVŘÍT ZNAČKY. Opět se vloží apostrof a kod se ti dá do toho rámčeku a v původním formátu.

    #9653
    Jerry
    Účastník

    Díky moc to mě netrklo. Njn tak příště už to bude snad lepší.

    #9675
    Jerry
    Účastník

    Tak snad už to bude lepší. Dotaz .. v tomhle kódu nepůjde kombinovat výstupy D a A. Jak by to šlo vyřešit ?

    
    int prodleva = 40;
    int prodleva1 = 80;
    int prodleva2 = 200;
    
    void setup() {
            // nastavení pinů pro led jako OUTPUT
            for (int i = 2; i <= 11; i++) {
                  pinMode(i, OUTPUT);}
            }
    
    void loop() {
            // rozsvítí postupně led 1-10
            for (int i = 2; i <= 11; i++) {
                  digitalWrite(i, HIGH);
                  delay(prodleva);
            }
            // zhasne postupně led 1-10
            for (int i = 2; i <= 11; i++) {
                  digitalWrite(i, LOW);
                  delay(prodleva);
            }
                  delay(prodleva2);
      
            // rozsvítí postupně led 10-1
            for (int i = 11; i >=2; i--) {
                  digitalWrite(i, HIGH);
                  delay(prodleva1);
            }
            // zhasne postupně led 10-1
            for (int i = 11; i >=2; i--) {
                  digitalWrite(i, LOW);
                  delay(prodleva1);
            }
                  delay(prodleva2);
        }
    
    #9676
    posjirka
    Účastník

    kod je vložen správně … gratulace. No te´d jsi se dostal do stavu, kdy to takto jednoduše nepůjde. Tak „zpátky na stromy“ a podívej se na ten můj původní kod polem. Analogové piny mají při úpoužití jako digitální čísla 14 (A0) až 19 – (A5).
    tady je velmi vhodné použít pole. nemusel bys překopávat počítadlo for, ale stačilo by upravit seznam použitých pinů. Navíc bys jej mohl libovolně rozšiřovat/zužovat bez výrzné změny kodu (prostě bys jen změnil počet hodnot v poli) …

    #9677
    Jerry
    Účastník

    Prosím nakopnout víc 🙁 Tady se nějak ztrácím to už jsem zkoušel ale nevím jak definovat OUTPUT ve void setup … myslím pole

    #9679
    Jerry
    Účastník

    Jinak díky za podporu a gratulaci že jsem konečně něco udělal dobře.. zítra to bude cca 20 dní co jsem poprvé viděl ardo.

    #9682
    BlindP
    Účastník

    Smyčka for – https://www.arduino.cc/en/Reference/For
    Kompletní kód – https://www.arduino.cc/en/Tutorial/KnightRider
    Jirka už Ti přece ten kód tady napsal.
    BP

    #9685
    Jerry
    Účastník

    Já ale teď potřebuji zkombinovat D a A výstupy

    #9686
    posjirka
    Účastník

    chlape, chybí ti základy. opravdu je nutné si nejdřív něco nastudovat a pak začít experimenovat. kdybyte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodamioužil ten můj kod a upravil :
    byte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodami
    na třeba
    byte led[] = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}; //piny s LED diodami
    tak je to hotové. opravdu ale je třeba vyzkoušet examply a tutoriály než začneš vymýšlet svoje řešení, bez hlubšího pochopení souvislosti to prostě nejde.

Aktuálně je na stránce zobrazeno 15 příspěvků - 16. až 30. (celkem z 32)
  • Pro reakci na toto téma se musíte přihlásit.