как плавно изменять цвет РГБ светодиода без delay()???

SAn4Es_TV
Offline
Зарегистрирован: 18.04.2019

Уменя есть ргб светодиод и мне хочется плавно менять цвет светодиода без delay().

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Перепиши код с использованием millis().

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Покажи код. Для плавного переключения (изменения) цвета ... не нужен ни Delay () ни millis(). Только всё равно нормально (красиво) не получается. Не очень то цвета смешиваться хотят. Может это мне такой RGB достался. А может  - что на самом деле пины Ардуино не включаются одновременно, а  мозг зрительное впечатление глаза смешивать в цвета не хочет. А проверить подсоединением к одному порту через три потенциометра я не пробовал ввиду сложности схемы.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

SAn4Es_TV пишет:

Уменя есть ргб светодиод 

Это хорошо, плохо - когда нет.

SAn4Es_TV пишет:

мне хочется плавно менять цвет светодиода без delay().

Так, меняйте!Этого Он не успел запретить.

SAn4Es_TV
Offline
Зарегистрирован: 18.04.2019

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

SAn4Es_TV
Offline
Зарегистрирован: 18.04.2019

ЕвгенийП пишет:

SAn4Es_TV пишет:

Уменя есть ргб светодиод 

Это хорошо, плохо - когда нет.

SAn4Es_TV пишет:

мне хочется плавно менять цвет светодиода без delay().

Так, меняйте!Этого Он не успел запретить.


Мне хочется плавно менять цвет светодиода так чтобы скетч не тормозил.
Потому что при использовании делей останавливается весь скетч.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

SAn4Es_TV пишет:
Но можете хотя бы показать как использовать вместо делей милис???????

http://arduino.ru/tutorials/BlinkWithoutDelay
http://robocraft.ru/blog/arduino/385.html

SAn4Es_TV
Offline
Зарегистрирован: 18.04.2019

Jeka_M пишет:

SAn4Es_TV пишет:
Но можете хотя бы показать как использовать вместо делей милис???????

http://arduino.ru/tutorials/BlinkWithoutDelay
http://robocraft.ru/blog/arduino/385.html


За это спасибо!!!
А можете показать как менять цвет светодиода без делей.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

ЕвгенийП, (Петрович?)

Раз уж вы в он-лайн ... простой вопрс ... EEPROM "изнашивается" только при записи/стирании? Обязательно ли в скетче убирать (блокировать)  строку записи памяти, если адрес и содержимое ячейки не меняю? Извините, если нарушил правила форума.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

SAn4Es_TV пишет:

ЕвгенийП пишет:

Так, меняйте!Этого Он не успел запретить.

Мне хочется плавно менять цвет светодиода так чтобы скетч не тормозил. Потому что при использовании делей останавливается весь скетч.

Так я Вам про это и говорю - хочется - меняйте.

Хотите помощи - выкладывайте СВОЙ код.

То, что Вы "далеко от компьютера" - проблема исключительно Ваша. Возвращайтесь, когда будете близко. Помогают здесь тем, КТО ДЕЛАЕТ САМ, а не тем, кто "далеко от компьютера"

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не знаю, я не электронщик. Вопросы по программированию - пожалуйста, а в электронике я чайник-любитель.

SAn4Es_TV
Offline
Зарегистрирован: 18.04.2019

ЕвгенийП пишет:

Не знаю, я не электронщик. Вопросы по программированию - пожалуйста, а в электронике я чайник-любитель.


По электронной части всё просто.
Три светодиода к ардуинке.
А по программе я не знаю.

negavoid
Offline
Зарегистрирован: 09.07.2016

Муж_Долговой пишет:
EEPROM "изнашивается" только при записи/стирании?

да

Муж_Долговой пишет:
Обязательно ли в скетче убирать (блокировать)  строку записи памяти, если адрес и содержимое ячейки не меняю?

да

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

SAn4Es_TV пишет:
А можете показать как менять цвет светодиода без делей.

Нет.

bwn
Offline
Зарегистрирован: 25.08.2014

Jeka_M пишет:

Нет.

От ведь какой ленивый народ пошел. Ведь погуглил уже за ТС, скетчик трудно написать?))))

