Если будет время завтра скину код . Миллисекундами делайте минуту, минутой делайте десятки минут, потом делайте час хотя вам это и ненадо достаточно 180 минут и выполнение.
вот просто часы просто поставите свой таймер на 3 часа и все
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
Если будет время завтра скину код . Миллисекундами делайте минуту, минутой делайте десятки минут, потом делайте час хотя вам это и ненадо достаточно 180 минут и выполнение.
Protez1999:Если будет время завтра скину код . Миллисекундами делайте минуту, минутой делайте десятки минут, потом делайте час хотя вам это и ненадо достаточно 180 минут и выполнение.
вот просто часы просто поставите свой таймер на 3 часа и все
Спасибо за ответ. Это видео я уже видел, но там много всего для меня лишнего и ненужного. Много элементов и проводов. Я же хочу сделать самый простейший таймер, даже пока без дисплея, т.к. не хочется кучу проводов, а просто ардуина и одна кнопка. Особая точность мне тоже не нужна, приблизительно от 3 до 4 часов выставить один раз в скетче и все.
Protez1999 если не сложно скиньте скетч, а там если что, то я сам его под себя доделаю. ![]()
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
Счас уже не вспомню но вроде в день было 6 секунд отклонение. Но это тоже можно подправить в автомате.
unsigned long time;
void setup(){
Serial.begin(9600);
}
void loop(){
time = millis();
int sek = time/1000;
int minyt = (time/1000)/60;
int cas = (minyt/60);
int minyt2 = minyt;
if(cas>0) minyt2 =(minyt-60*cas);
if((time/1000)>60) sek =(sek-60*minyt);
//выводит количество миллисекунд с момента начала выполнения программы
Serial.print(cas);Serial.print("c.");Serial.print(minyt2);
Serial.print("m:");Serial.print(sek);Serial.println("s:");
// ждет секунду, перед следующей итерацией цикла.
delay(1000);
}


