Close

Cuore

Vytvořené odpovědi

Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (celkem z 4)
  • Autor
    Příspěvky
  • odpověď na: Rada pro začátečníka -stmívač a žaluzie #8768
    Cuore
    Účastník

    Obávám se, že encoder je cesta do pekel. Budeš tam mít spoustu mechanických vůli a čím dáš encoder blíž k motoru, tím bude proměřování větší. Takže zbytečná práce. V průmyslu se na tyto aplikace používají tzv. Lankové snímače což je kombinace encoderu a lankového bubnu. Konec lanka připevníš na spodní lištu žaluzií a měříš přesnou polohu.

    odpověď na: Problém ve smyčce #8508
    Cuore
    Účastník

    Bliknutí jsem předělal
    jas = 256; // zacatek bliknuti s cervenou LED
    for(poc=0;poc<256;poc++){
    jas = jas – 1;
    analogWrite(4, jas);
    delay(10);
    }
    for(poc=0;poc<256;poc++){
    analogWrite(4, poc);
    delay(10);
    } // konec bliknuti s cervenou LED
    nic lepšího mě nenapadlo. Jinak projekt je to spíš pro Raspi než arduino, proto jsem to tady nějak moc nezaplevelil. Na raspberry je napsaný celý program pro backend NASu a řízení disků a na HTPi je zase frontend pro komunikaci s NAS pak obsluha displaye, zápis dat na display, komunikace s Arduinem. Další frontendy jsou s klikacím GUI pro běžné PC, kde je možnost si yažádat o připojení do sítě, pro konkrétní disk. Arduino se stará jen o prvotní spuštění HTPi.

    odpověď na: Problém ve smyčce #8468
    Cuore
    Účastník

    Ještě přidám nějakou ukázku hotového multimediálního PC HTPi a NAS serveru RASNas, na kterém jsou uloženy data. Hlavní požadavek byl bezhlučnost, proto síťové uložiště. Pak plně automatický chod a jednoduché ovládání. Raspi podporuje HDMI CEC + odchyt tlačítek arduinem, takže stačí jen ovladač od TV. A poslední požadavek minimální spotřeba. Arduino je napájeno pomocí USB z TV, takže běží jen když je zapnuta TV. Raspi je sepnuto následně Arduinem přes vnitřní napájecí zdroj HTPi. U RasNas pokud neni potřeba, tak běží pouze Raspi < 3W a potřebné disky se připnou.

    odpověď na: Problém ve smyčce #8457
    Cuore
    Účastník

    Tak nakonec byl problém v SSR pomocí kterého se posila binární info od Raspi. Ikdyž tam byl pulldown odpor, tak arduino vyhodnocovalo Log1. Takže jsem to zapojil jako pullup a optimalizoval kód.
    #include <IRremote.h>
    #define PRODLEVA 50
    bool MinulyStav = 0; // priznak predchoziho stavu tlacitka (1 .. stisknuto)
    unsigned long CasZmeny; // promenna pro ulozeni casu zmeny stavu tlacitka
    int zelena; // Zelene tlacitko na ovladaci TV Sony Bravia
    int RECV_PIN = 3; // vstup od IRLED
    int poc; // promenna na pocitani cycklu
    int jas; // jas diody
    IRrecv irrecv(RECV_PIN);
    decode_results results;
    void setup()
    {
    Serial.begin(9600);
    irrecv.enableIRIn(); // Zacatek cteni pinu v seriovem monitoru
    pinMode(3, INPUT_PULLUP); // vstup od IRLED
    pinMode(4, OUTPUT); // R
    pinMode(5, OUTPUT); // G
    pinMode(6, OUTPUT); // B
    pinMode(7, INPUT_PULLUP); // zpetna vazba od RasPi
    pinMode(12, OUTPUT); // napajeni pro RasPi
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(12, LOW);
    }
    void loop() {
    // **OVLADANI RGB LED**
    if (digitalRead(7) == 0 && digitalRead(12) == 1) // RasPi si seplo samodrzny kontakt vypnu napajeni
    {
    analogWrite(5, 150); // zelena LED = 1
    analogWrite(4, 255); // cervena LED = 0
    analogWrite(6, 255); // modra LED = 0
    delay (5000); // cekej 5s
    digitalWrite(12, LOW); // vypnu napajeni pro RasPi
    }
    else if (digitalRead(7) == 1 && digitalRead(12) == 1) // pokud RasPi jeste nenabehlo
    {
    analogWrite(4, 254); // cervena LED = 1
    analogWrite(5, 254); // zelena LED = 1
    analogWrite(6, 255); // modra LED = 0
    }
    else if (digitalRead(7) == 0 && digitalRead(12) == 0) // RasPi bezi a drzi si napajeni
    {
    analogWrite(6, 254); // modra LED = 1
    analogWrite(5, 255); // zelena LED = 0
    analogWrite(4, 255); // cervena LED = 0
    }
    else if (digitalRead(7) == 1 && digitalRead(12) == 0) // arduino v pohotovosti
    {
    analogWrite(4, 254); // cervena LED = 1
    analogWrite(5, 255); // zelena LED = 0
    analogWrite(6, 255); // modra LED = 0
    }
    // **ODCHYT TLACITKA Z DALKOVEHO OVLADACE**
    if (irrecv.decode(&results)) {
    int zelena = results.value;
    if ((zelena == 13033) && ((digitalRead(7) == 1) && (digitalRead(12) == 0))) // pokud je stisknuto pozadovane tlacitko a zatim neprobehla akce spusteni RasPi
    {
    digitalWrite(12, HIGH); // sepni napajeni pro RasPi
    analogWrite(5, 255); // zelena LED = 0
    analogWrite(6, 255); // modra LED = 0
    jas = 256; // zacatek bliknuti s cervenou LED
    for(poc=0;poc<256;poc++){
    jas = jas – 1;
    analogWrite(4, jas);
    delay(10);
    }
    for(poc=0;poc<256;poc++){
    analogWrite(4, poc);
    delay(10);
    } // konec bliknuti s cervenou LED
    }
    Serial.println(zelena, HEX); // prepis HEX na seriovy monitor
    irrecv.resume(); // Cti dalsi hodnotu
    }
    if (digitalRead(3) == 0) // je-li tlacitko stisknuto
    {
    if (MinulyStav == 0 && millis() – CasZmeny > PRODLEVA) // neni-li nastaven priznak
    { // tlacitko stisknuto a uplynul-li vetsi cas od zmeny stavu tlacitka nez je mez (50ms)
    MinulyStav = 1; // nastav priznak tlacitko stisknuto
    }
    }
    else // neni-li stisknuto tlacitko
    {
    CasZmeny = millis(); // zapamatuj si posledni cas, kdy bylo nestisknuto
    MinulyStav = 0; // nuluj priznak, tlacitko stisknuto
    }
    }

Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (celkem z 4)