Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Таймер

Здесь только проекты на ATtiny

Таймер

Сообщение Zed » 28 янв 2009 04:28

Есть предложение дополнить проекты еще одним на базе той же схемы :oops: :-)
У фирмы Овен есть реле времени двухканальное, функций дофига, но штука в быту нужная.
Например, уезжаю я из дому, а обогреватель шурует целый день, а с этакой штукой выставил циклический таймер ему на сутки (типа час работает, два стоит) и ок.
Наворотов конечно у овна полно, а вот если упростить, то как дополнение к остальным устройствам суппер будет.
http://kipshop.ru/Documentation/passport/ut24_353.pdf
Zed
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 28 янв 2009 03:59

Re: Таймер

Сообщение hardlock » 28 янв 2009 10:48

Пишите, что хотите от таймера, а я подумаю в этом направлении как будет время.

А для обогревателя как раз и делался термостат, чтобы можно было оставлять хоть на неделю...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Таймер

Сообщение Zed » 14 фев 2009 04:12

Прибор можно накрапать на базе схемы терморегулятора http://hardlock.org.ua/mc/tiny/termostat_v1/index.html
То есть две кнопки (Pa1,Pa0)
Два выхода (Pd3,Pd2)
Внешний сигнал (Старт,стоп) (Pd6)
Сброс (Reset)

Первое включение:
Видим мигающие 00.00 на Pd3,Pd2 состояние Z
Вход в меню осуществляется удержанием на протяжении 3 сек кнопок + и -
После входа первая цифра (т.е. Pd5) индицирует 1, что означает первый временной интервал.
Максимальное количество интервалов 4.
Перемещение по меню осуществляется кнопками + и -.
Вход и выход в\из подменю - кратковременное нажатие кнопок + и -.
Выход в режим отсчета осуществляется удержанием на протяжении 3 сек кнопок + и -.

Задание интервала 1,2,3,4:
После входа в 1 (+и-) видим 00.00
Первые две цифры - это часы , вторые, секунды.
Установка осуществляется нажатием + или - (Чем дольше держишь кнопку, тем быстрее происходит изменение значения)
Максимальный диапазон 99 часов 99 мин
Минимальный 1 секунда
Для установки минут и секунд необходимо из стартового входа просто листать - (значение будет меняться от 99.99 к 00.01)
Отличительная часть часового и минутного интервалов можно сделать точку (В часовом она будет мигать раз в 1 сек. , а в мин 4 раза в сек)

Каждый из интервалов может устанавливаться индивидуально от запроса хазяина прибора. Запись производится в энергонезависемую память.

Листая меню
5-------Выход канала 1 (1 прямой, 0- инверсный) По умолчанию 0
6-------Выход канала 2 (1 прямой, 0- инверсный) По умолчанию 0
Каналу 1 соответствует 1-й временной интервал, а каналу 2 соответствует 2-й временной интервал.
Интервалы 3 и 4 служат для так называемых пауз.
7-------Активация по внешнему сигналу (1 -активна, 0- не активна) По умолчанию 0 . При замыкании на Gnd начинается отсчет, при повторном нажатии - прекращается.

Работа прибора после установок.
При заданном только интервале 5 часов 00 мин (Канал 1)
И выходе канала - прямой
После подачи питания на прибор видим обратный отсчет времени, мигающий раз в 1 сек разделитель 04.99 и логическую 1 на выходе.
При пропадании питания отсчет опять начинается с ранее установленного интервала. При дохождении времени до 1 часа индикация переходит в 59.59 ,а мерцание разделителя меняется на 4 раза в пол секунды. Достигнув 00.00 на выходе появляется 0, который удерживается до сброса питания.
На сегодня все. Дальнейшие пояснения позже :-)
Zed
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 28 янв 2009 03:59

Re: Таймер

Сообщение hardlock » 16 фев 2009 10:12

Zed, хорошее описание! Прямо тех задание! Спасибо!
Как только появится время - постараюсь реализовать, а сейчас ввязался в комерческий проект, который не оставляет время, поэтому пока беру на заметку Ваше техзадание!
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Таймер

Сообщение Zed » 17 фев 2009 00:42

Я сам пытаюсь писать, но есть камни, такие как таймеры и вектора прерываний.
Zed
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 28 янв 2009 03:59

Re: Таймер

