Proste a trudne odliczanie czasu..

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
bplukaszbp
Młodszy majsterkowicz
Posty: 4
Rejestracja: 17 lip 2018, 15:27

Proste a trudne odliczanie czasu..

Post autor: bplukaszbp » 17 lip 2018, 15:45

Witam,

Panowie po tygodniowym kilkugodzinnym wertowaniu forów i youtuba poległem...

Generalnie jest pełno opisów o wszystkim i elegancko, ja na swój problem odpowiedzi nie znalazłem...

Próbuję zrobić sterowanie oparte na arduino Leonardo. Sterownik do pieca, który zamierzam wykorzystać do malowania proszkowego.

Sterownik ma robić kilka prostych czynności, wyświetlać aktualną termeraturę (działa!:)), załączać odpowiednie grzałki przy danych progach temperatur (też działa! :)) i odliczać czas po włożeniu do niego elementów ( nie działa...:()

Problem pojawia się z czasem wygrzewania, niektóre elementy potrzebują 20 min, inne 35. Wie ktoś może jak skonfigurować program, aby dwoma przyciskami programować czas. Pierwszym czas minuta więcej, drugim minuta mniej i trzecim przyciskiem uruchamiać odliczanie, które zakończone zostanie włączeniem przekaźnika, do którego podpięty będzie dzwonek informujący, iż czas minął. Dodatkowo chciałbym wyświetlać czas, który pozostał do odliczenia na wyświetlaczu.

Czy ktoś z forumowiczów wie, jak to ogarnąć?..... Bo mi już ręce opadają.

Pozdrawiam

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
Marhef
Złota rączka
Posty: 1190
Rejestracja: 18 lis 2011, 02:18

Re: Proste a trudne odliczanie czasu..

Post autor: Marhef » 17 lip 2018, 15:58

Ja wiem. Podejrzewam, że inni koledzy też wiedzą.
Chcesz gotowca, czy chcesz się czegoś nauczyć?
bplukaszbp
Młodszy majsterkowicz
Posty: 4
Rejestracja: 17 lip 2018, 15:27

Re: Proste a trudne odliczanie czasu..

Post autor: bplukaszbp » 17 lip 2018, 16:30

Szczerze, fajny byłby gotowiec, ale nie....
Chce się, nauczyć.

Wiem, że trzeba użyć milis(), zeby to zrobić, pewnie dałoby się też na zegarku rc. Tylko nie wiem nawet, gdzie szukać.

Zapoznałem się z tym wątkiem:

Wielozadaniowość na II kursie z forbota

Jest tutaj opis jak sterować diodami i wyświetlać czas w ms.

Oraz z obsługą wątków i końcem uciążliwego delay w arduino

Nie wstawiam linków bo nie wolno :)

Ale w dalszym ciągu nie wiem, w jaki sposób milisekundu przerobić na minuty i sekundy. Jak ustawić sterowanie przekaźnika odliczonym czasem, oraz jak to przenieść na ekran.

Jeżeli chodzi o przyciski programowalne, to przejżałem kod programu, ale nie rozumiem go wcale...
wchpikus
Majsterkowicz
Posty: 69
Rejestracja: 7 lut 2015, 20:59

Re: Proste a trudne odliczanie czasu..

Post autor: wchpikus » 18 lip 2018, 00:11

Najprosciej uruchomic timer z przerwaniem.

Pierwsza lepsza strona..

https://sites.google.com/site/qeewiki/b ... -atmega328

Reszta z gorki.

Mozesz tez rtc ale tutaj musisz i2c wlaczyc do pracy;)




Sent from my SM-A510F using Tapatalk

bplukaszbp
Młodszy majsterkowicz
Posty: 4
Rejestracja: 17 lip 2018, 15:27

Re: Proste a trudne odliczanie czasu..

Post autor: bplukaszbp » 18 lip 2018, 20:21

Im dłużej szukam, tym bardziej uświadamiam sobie jak jestem w tym zielony...

Znalazłem taki kod: Bardzo ładnie zwraca wartości w monitorze portu szeregowego.

