Друзья, переклинило на простейшей задаче. Помогите, пожалуйста.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

С миганием светодиодом с помощью millis() разобрался. Это который тут: http://arduino.ru/tutorials/BlinkWithoutDelay. Вроде, все понятно и просто. Но попытка немного усложнить задачу ввела в ступор (даже не знаю почему голову заклинилонапрочь).  Вопрос примитивный, боюсь даже гнева форумчан: надо циклически включать светодиод на 1 секунду и выключать его на 10 секунд. Титаны, пожалуйста, черкните в loop(), как это сделать. 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Чорт! Пора Ноотропил пить: скетч-то забыл.

//Mega2590 Асимметричное мигание светодиодом

int pin_led=13;        /Пин светодиода
long time_on=1000;        /Время зажженного светодиода
long time_off=10000;      /Время погасшего светодиода

void setup() 
{
  pinMode(pin_led, OUTPUT);  
}

void loop() 
{
  //Здесь надо циклически на 1 сек включать и на 10 сек выключать светодиод.
}  

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

тебе надо сделать alive-светодиод?  Чтоб убедица, что система не зависла?

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

DetSimen пишет:

тебе надо сделать alive-светодиод?  Чтоб убедица, что система не зависла?

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

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

ТС в том же скетче помимо переключения светодиода надо менять значение переменной interval ...

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Komandir пишет:

ТС в том же скетче помимо переключения светодиода надо менять значение переменной interval ...

Ага,спасибо. Посмотрю.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Мы тут ленивые - ничего не за кого не пишем ...

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Командир, спасибо, разобрался. Все действительно просто.  Всех благодарю!

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Теперь такие темы на дипломах ??? (искренне надеюсь что нет)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Sonologist пишет:

Komandir пишет:

ТС в том же скетче помимо переключения светодиода надо менять значение переменной interval ...

Ага,спасибо. Посмотрю.

посмотри лучше это.  Интервалы ставятся на лету, на раз два.  Там и пример есть alive-светлодиодика. 

https://github.com/DetSimen/Arduino_TimerList

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

DetSimen пишет:

посмотри лучше это.  Интервалы ставятся на лету, на раз два.  Там и пример есть alive-светлодиодика. 

https://github.com/DetSimen/Arduino_TimerList

Спасибо, здорово!

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Вот, лиарьна, весь твой код

/*
    Name:       Blink.ino
    Created:	14.05.2020 13:48:04
    Author:     DtS
*/
#include <Arduino.h>
#include <TimerList.h>

extern TTimerList TimerList;

THandle hAliveTimer = TimerList.Add(1000, []() {
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN);
    TimerList.SetNewInterval(digitalRead(LED_BUILTIN) ? 1000 : 10000);
    });

void setup(){}

void loop(){}

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Дет, фтибе имеет место жить пейсатель. Уж больно складно получаццо утибя из букаф придлаженийа скласть.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

-NMi- пишет:

Дет, фтибе имеет место жить пейсатель. 

Ничо, скоро он из-за этих ваших карантинов с голоду подохнет, с котом вместе. :( 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А где переключение LED_BUILTIN на вывод ?. А где начальное состояние выхода ?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Komandir пишет:

А где переключение LED_BUILTIN на вывод ?. А где начальное состояние выхода ?

в неявно вызываемой при старте функции init(). :) 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Точно, он не в init(), он в bootloader-е настраивается, как один из хардварных SPI выводов

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А если его (bootloadera) нет ? 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Komandir пишет:

Теперь такие темы на дипломах ??? (искренне надеюсь что нет)

Да какие дипломы? Я врач уж 41 год. В ардуине ОЧЕНЬ меньше :). Выше писал, что игрушка для соседского пацана.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Может у пацана и диплом ...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Komandir пишет:

А если его (bootloadera) нет ? 

Тогда, приплыли. 

inspiritus
Offline
Зарегистрирован: 17.12.2012

Так в чем проблема. Обычный код с миллиc ,  где после срабатывания Вы меняете следующее время срабатывания. 
очень удобно, я так делал длинный шим для управления пидом мощным нагревом.

Green
Offline
Зарегистрирован: 01.10.2015

А делай запрещён?

Green
Offline
Зарегистрирован: 01.10.2015

DetSimen пишет:

Тогда, приплыли. 

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Green пишет:

DetSimen пишет:

Тогда, приплыли. 

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

а чо ж он мигает при загрузке?   

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

да блин, по 13 ноге в Uno SPI Clock хреначит, как он может быть на вывод не настроен, хоть с каким загрущиком. 

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

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Причем тут UART загрузчик и SPI ? SPI это когда ISP загрузка ...

может пора стакан накатить - смазка заканчивается ...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Komandir пишет:

Причем тут UART загрузчик и SPI ? SPI это когда ISP загрузка ...

Мда, опять хню несу. Пора накатить. 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Optiboot например умеет поморгать при старте - типа "я тута", но после этого он возвращает состояние пина к исходному ...

Green
Offline
Зарегистрирован: 01.10.2015

DetSimen пишет:

а чо ж он мигает при загрузке?   

Хочет и мигает, сволочь.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

вопщем, ТС, меня слушать не надо, допился я до маразма, паду посыплю башку золой.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

DetSimen пишет:

вопщем, ТС, меня слушать не надо, допился я до маразма, паду посыплю башку золой.

Слушать всегда надо. Другое дело реализация. Ваш вариант только прочитал (не делал его) и даже понял (что удивительно). Но остановился на совете Командира. Все действительно  просто и нормально работает.