ARDUINO Огненый светильник. Обсуждение проекта

20.11.2018
9
0
1
#1
Доброго времени суток.
На основании проекта "ОГНЕННЫЙ СВЕТИЛЬНИК" я сделал подсветку в книжном шкафу. Но т.к. у меня arduino стоит сверху то и лента направлена сверху в низ И в режиме имитации огня "огонь горит" сверху в низ.
Подскажите, пожалуйста, есть возможно изменить код так, чтобы развернуть "огонь" на 180 градусов?? видео подсветки
 
31.01.2019
20
4
3
#3
Если я правильно понимаю у ленты есть стрелочки у каждого куска. Вот относительно них и переверни. Ну если в програмном коде надо глянуть, по идее это счетчик перевернуть вместо i от 0 до "количество диодов" i++ сделать от "количество диодов" до 0 соответственно I-- (честно не помню как огонь сделан но обычно перебор диодов есть везде)
 
20.11.2018
9
0
1
#5
Если я правильно понимаю у ленты есть стрелочки у каждого куска. Вот относительно них и переверни. Ну если в програмном коде надо глянуть, по идее это счетчик перевернуть вместо i от 0 до "количество диодов" i++ сделать от "количество диодов" до 0 соответственно I-- (честно не помню как огонь сделан но обычно перебор диодов есть везде)
Спасибо, попробую.
 
20.11.2018
9
0
1
#6
Если я правильно понимаю у ленты есть стрелочки у каждого куска. Вот относительно них и переверни. Ну если в програмном коде надо глянуть, по идее это счетчик перевернуть вместо i от 0 до "количество диодов" i++ сделать от "количество диодов" до 0 соответственно I-- (честно не помню как огонь сделан но обычно перебор диодов есть везде)
Значение менять тут? ссылка на код gyverLight_by_Vadim
// ****************************** ОГОНЬ ******************************
#define COOLING 55
// SPARKING: What chance (out of 255) is there that a new spark will be lit?
// Higher chance = more roaring fire. Lower chance = more flickery fire.
// Default 120, suggested range 50-200.
#define SPARKING 110
void fire() {
random16_add_entropy( random());
Fire2012WithPalette(); // run simulation frame, using palette colors
}
void Fire2012WithPalette()
{
// Массив значений температуры для каждого диода
static byte heat[NUM_LEDS];
// Шаг 1. Охладим немного каждый светодиод
for ( int i = 0; i < NUM_LEDS; i++) {
heat = qsub8( heat, random8(0, ((COOLING * 10) / NUM_LEDS) + 2));

и тут

// ****************** СЛУЖЕБНЫЕ ФУНКЦИИ *******************

void fade() {

for (byte i = 0; i < NUM_LEDS; i++) {
 
Последнее редактирование:
21.02.2019
3
0
1
#7
Здравствуйте, я тут собрал "огненный светильник" и вроде запустилось, но одна только лента и не реагирует на сенсор, сенсор дико греется, все соединения проверил, все ленты прозваниваются, контакт есть, напряжение на них приходит, но горит только одна
 
21.02.2019
3
0
1
#9
с сенсором ладно, ещё 4 штуки есть, а по ошибкам монтажа... а что там может быть то? вроде просто 4 куска в параллель?
 
31.01.2019
20
4
3
#11
Уже писали о возможности коротыша на алюминиевое основание. Проверь источник тока странно что прям выгорело что то. Прозвони все провода на коротыши.

З.Ы. Я еще тот паяльщик, нафигарил аж самому стыдно. Прозвонил коротышей нету, запустил все норм работает. Я вот у дигипарка убил загрузчик пару раз это да, и походу дуинку перегрел :(
 
31.12.2018
5
0
1
#13
Странно что никто не пишет здесь о проблемах связянных с питанием. В коментах на сайте много у кого проблемы.
 
31.12.2018
5
0
1
#14
собрал все по схеме, взял заволявшийся БП на 3 А 5в. при питании от компа все ок, как только подключаешь питание БП кнопка начинает глючить - срабатыват сама собой ...
В коментах пишут что помогает установка конденцатора на 1000 микрофарат на пины +5 и gnd ардуино.
помогло, но полностью проблему не решило - работает минуты 3 и потом начинает глючить ....
 
Последнее редактирование:
06.03.2019
1
0
1
#16
Прошу помощи в доработке скетча под реализацию дополнительной функции индикациии уровня заряда аккумулятора. (собираюсь сделать светильник автономный и хочется реализовать индикатор уровня заряда силами самого светильника).
Как замерить уровень заряда ардуиной я нашел, вот код:
Код:
// пин для считывания напряжения
int pin_read = A1;
// максимальный заряд аккумулятора
float max_v = 4.25;
// минимальный заряд аккумулятора
float min_v = 2.75;

void setup(){
// установка опорного напряжения для аналоговых входов
analogReference(INTERNAL);
// вывод данных в монитор порта
Serial.begin(9600);
}
void loop(){
float Vbat = (analogRead(pin_read) * 1.1) / 1023;
float del = 0.0998; // R2/(R1+R2) 1.008кОм / (10кОм + 1,008кОм)
float Vin = Vbat / del;
// уровень заряда в процентах
int proc = ((Vin - min_v) / (max_v - min_v)) * 100;
// вывод данных в монитор порта
Serial.println(Vin);
Serial.println(proc);
delay(1000);
}
Этот Код благополучно интегрируется в основной скетч проекта и отсылает как значения напряжения на аккумуляторе так и процентное значение уровня заряда.

Задача дописать код который будет по определенному нажатию на сенсор (допустим 5ти кратное нажатие) прерывать текущий режим свечения, и на несколько секунд отрисовывать уровень заряда аккумулятора пропорционально измеренному значению (допустим длину ленты разделить на 3 сегмента красный-желтый-зеленый) и после индикации вернуться к отрисовке прерваного основного графического эффекта.

Ua3ESQ2R_uQ.jpg
 
Последнее редактирование:
06.03.2019
3
0
1
#17
Повторил. Работает замечательно. Большое спасибо автору . Огромная благодарность модераторам за ответы. Я пока в программировании Ардуино -0 и реализовать свое предложение не могу. А он таково. Цвета режима "огня " не естественны, много красного. Нельзя ли сделать тоже, но в оранжевых и желтоватых тонах. Спасибо.
 
06.03.2019
3
0
1
#19