Close

2x tlačítka přepínání dvou programu v arduinu

Úvodní stránka Fórum Hardware Arduino 2x tlačítka přepínání dvou programu v arduinu

  • Toto téma obsahuje celkem 3 odpovědi. Do diskuze (3 diskutující) se naposledy zapojil uživatel petan a poslední změna proběhla před 7 roky a 3 měsíci.
Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (celkem z 4)
  • Autor
    Příspěvky
  • #11709
    Dalasm
    Účastník

    Zdravím,
    Potřebuji radu. Pro vás banalita.
    Nevím jak napsat program aby při zmáčknuti tl 1 začala blikat dioda třeba 1s/1s on/off a při stisku druhého tl třeba 1s/2s. Libovolně mačkat a přepínat mezi těmito programy.
    Jsem úplný začátečník tak mě prosím nekamenujte.
    Byl by tu někdo ochotný sem napsat základní program?
    Piny a časy si přepíšu.
    Předem děkuji

    #11720
    posjirka
    Účastník

    obecně to napsat nelze.
    Posrím popiš co by opravdu mělo být funkcí celého zapojeni.

    Podel toho co píšeš tak budeš mít 2 talčítka.
    – program bude blikat v nějákém intervalu třeba 1s/1s.
    – po stisku tl 1 se změní na 1s/2s a pak bude už dál v tomto režimu dokud nepřepnu talčítko 2 nevrátím defaultní režim 1s/1a

    Chápu to správně?
    Jak dlouho chceš to tlačítko držet aby přeplo režim (pohrávám si s myšelnkou 1 symčky, která jde jednoduše pochopit, nebo pomocí přerušení kdy to není na první pohled hned pochopitelné).

    #11762
    Dalasm
    Účastník

    Ahoj,
    Aby jsi byl v obraze, jsem zvukař/muzikant a tohle potřebuju na stroboskop. Doma bastlim, ale jsem stará škola. Arduino je pro mě novinka. Mám vše hotové, jen ten program potřebuju (60w v LED chipech spinane přes mosfet) obyčejný strobo je v pohodě přes blink, ale potřebuji i druhý mód něco jako random s ttim že si časy napíšu sám. Něco málo sem o tým našel. Nejjednodušší by bylo tam dát kolébkový přepínač a tím to přepínat. Poloha 1 program blikani 50ms/50ms , poloha 2 program blikani třeba 50ms/5s (on/off) tlačítka nemusí být.

    #11860
    petan
    Účastník

    Úplně nejjednodušejc by to šlo udělat takhle:
    Je tam delay, takže na stisk tlačítka to bude reagovat vždy až po zhasnutí výstupu. Ale to při krátkých časech nemá vliv.

    
    int time1 = 10; //čas svícení (počáteční nastavení 10 ms)
    int time2 = 10; //čas nesvícení (počáteční nastavení 10 ms)
    
    void setup() {
    pinMode (5, INPUT); //vstup 1
    pinMode (6, INPUT); //vstup 2
    pinMode (7, INPUT); //vstup 3
    pinMode (8, INPUT); //vstup a tak dále
    
    pinMode (13, OUTPUT); //výstup
    }
    
    void loop() {
      //tady se řeší rozřazování
      if digitalRead(5){
        //stisknuto tlačítko 1
        //nastavit parametry 1
        time1 = 10;
        time2 = 10;
      }
    
        if digitalRead(6){
        //stisknuto tlačítko 2
        //nastavit parametry 2
        time1 = 20;
        time2 = 20;
      }
    
      //tady se řeší blikání
      digitalWrite(13, HIGH);
      delay(time1);
      digitalWrite(13, LOW);
      delay(time2);
    }
    
Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (celkem z 4)
  • Pro reakci na toto téma se musíte přihlásit.