Посмотрим, кроме меня, снаружи, кто-нибудь подключится?
Заявлен multiconnect.
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 YaBrowser/14.10.2062.12521 Safari/537.36
Referer: http://192.168.0.22/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru,en;q=0.8
OK
GET->POST
AT+CIPSEND=0,348
> HTTP/1.1 200 OK
Content-Type: text/html
Connection: close
RefreD2:0<br />D3:0<br />D4:0<br />D5:0<br />D6:1<br />D7:0<br />
SEND OK
Unlink
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
OK
GET->POST
AT+CIPSEND=0,348
> HTTP/1.1 200 OK
Content-Type: text/html
Connection: close
RefreD2:0<br />D3:0<br />D4:0<br />D5:0<br />D6:1<br />D7:0<br />
SEND OK
Link
+IPD,0,316:GET /favicon.ico HTTP/1.1
Host: art1.by:8882
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
Accept-Encoding: gzip, deflate, lzma, sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
OK
GET->POST
AT+CIPSEND=0,348
> HTTP/1.1 200 OK
Content-Type: text/html
Connection: close
RefreD2:0<br />D3:0<br />D4:0<br />D5:0<br />D6:1<br />D7:0<br />
SEND OK
похоже простой броузер
Кто хоть лазил?
Какой цвет?
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
Protez1999:цифери меняются
реализовал только чтение аналоговых пинов и цифровые начал
а что хоть за броузер?
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
я делал на балкон термометр и выключение обогревателя но внутри дом сети через wi-fi роутер. управление через веб.
Protez1999:красный
значит реальная многососковость
Protez1999:я делал на балкон термометр и выключение обогревателя но внутри дом сети через wi-fi роутер. управление через веб.
а я ту веб морду на ардуине с wifi ну и все дела выбор через какой роутер шифрование выбор канала и т.д.
ресурсов на ардуине не разгонишся
веселюсь пока
ты с
#include <SoftwareSerial.h>
работал?
Он что реально свыше 9600 скорость не тянет?
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
я уже не помню. надо посмотреть в коде. вообще забыл когда что то нормальное делал. счас в основном мелочи типа выключателя света для радиомодели.
Protez1999, Спасибо за наводку. Суть Вашего скетча уловил. Уже сделал обратный отсчет от необходимого интервала с выводом на дисплей nokia 5110 и отключением нужного порта ардуины, пока все работает. Буду мудрить дальше ![]()
О еще есть что спросить. А как этот цикл, когда до нуля дойдет остановить? Какая команда за это отвечает? А то ведь в минус пилить начнет. Попробовал наугад stop, компилятор ругнулся.
МиГ:Protez1999, Спасибо за наводку. Суть Вашего скетча уловил. Уже сделал обратный отсчет от необходимого интервала с выводом на дисплей nokia 5110 и отключением нужного порта ардуины, пока все работает. Буду мудрить дальше
О еще есть что спросить. А как этот цикл, когда до нуля дойдет остановить? Какая команда за это отвечает? А то ведь в минус пилить начнет. Попробовал наугад stop, компилятор ругнулся.
на тебе страшное кино пока не выпил вино https://yadi.sk/i/EW-TcT5Bdmdfj ух-ты ночь на дворе надо пойти поспать
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
Написать через if если значение -1 то оно равно 0. Хотя не вижу смысла. ну ушло в минус и пофик. нажал на кнопку и опять по новой.
вот http://arduino.ru/Reference
Заметил небольшой недочет в скетче, если его использовать именно как таймер, т.е. если отсчет ведется в обратную сторону. Для нормальной работы интервал не может составлять меньше чем 59 минут и 59 секунд, иначе таймер уходит в минус, так и не дойдя до нуля, т.е. если таймер выставить скажем 10 минут 00 секунд, то секунды сразу же уйдут в минусовое значение, а минуты останутся без изменений, тоже самое и с минутами, если поставить меньше 59, то часовое значение останется без изменений, а минуты уйдут в минус. Мне в принципе и так пойдет ( все равно мне нужен минимальный интервал больше 2-ух часов) , но может это как-то можно исправить??? А пока вот так
Вот сам скетч:
unsigned long time;
#include <LCD5110_Basic.h>
LCD5110 myGLCD(8,9,10,11,12);
extern uint8_t SmallFont[];
void setup(){
myGLCD.InitLCD(); // инициализация дисплея
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop(){
myGLCD.setFont(SmallFont);
time = millis();
int sek = time/1000;
int minyt = (time/1000)/60;
int cas = (minyt/60);
int minyt2 = minyt;
if(cas>0) minyt2 =(minyt-60*cas);
if((time/1000)>60) sek =(sek-60*minyt);
if(cas<0)digitalWrite(13, LOW);
else
digitalWrite(13, HIGH);
//выводит количество миллисекунд с момента начала выполнения программы
myGLCD.print("Vremya ostalos", 0, 0);
myGLCD.printNumI(int(0-cas), 9, 30);
myGLCD.print("CHAS:", LEFT, 20);
myGLCD.printNumI(int(60-minyt2), 39 , 30);
myGLCD.print("MIN:", 33, 20);
myGLCD.printNumI(int(60-sek), 66, 30);
myGLCD.print("SEC:", RIGHT, 20);
// ждет секунду, перед следующей итерацией цикла.
delay(1000);
myGLCD.clrScr();
}
art100:МиГ:Protez1999, Спасибо за наводку. Суть Вашего скетча уловил. Уже сделал обратный отсчет от необходимого интервала с выводом на дисплей nokia 5110 и отключением нужного порта ардуины, пока все работает. Буду мудрить дальше
О еще есть что спросить. А как этот цикл, когда до нуля дойдет остановить? Какая команда за это отвечает? А то ведь в минус пилить начнет. Попробовал наугад stop, компилятор ругнулся.на тебе страшное кино пока не выпил вино https://yadi.sk/i/EW-TcT5Bdmdfj ух-ты ночь на дворе надо пойти поспать
Ну блин art, ты как всегда в своем репертуаре, ну что можно понять по видео, ну лежит ардуинка и амперметр че-то прыгает, ты бы описание чтоль выкидывал вместе с видео, или на видосе прямо бы объяснял, а то что это за .... мне лично не понятно ![]()
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
Protez1999:он писался как часы а не как таймер
Да я понял назначение Вашего скетча. Еще раз спасибо за помощь ![]()
А можно последний вопросик:
Вот кусочек программы, который написан для отключения 13 выхода.
if(cas<0)digitalWrite(13, LOW);
else
digitalWrite(13, HIGH);
По логике должно быть при отрицательном значении "cas" 13 вывод должен отключаться, а у меня почему-то ничего не происходит, светодиод горит даже после того, как значение "cas" уходит в минус. Что сделал не так?
|
офлайн
Protez1999
Senior Member
Автор темы
|
|
|
9978 |
18 лет на сайте Город:
|
if(cas<0)
digitalWrite(13, LOW);
else if (cas>0)
digitalWrite(13, HIGH);
можно так