Сообщение hardlock » 17 фев 2009 10:13

Zed писал(а):но есть камни, такие как таймеры и вектора прерываний

Та мвроде бы ничегосложного, если понять принцип работы.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Таймер

Сообщение Valentin_N » 30 май 2009 03:10

собственно афтору...
огромное спасибо с большим поклоном, за ваше желание поделится своими наработками с такими как я...
с паяльником на ты уже навена лет так 15... а еще и программист,на Delphi напишу чего угодно :)
но с МК к сожелению на ВЫ, думаю что это явление временное, но не сейчас....
для родителей собрал по вашей схеме устройство ТЕРМОСТАТ для инкубатора, заработало с пол пинка ;) очень радует, что родители довольны, т.к. не приходится бегать с градусником...
но вот для себя решил собрать таймер времяни.... касяк получился... в нете ток фельдиперсовые или очень дорогие схемы...
берем схему ТЕРМОСТАТА.... практически готовая, только на вход датчика температуры добавляем кнопку start/stop, и меняем софт (в чем и проблема)....
вот и готов таймер...
мелоч осталось, написать софт :)
т.к. что огромная просьба афтору сайта уделить внимание данной теме :) она очень актуальна...
простой одиночный таймер с зумером (тех реализация зумера мелочи)...
готов к альфа и бета тестированию...
Valentin_N
Пробегал мимо
 
Сообщения: 3
Зарегистрирован: 13 фев 2009 00:44
Откуда: ЮФО

Re: Таймер

Сообщение hardlock » 30 май 2009 10:45

Valentin_N писал(а):т.к. что огромная просьба афтору сайта уделить внимание данной теме она очень актуальна...
простой одиночный таймер с зумером (тех реализация зумера мелочи)...
готов к альфа и бета тестированию...

к сожалению сейчас занят сменой машины (свою продаю, новую беру), поэтому времени даже на форум иногда не находится... Напишите подробно, чего хочется от таймера (очень подробно), своего рода техзадание, а я в свою очередь постараюсь выкроить время.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Таймер

Сообщение Lektor » 23 янв 2010 18:51

Вот переодически захожу на данный форум в надежде улицезреть долгожданный таймер,а его все нет и нет :( Эх
Lektor
Пробегал мимо
 
Сообщения: 20
Зарегистрирован: 13 окт 2009 23:18

Re: Таймер

Сообщение hardlock » 24 янв 2010 02:40

Наверное и не будет. Работа не даёт заниматься даже тем, что уже есть, не говоря о чём-то новом.

ЗЫ: Поищите в инете. Думаю найдте подобные проекты.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Таймер

Сообщение Lektor » 28 янв 2010 21:30

Поищите в инете. Думаю найдте подобные проекты.


Так я ж и ищу ток все безрезультатно. :( Хотелось бы чтото на родной :-) ATtiny2313 или ATmega8.
Lektor
Пробегал мимо
 
Сообщения: 20
Зарегистрирован: 13 окт 2009 23:18

Re: Таймер

Сообщение Coviraylhik » 10 мар 2010 21:45

Я тоже интересуюсь таким таймером.Есть такой таймер на ATtiny2313 http://avr.inf.ua/timer_v2.html (на ЛСД , мне больше подошел бы на индикаторах) ,если кто сделает отпишитесь,а то там отзывы не написаны.
Coviraylhik
Частенько бываю
 
Сообщения: 69
Зарегистрирован: 19 фев 2010 00:05
Откуда: ZP.UA

Re: Таймер

Сообщение strem » 02 май 2010 00:28

посмотрите на http://arv.radioliga.com/content/view/213/44/таймер, собранный на микроконтроллере attiny2313.

Таймер предназначен для управления бытовыми нагрузками по одному из 3 алгоритмов:

Цикл: непрерывное включение нагрузки на заданный интервал времени с последующим отключением на другой заданный интервал;
Выдержка и однократное включение – включение нагрузки по истечению заданного интервала времени;
Выдержка и однократное отключение – отключение нагрузки по истечению заданного интервала времени.
strem
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 03 фев 2010 13:37
Откуда: Мелитополь

Re: Таймер

Сообщение Lektor » 02 май 2010 13:31

strem писал(а):
посмотрите на http://arv.radioliga.com/content/view/213/44/таймер, собранный на микроконтроллере attiny2313.


Там пока прошивка сыроватая с глюками,релиз совсем недавно вышел. :-)
Lektor
Пробегал мимо
 