Czy ktoś z Was wie, jak przerobić ten kod, tak, żeby można było przyciskami programować wyznaczenie czasu. Np. od minuty do godziny, oraz , żeby odliczanie wyświetlało się na wyświetlaczu, a po zakończonym odliczaniu włączał się przekaźnik??

Przyciski wystarczą tylko 3 (minuta w górę, minuta w dół, start)


/*
* Open serial monitor, press one of the keys below and click 'Send':
* 'S' - to start all timers
* 'P' - to pause all timers
* 'R' - to restart all timers
* 'T' - to stop all timers
*/
#include "Countimer.h"

Countimer tUp;
Countimer tDown;
Countimer tNone;

void setup()
{
Serial.begin(9600);

// Count-up timer with 10s
tUp.setCounter(0, 0, 10, tUp.COUNT_UP, tUpComplete);
// Call print_time1() method every 1s.
tUp.setInterval(print_time1, 1000);

// Count-down timer with 21s
tDown.setCounter(0, 0, 21, tDown.COUNT_DOWN, tDownComplete);
// Call print_time2() method every 1s.
tDown.setInterval(print_time2, 1000);

// No counter
// Just call print_none() method every 2s.
tNone.setInterval(print_none, 2000);

Serial.println("Press one of the keys below and click 'Send':");
Serial.println("'S' - to start all timers");
Serial.println("'P' - to pause all timers");
Serial.println("'R' - to restart all timers");
Serial.println("'T' - to stop all timers");
}

void loop()
{
tUp.run();
tDown.run();
tNone.run();

if (Serial.available() > 0)
{
char c = toupper(Serial.read());

switch (c)
{
case 'T':
tUp.stop();
tDown.stop();
tNone.stop();
break;
case 'R':
tUp.restart();
tDown.restart();
tNone.restart();
break;
case 'S':
tUp.start();
tDown.start();
tNone.start();
break;
case 'P':
tUp.pause();
tDown.pause();
tNone.pause();
break;
default:
break;
}
}
}

void print_time1()
{
Serial.print("tUp: ");
Serial.println(tUp.getCurrentTime());
}

void print_time2()
{
Serial.print("tDown: ");
Serial.println(tDown.getCurrentTime());
}

void print_none()
{
Serial.print("tNone: millis(): ");
Serial.println(millis());
}

void tUpComplete()
{
digitalWrite(13, HIGH);
}

void tDownComplete()
{
digitalWrite(13, LOW);
wchpikus
Majsterkowicz
Posty: 69
Rejestracja: 7 lut 2015, 20:59

Re: Proste a trudne odliczanie czasu..

Post autor: wchpikus » 19 lip 2018, 00:05

Pytanie.
Na jaki uc?


Sent from my SM-A510F using Tapatalk


Ok widze...leonardo
Atmega32U4
Jaki masz rezonator na plytce?
wchpikus
Majsterkowicz
Posty: 69
Rejestracja: 7 lut 2015, 20:59

Re: Proste a trudne odliczanie czasu..

Post autor: wchpikus » 19 lip 2018, 00:19

Gotowca nie dam, ale masz link do zegarka.
W kodzie masz ustawienia preskalera i timer1 do odmierzania czasu.
W przerwaniu chodzi zegar.
Reszta to juz twoja tworczość

https://circuitdigest.com/microcontroll ... -using-avr

Ps standardowo masz 8MHz kwarc, co cieżko sie dzieli tak, by otrzymac 1s lub jakąś cześć sekundy..
Wymien kwarc na początek.

Sent from my SM-A510F using Tapatalk

Awatar użytkownika
scorpion_1982
Majsterkowicz
Posty: 108
Rejestracja: 15 lut 2015, 00:55

Re: Proste a trudne odliczanie czasu..

Post autor: scorpion_1982 » 20 lip 2018, 13:05

Zainteresuj się
https://majsterkowo.pl/forum/viewtopic. ... 389#p13389
Minutnik kolega przedstawił sposób przeanalizuj kod i sobie poradzisz.
Odrobine chęci i wszystko można znaleźć.


Wysłane z iPhone za pomocą Tapatalk
ODPOWIEDZ

Strony partnerskie: