Stránka 1 z 1

millis

Napsal: 27 čer 2024, 09:55
od Le-Ze
Zdravím.
Poradite- pomužete?
Bych potřeboval ukladat do int čas, který uběhl (0 - 60000) ,abych ho moh vypisovat přes ser. port.
Děkuji.

Kód: Vybrat vše

unsigned long cas = millis();
int toggle = 1;
 
void setup() {
    Serial.begin(9600);
}
 
void loop() {
    if (millis() - cas > 60000)     
    {
        odesli();
        cas = millis();           
    }
}
 
void odesli()
{
    Serial.println("hups");
}


Re: millis

Napsal: 27 čer 2024, 11:18
od AstroMiK
Do rozsahu "int" se tak velké číslo nevejde (rozsah je -32768 až +32767).
Je nutné použít rozsah "unsigned int" (rozsah 0 až 65535 ).

Třeba takhle:

Kód: Vybrat vše

unsigned long cas = millis();
int toggle = 1;
 
void setup() {
    Serial.begin(9600);
}
 
void loop() {
    unsigned int rozdil = millis() - cas;
    if (rozdil > 60000)     
    {
        odesli(rozdil);
        cas = millis();           
    }
}
 
void odesli(unsigned int hodnota)
{
    Serial.println(hodnota);
}

Re: millis

Napsal: 27 čer 2024, 12:16
od Le-Ze
Abych upřesnil, o co mi jde.
Mam lineární motory z ali a chci ovladat arduinem.
Na jendom GPIO je tlačitko. Když ho zmačknu, tak chci, aby se motor spustil plnou ryclosti - PWM 255.
Ale potřebují, abych ho mohl posledních par vteřin přes PWM zpomalit.

Re: millis

Napsal: 27 čer 2024, 15:33
od kiRRow
Jsem z toho volajakej zmaťenej ... ale chtěl bych podotknout, že není moc dobrý nápad spouštět jakékoliv motory okamžitě na max ...

Re: millis

Napsal: 27 čer 2024, 17:59
od Le-Ze
kiRRow píše:
27 čer 2024, 15:33
Jsem z toho volajakej zmaťenej
Tak ještě jinak.
unsigned long cas = 0;

void setup() {
Serial.begin(19200);
}

void loop() {
if (millis() >= cas + 10000) {
cas = millis();
Serial.println(cas);
}

}
Da se docilit toho, aby se mi přes ser. port vypisoval uplynulý čas?
0,1,2,3,4 ----- 9999, 10000.

Re: millis

Napsal: 27 čer 2024, 18:02
od kiRRow
Serial.println(cas/1000);

Re: millis

Napsal: 27 čer 2024, 22:30
od gilhad
U toho vypisování bych to nedělal v každém průběhu, ony ty výpisy nejsou zase tak rychlé.

Re: millis

Napsal: 28 čer 2024, 16:32
od kiRRow
gilhad píše:
27 čer 2024, 22:30
U toho vypisování bych to nedělal v každém průběhu, ony ty výpisy nejsou zase tak rychlé.
tady bych to ještě viděl, že jsme někde na úrovni : "poznejme arduino" ... zatím se zjišťují jeho možnosti a limity ... a možnosti a limity uživatele :-)

Re: millis

Napsal: 28 čer 2024, 17:53
od gilhad
Ano, ale je dobré vědět, že když to v té řadě 0,1,2.3,4.... začne mít mezery, že to není nutně nějaká záhadná chyba :)

Re: millis

Napsal: 28 čer 2024, 20:18
od kiRRow
Máte štěstí že jedu kolem, dovolíte ... technická závada ....... pamatuje, chybami se člověk učí ! :D