Сообщения: 20
Зарегистрирован: 13 окт 2009 23:18

Re: Таймер

Сообщение FDoich » 02 май 2010 18:15

Один хороший человек мне сделал.
http://narod.ru/disk/20329132000/%D0%A2 ... 8.rar.html
FDoich
Частенько бываю
 
Сообщения: 42
Зарегистрирован: 01 мар 2009 22:30

Re: Таймер

Сообщение Demckiy » 03 май 2010 09:27

Может кому то пригодится или поможет...

В одной из статей о таймере я рассказал, как с помощью прерывания по переполнению можно отсчитывать временные промежутки. В этой статье я хочу рассказать о еще одном способе отсчета временных интервалов. Основан он на использовании прерывания по совпадению. В составе микроконтроллера Mega8 есть шестнадцатиразрядный таймер-счетчик Timer/Counter1, который может выполнять функцию сравнения с

заранее заданным числом и при совпадении вырабатывать прерывание по сравнению. Этот таймер может работать в нескольких режимах (генерация ШИМ, генерация ШИМ с фазовой коррекцией, сброс счетчика при совпадении и т.д.), которые задаются управляющими регистрами TCCR1A и TCCR1B. Подробнее о них вы сможете прочитать в соответствующей литературе по микроконтроллерам, которую можно скачать на сайте. Мы будем использовать режим сброса счетчика при совпадении. Как он работает? В специальный регистр заносится число, определяющее коэфициент деления счетчика. Таймер считает с нуля, и как только досчитает до числа, которое записано врегистре, сбрасывается в ноль и вырабатывает прерывание по совпадению. Таким образом, можно задавать любой коэфициент деления в пределах от 0 до 65535. Например для кварца 11,0592 МГц, чтобы получит перывание с интервалом в 1с нужно установит коэфициент предделителя равным f/1024, а в регистр сравнения записать число 0x2A2F или 10799 в десятичной системе счисления. Как мы получили это число? Да очень просто, тактовую частоту делим на 1024 (11059200/1024-1=10799). Именно такая частота будет на входе счетчика после предделителя. А тепер, чтобы получит частоту 1 Гц, нам нужно входную частоту поделить на 10799 - именно это число мы и записыванм в регистр сравнения. Когда таймер досчитает до 10799, он выработает прерывание и сбросится в ноль. Таким образом прерывание будет выполнятся 1 раз в секунду. Программа с использованием прерывания по совпадению будет выглядеть так:
Код: Выделить всё
#include "Mega8.h"
#include "m8def.h"
#include "delay.h"
#define LED PORTC.0  // Выход на исполняющий модуль
#define ON 1
#define OFF 0

#define IND_1 PORTC.2      // Аноды семисегментных индикаторов
#define IND_2 PORTC.3      // катоды подключены к порту D
#define IND_3 PORTC.4     
#define IND_4 PORTC.5     

#define BT1 PINB.0      //Сюда подключены кнопки управления
#define BT2 PINB.1     
#define BT3 PINB.2

unsigned char dsp = 1;   
unsigned char Disp1, Disp2, Disp3, Disp4;

unsigned char Dig[13];     

unsigned char buton1, buton2, buton3;  //Переменные для кнопок

unsigned int minute, second; 
unsigned int old_minute, old_second;
bit stoptimer = 1;              // Флаг остановки таймера
//-----------------------------------------------------
// Описание символов
void init_symbol()
{
    Dig[0] = 192;            // "0"
    Dig[1] = 249;            // "1"
    Dig[2] = 164;            // "2"
    Dig[3] = 176;            // "3"
    Dig[4] = 153;            // "4"
    Dig[5] = 146;            // "5"
    Dig[6] = 130;            // "6"
    Dig[7] = 248;            // "7"
    Dig[8] = 128;            // "8"
    Dig[9] = 144;            // "9"
    Dig[10] = 255;            // " "
    Dig[11] = 134;           // "E"
    Dig[12] = 135;           // "t"
}

// ----------------------------------------------------
// Функция вывода на дисплей

