blackflash2007

помогите с таймером

26 сообщений в этой теме

наваял такой код 30м стаит 2 минуты работает 2 минуты работает но вместо 30м всего 10м  держит где я накасячел?

 

int Relay = 5;
int Rel = 13;
void setup() 
{                
  pinMode(Relay, OUTPUT); 
  pinMode(Rel, OUTPUT);     
}

void loop() 
{
  digitalWrite(Relay, LOW);   // реле включено
   delay(1200);    
   digitalWrite(Rel, LOW);   // реле включено
  delay(120000);               
  digitalWrite(Relay, HIGH);  // реле выключено
   delay(1200);
  digitalWrite(Rel, HIGH);  // реле выключено
  delay(1800000);               
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
andrusha152    25
21 минуту назад, blackflash2007 сказал:

 где я накасячел?

 

Вам бы сначала с грамматикой разобраться, а потом уже МК программиртвать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Программа нужна сейчас. Вам бы сначала научится отвечать по теме а затем писать на форум

Изменено пользователем blackflash2007

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    45

Просто разбейте 30 мин на 6 Х 5 мин и проверьте. С микросекундами в Ардуино точно есть проблема, возможно и здесь тоже. Можно попробовать  1800000UL

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

солар    177
11 час назад, blackflash2007 сказал:

delay(1800000);

Посмотрите в библиотеке какие числа пережёвывает функция delay(). И следуйте подсказке @snn_krs 'а.

Почитал http://arduino.ru/Reference/Delay

Хм... Не понял, где засада.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vovka    30
1 час назад, солар сказал:

Хм... Не понял, где засада.

Может собака вмешивается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
солар    177

Собака начинала бы программу заново. Впрочем, почему бы и нет. Смотря как оный настроен.

Ещё один момент: 

15 часов назад, blackflash2007 сказал:

delay(1200);

Это две минуты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TranceSmile    5

в том что контроллер все время занят. Посмотрите реализацию функции delay

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    555
2 часа назад, TranceSmile сказал:

в том что контроллер все время занят

Контроллер всегда всё время занят (если исключить sleep). Или delay его как то по-другому занимает ? До покраснения ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
солар    177
8 часов назад, TranceSmile сказал:

все время занят

digitalWrite(Rel, LOW);   // реле включено
  delay(120000);               
  digitalWrite(Relay, HIGH);  // реле выключено

Пусть этим и занимается, иначе начнёт водку пьянствовать и безобразия хулиганить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TranceSmile    5

я считаю что программу нужно сразу писать правильно, что бы когда появятся новые хотелки не пришлось все переписывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
солар    177

Программа пишется по ТЗ. Новая хотелка -> новое ТЗ -> новый бюджет. И хоть захотись! А вот как переписывать это уже дело программиста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    555

@TranceSmile , вот к чему такие безосновательные выпады ?
Сначала применили магическую фразу "не есть хорошо". Не доказали. Наводящие вопросы игнорируете.
Потом снова магическая фраза - "писать правильно". Что есть "правильно" в Вашем посте ?
Все сообщения по 2 слова с собственным мнением и виляние хвостом.

Ради чего пишете ? Ради того, чтобы просто написать что-либо ? Может лучше вообще ничего не писать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TranceSmile    5

функция delay(), можно сказать, замораживает контроллер, и я думаю, вы согласны что использование delay, не есть хорошим тоном. И если нужно только включать и выключать реле, то использование ардуино через чур. Думаю лучше взять какой нить аттини. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    555
1 час назад, TranceSmile сказал:

функция delay(), можно сказать, замораживает контроллер

А что с ним случится то, с контроллером ? И самый главный вопрос - почему это плохо ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TranceSmile    5

ну не так выразился, но зачем забивать маленький гвоздь кувалдой. Даже в документации не рекомендуют использовать delay больше 10 мс. И я смотрю ТСу вообще наверное все равно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
солар    177
2 часа назад, TranceSmile сказал:

Даже в документации не рекомендуют использовать delay больше 10 мс

А вы поняли почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TranceSmile    5

@солар , да из-за того что контроллер не сможет управлять портами, и не будут работать прерывания. Так как в цикле отсчета функции delay запрещаются прерывания

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Сообщения

    • И кстати... а сам холодильный агрегат в состоянии выдать желаемые 15-17? Тупо замкни (разомкни) родной датчик и пускай молотит без выключения, а ты погляди до какой температуры упадет и за какое время. Может на этом этапе весь энтузиазм и закончится.
    • Ну я и имел ввиду тестовый стенд..) замеряется легко даже 0.008ом у низковольтьных полевиков типа IRF3205  
    • Сначала PS1 Радары зафиксировали, что один местный гений опять отметился репликой в созданной мной теме. Кому интересно как я это воспринимаю могут посмотреть на этот скриншот. Режим тишины кароче.  Потом PS2 На втором месте по лайкам мой пост про скотч. Думаю, попробовать что ли со скотчем, но чтобы ни кто не знал... ночью, под одеялом... левой рукой...  А вот теперь можно и о деле https://youtu.be/hpcU_rAbxFI Судя по водяному знаку ("3M") видео официальное. 
      Походу zif-ки изначально не под пайку затачивались. 
      PS3 Поактивнее с лайками товарисчи! 
    • Мультик не сможет адекватно оценить сопротивление 0,16 ом и обеспечить ток через канал ампер 5-10. Надо стенд делать.
    • Между транзистором высоковольтным и радиатором образуется паразитный конденсатор (две пластины и между ними диэлектрик). Этот конденсатор и нужно шунтировать более ёмким конденсатором. В промышленной электроники и компьютерных блоках радиатор соединяют напрямую с минусом сетевого конденсатора. Но лично я например не хочу, что бы кого-то от радиатара током убило, я соединяю через конденсатор 0.01...0.1мкФ 1...2кВ (можно и любым обычным). Тоже самое и со вторичным выпрямителем, если диоды стоят на радиаторе и изолированы от него, радиатор нужно соединить с выходной массой. Так же между первичкой и вторичкой есть паразитный конденсатор, его так же нужно шунтировать. То-есть поставить конденсатор между минусом сетевого конденсатора, и массой вторичной цепи. Желательно конечно Y-типа (уходят в обрыв при неисправностях) Но можно и обычный. Я иногда два последовательно обычных на 1нФ 1кВ ставлю, для личного спокойствия. Если радиатор общий, то достаточно два конденсатора повесить, с минуса сетевого электролита на радиатор (2.2...4.7нФ 2кВ) и с радиатора на массу (47...100нФ 400В) Иголки должны в идеале пропасть. Может и защита перестанет реагировать на "погоду".



    • У меня нет транзистор-тестера, измеряю опытным путем ( источник 12в, 2 тестера, пара резисторов).
      А где брали оригинальные полевики?