SAn4Es_TV
Offline
Зарегистрирован: 18.04.2019

bwn пишет:

Jeka_M пишет:

Нет.

От ведь какой ленивый народ пошел. Ведь погуглил уже за ТС, скетчик трудно написать?))))


Я бы написал.
Но я не знаю как.

sadman41
Offline
Зарегистрирован: 19.10.2016

Я тоже. Если напишешь, вышли оч надо!

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Муж_Долговой пишет:

Раз уж вы в он-лайн ... простой вопрс ... EEPROM "изнашивается" только при записи/стирании? Обязательно ли в скетче убирать (блокировать)  строку записи памяти, если адрес и содержимое ячейки не меняю? Извините, если нарушил правила форума.

Вообще говоря EEPROM изнашивается только от стирания. Поэтому если писать одни и теже данные, то износа не будет. Но это если вы будете делать запись "вручную", через операции с регистрами. И смысла в такой операции особо нет, посколько если ячейка не стерта, то новое значение, в большинстве случаев, запишится неправильно. Но в мире ардуино все делается через библиотеки. И  библиотечные фукции при записи в EEPROM cначала делают стирание. Так что в этом смысле износ осуществляется и при записи.

sadman41
Offline
Зарегистрирован: 19.10.2016

Если EEPROM типа FRAM, то он и при чтении будет ресурс терять. Так в даташите написано.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

sadman41 пишет:

Если EEPROM типа FRAM, то он и при чтении будет ресурс терять. Так в даташите написано.

Неудобно получилось .. на чужой ветке сидеть. Пожалуйчта больше не пишите здесь про EEPROM

Вопросы у меня остались - поэтому спрошу в разделе "Аппаратные вопросы" форума.

Извиняюсь перед ТС

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

asam пишет:

Вообще говоря EEPROM изнашивается только от стирания. Поэтому если писать одни и теже данные, то износа не будет. Но это если вы будете делать запись "вручную", через операции с регистрами. И смысла в такой операции особо нет, посколько если ячейка не стерта, то новое значение, в большинстве случаев, запишится неправильно. Но в мире ардуино все делается через библиотеки. И  библиотечные фукции при записи в EEPROM cначала делают стирание. Так что в этом смысле износ осуществляется и при записи.

Дико поражен этой тирадой.

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

Библиотеки пишут люди не глупее многих форумчан и они прекрасно понимают, как сэкономить ресурс епром. 

Код из даташита

char cSREG;
cSREG = SREG; /* store SREG value */
/* disable interrupts during timed sequence */
_CLI();
EECR |= (1<<EEMPE); /* start EEPROM write */
EECR |= (1<<EEPE);
SREG = cSREG; /* restore SREG value (I-bit) */

 Ну а в библиотеках ардуино сами посмотрите. Может и всем покажете эту волшебную операцию стирания, которая все портит.

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

asam пишет:

Муж_Долговой пишет:

Раз уж вы в он-лайн ... простой вопрс ... EEPROM "изнашивается" только при записи/стирании? Обязательно ли в скетче убирать (блокировать)  строку записи памяти, если адрес и содержимое ячейки не меняю? Извините, если нарушил правила форума.

Вообще говоря EEPROM изнашивается только от стирания. Поэтому если писать одни и теже данные, то износа не будет. Но это если вы будете делать запись "вручную", через операции с регистрами. И смысла в такой операции особо нет, посколько если ячейка не стерта, то новое значение, в большинстве случаев, запишится неправильно. Но в мире ардуино все делается через библиотеки. И  библиотечные фукции при записи в EEPROM cначала делают стирание. Так что в этом смысле износ осуществляется и при записи.

Иногда лучше пить, чем выдавать такие сентенции...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

bwn пишет:

От ведь какой ленивый народ пошел. Ведь погуглил уже за ТС, скетчик трудно написать?))))

Совсем распустились!

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

DetSimen пишет:

Иногда лучше пить, чем выдавать такие сентенции...


А по моему, всё правильно. Важно кол-во циклов записи с 0 в 1. А это, без стирания всей ячейки,  никак. http://microsin.net/programming/avr/avr103-using-eeprom-programming-modes.html