void Display (unsigned int Number)
{
    unsigned char Num1, Num2, Num3, Num4;
    unsigned int temp;  // Временная переменная

    Num1 = Num2 = Num3 = Num4 = 0;
    temp = Number;
    //-------------------------------
    while (temp >= 1000)
    {
        temp -= 1000;
        Num1++;
    }

    while (temp >= 100)
    {
        temp -= 100;
        Num2++;
    }

    while (temp >= 10)
    {
        temp -= 10;
        Num3++;
    }

    Num4 = temp;
   
   
   
    Disp1 = Dig[Num1];
    Disp2 = Dig[Num2] & 0b01111111; // Включаем десятичную точку
    Disp3 = Dig[Num3];
    Disp4 = Dig[Num4];

}



//-------------------------------------------------
// Инициализация портов
void Init_Port(void)
{
  DDRB = 0b11111000;
  PORTB = 0b00000111;
  DDRC = 0b11111111;
  PORTC = 0b00000000;
  DDRD = 0b11111111;
  PORTD = 0b00000000;
}

void Timer0_Init(void)
{
   TCCR0 |= (1 << CS02);
   TIMSK |= (1 << TOIE0); 
}

void Timer1_Init(void)
{
   TCCR1B |= (1 << WGM12)|(1 << CS12)|(1 << CS10);    // Устанавливаем коэфициент предделителя 1/1024 и сброс таймера при совпадении
   OCR1AH = 0x2A;   //Записываем коэфициент деления в регистр сравнения (старший байт)
   OCR1AL = 0x2F;    //Записываем коэфициент деления в регистр сравнения (младший байт)
   TIMSK |= (1 << OCIE1A);            // разрешаем прерывание таймера 1 по совпадению
 
}

//---------------------------------------------
// Функция установки минут
void Set_Minute(void)
{
   minute ++;
   if (minute>59)
   {
      minute = 0;
   }
}
//---------------------------------------------
// Функция установки секунд
void Set_Second(void)
{
   second ++;
   if (second>59)
   {
      second = 0;
   }           
}
//---------------------------------------------------------
// Инициализация сторожевого таймера

void WDOG_Init()
{
    WDTCR = (1 << WDP1);
    #asm("WDR");
    WDTCR |= (1 << WDE);
}

//*********************************************
void main(void)
{
   init_symbol();
   Init_Port();
   Timer0_Init();
   Timer1_Init();
   WDOG_Init();
   #asm ("sei");
 
   while(1)
   {
      if (stoptimer==1)
      {
         LED = OFF;

         if ((buton1>=84)&(buton2==0)&(buton3==0))   //Если нажата кнопка 1
         {                 //устанавливаем значение минут
            buton1 = 0;
            Set_Minute();
         }
         if ((buton2>=84)&(buton1==0)&(buton3==0))   // Если нажата кнопка 2
         {                 // устанавливаем значение секунд
            buton2 = 0;
            Set_Second();
         }
      }

      if ((buton3>=17)&(buton1==0)&(buton2==0))   // Если нажата кнопка 3
      {                 // запускаем или останавливаем таймер
         buton3 = 0;
         if (stoptimer==1)
         {
            if ((minute==0)&(second==0))
            {
               minute = old_minute;
               second = old_second;
            }
            else
            {
               old_minute = minute;
               old_second = second;
               stoptimer = 0;
               LED = ON;
            }
         }
         else           
         {
            stoptimer = 1;
            LED = OFF;
         }
         delay_ms(1000);
      }
      Display(minute*100+second);
   }
}
//**********************************************
//Прерывание по совпадению таймера 1
interrupt [TIM1_COMPA] void Time_s()
{
   if (stoptimer==0)
   {
      second--;        // Уменьшаем на 1 значение second
     
 
      if ((second>59)&(minute !=0))
      {
         second = 59;  // уменьшаем минуты на 1
         minute --;
      }           
      if ((minute==0)&(second==0))
      {
         stoptimer = 1;
      }
   }

//-----------------------------------

}
//Прерывание таймера 0 по переполнению
interrupt [TIM0_OVF] void Refresh_Display()
{
      #asm("WDR");
      if (dsp == 1)
      {
          IND_4 = 1;
          PORTD = Disp1;
          IND_1 = 0;
      }

      if (dsp == 2)
      {
          IND_1 = 1;
          PORTD = Disp2;
          IND_2 = 0;
      }

      if (dsp == 3)
      {
          IND_2 = 1;
          PORTD = Disp3;
          IND_3 = 0;
       }

      if (dsp == 4)
      {
          IND_3 = 1;
          PORTD = Disp4;
           IND_4 = 0;
       }


      dsp ++;
      if (dsp == 5)
      {
          dsp = 1;
      }

//---------------------------------
   if (BT1 == 1)    // Проверяем нажатие кнопок
   {
      buton1 = 0;
   }
   else
   {
      buton1 ++;
   }

   if (BT2 == 1)
   {
      buton2 = 0;
   }
   else
   {
      buton2 ++;
   }
   if (BT3 == 1)
   {
      buton3 = 0;
   }
   else
   {
      buton3 ++;
   }

}


http://samodelkin.kiev.ua/2010-02-07-17-26-26/43-st-timer-new
Demckiy
Частенько бываю
 
Сообщения: 37
Зарегистрирован: 13 апр 2010 18:49

Re: Таймер

Сообщение Lektor » 13 май 2010 13:39

FDoich писал(а):Один хороший человек мне сделал.
http://narod.ru/disk/20329132000/%D0%A2 ... 8.rar.html


FDoich,а более детальную информацию можешь подкинуть?Очень заинтересовал меня этот проэкт.И еще вопросик,а в какой программе собирать исходник прилагающийся к таймеру???Я пробывал и Код Виджен AVR и WinAVR чет не получается :(
Lektor
Пробегал мимо
 
Сообщения: 20
Зарегистрирован: 13 окт 2009 23:18

Re: Таймер

Сообщение Zver666 » 15 сен 2010 00:21

Приветствую.
Есть вариант таймера на PIC и ЖК дисплее, управление - 7 или 9 каналов нагрузки
линк: http://aes.at.ua/publ/tajmer_na_sem_vykhodov/12-1-0-245
хочу такой собрать для аквариума, летом пробовал развести под ДИП, получилась не очень :wall:.
Нужно было получить "вытянутую" плату (контроллер, обвязка, прочее) + плата ЖК экрана и кнопки управления на шлейфе (до 1 метра) в отдельном корпусе.
Пожалуйста помогите развести под СМД компоненты :oops: , только не с очень плотным монтажом (боюсь плохо дорожки будут переносится :dontknow: , так хоть подправить маркером смогу).
Zver666
Пробегал мимо
 
Сообщения: 6
Зарегистрирован: 05 май 2010 00:14

Re: Таймер

Сообщение Cry Baby » 23 сен 2010 08:05

.
Последний раз редактировалось Cry Baby 10 ноя 2011 07:58, всего редактировалось 2 раз(а).
Cry Baby
Частенько бываю
 
Сообщения: 48
Зарегистрирован: 14 апр 2010 08:48

Re: Таймер

Сообщение UT5ULJ » 29 окт 2010 23:02

был бы оччень полезный девайс если бы совместить функцию тахометра и счетчика наработки по времени. В подвесных лодочных и стационарных моторах То проходит по наработке моточасов. Вот такой девайсиккоторый бы считал время работы по наличии счетных импульсов от системы зажигания и суммировал их. Кто бы взялся сваять такую прошивку для контролера ?
UT5ULJ
Пробегал мимо
 
Сообщения: 20
Зарегистрирован: 16 окт 2010 17:54
Откуда: Ukraine Kiev

Re: Таймер

Сообщение Nizam » 19 янв 2011 14:08

Cry Baby, Можно получить схему, печатку и прошивку на таймер с AT89C2051??
Nizam
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 19 янв 2011 13:07

Re: Таймер

Сообщение Cry Baby » 24 янв 2011 15:11

.
Последний раз редактировалось Cry Baby 10 ноя 2011 07:57, всего редактировалось 1 раз.
Cry Baby
Частенько бываю
 
Сообщения: 48
Зарегистрирован: 14 апр 2010 08:48

Re: Таймер

Сообщение bars59 » 30 янв 2011 19:50

Вот почитайте http://arv.radioliga.com/content/view/213/44/
Прилагаю архив.
Вложения
micro-timer-superfinal-v2.rar
(31.85 КБ) Скачиваний: 375
bars59
Частенько бываю
 
Сообщения: 28
Зарегистрирован: 24 апр 2010 19:34


Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и гости: 3