7 плавно загорающих и гаснущих диодов.

DisaDen
Offline
Зарегистрирован: 06.04.2021

Приветсвую всех. Необходимо создать скетч для ардуино нано. Что бы 7 диодов плавно загорались и гасли независимо друг от друга. Сколько будет стоить?

v258
Онлайн
Зарегистрирован: 25.05.2020

У нано всего 6 выходов ШИМ. Не получится

b707
Offline
Зарегистрирован: 26.05.2017

DisaDen пишет:
Приветсвую всех. Необходимо создать скетч для ардуино нано. Что бы 7 диодов плавно загорались и гасли независимо друг от друга. Сколько будет стоить?

диоды какие? если можно ws2812 - то без проблем. Пишите подробно, что значит "плавно и независимо" . И бюджет

Yaroslav10110
Offline
Зарегистрирован: 10.11.2020

 

yaroslav.kraynov@gmail.com обсудим. И скинте нормальное тз

Kakmyc
Offline
Зарегистрирован: 15.01.2018

1000р
Цена такая, потому, что выводов ШИМ 4, а диодов 6...
kakmycmail@gmail.com

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

обычные аналоговые диоды  - 1000р, адресные - 999р. ;))

я тебе хекс, ты мне $, я тебе сорс.

--------------------

на обычные ограничение - естественное ограничение тока выходов МК.

 

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

Kakmyc пишет:
1000р 

как мы с тобой синхронно! ;)))

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

почта мой ник на жмейле, телега - собака мой ник.

man9913
Offline
Зарегистрирован: 19.03.2016

Тоже поучаствую в конкурсе. Могу сделать и больше семи, стоимость как и у остальных 1тр, man9913@mail.ru

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

man9913 пишет:

Тоже поучаствую в конкурсе. Могу сделать и больше семи, стоимость как и у остальных 1тр, man9913@mail.ru

чисто теоретически, без цифровых добавок, только с использованием резисторов, можно сделать 2хN диодов, где N - число выходов МК. ;))))  

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Тоже могу сделать. Больше семи. 550 р

barmaley2m@yandex.ru

 

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

А я могу сделать и бесплатно. Но, только в свободное время...

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

В свободное и я могу бесплатно

b707
Offline
Зарегистрирован: 26.05.2017

Не пойму. что тут все "могут сделать" :) - ТЗ отсутствует :)

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

b707 пишет:

Не пойму. что тут все "могут сделать" :) - ТЗ отсутствует :)

Будет ТЗ - ещё куча народу набежит (видео не знаю как вставить)

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

Зачем нам чужое видео здесь? В ютуб умеем ходить и без бармалеев. 

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

А я и в ютуб не умею ставить.

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

А какэт_вы 7 диодов ШИМить будете ежли у нанки всего 6 ШИМ ног ???

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

-NMi- пишет:

А какэт_вы 7 диодов ШИМить будете ежли у нанки всего 6 ШИМ ног ???

Элементарно, Ватсон. Уже 8 зашимил. Программный ШИМ. Не слышали? Хочь все 20.

(А6 и А7 низзя. Они не поддерживают цифру)

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

-NMi- пишет:

А какэт_вы 7 диодов ШИМить будете ежли у нанки всего 6 ШИМ ног ???

На 100-200Гц? Ты дебил? Программно, конечно. Вообще от одного таймера. Никак не используя аппаратный ШИМ.

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

Бармалей пишет:

Уже 8 зашимил. Программный ШИМ. Не слышали? Хочь все 20.

Ааа... Понятно. Помому лично делал 16, программных, на 2-м таймере. Фигня это всё, камень сильно занят всегда, на другое уже не хватает времени ему...

Или есть другой "подход" ???

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

А заказчик просит и другое?

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

Бармалей пишет:

А заказчик просит и другое?

Вот смотри, я делал это лет 8 назад. Непомню подробности. На 8-ми битном таймере формируем квант по ISR_OVF. Далее прямо в векторе прерывания делаем счётчики. Вроде всё работает, но, допустим, на опрос кнопок времени хватит, а вот что-то времязависимое опросить - уже нет!

В качестве примера - сделай, допустим, 7 светодиодов + 2 18В20 + LCD по и2с.  Просто, для эксперимента.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

А заказчик просит термометр с дисплеем и с выходом в интернет?

Ну допустим, я нагрузил на велосипед 20 кирпичей. Везёт. А вот если ещё пару мешков цемента (которые мне не нужны)  - уже нет. Так что, не перевозить кирпичи на велосипеде?

man9913
Offline
Зарегистрирован: 19.03.2016

согласен с Бармалеем, я тоже думал на таймере эмуляцию шима делать. Ресурсов avr'ки хватает, сотни герц точно будет, а может даже и больше можно выжать, но зачем.

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

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

Единственный вариант у ТС - на STM23f103 дешманской наваять моргалово. Вот там можно и 7 и поболее и без напрягов:)))

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

man9913 пишет:

согласен с Бармалеем, я тоже думал на таймере эмуляцию шима делать. Ресурсов avr'ки хватает, сотни герц точно будет, а может даже и больше можно выжать, но зачем.

Можешь выложить hex с 7 светиками, 4-мя кнопками, 2х18В20 +LCD4x20 ??? Шоп кнопками можно было скважность менять и на дисплее всё это показывать + температуру с датчиков. Смогёшь???

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

-NMi- пишет:

Можешь выложить hex с 7 светиками, 4-мя кнопками, 2х18В20 +LCD4x20 ??? Шоп кнопками можно было скважность менять и на дисплее всё это показывать + температуру с датчиков. Смогёшь???

И отсылать результат на сервер через вайфай? И всё это надо в тиньку восьмипиновую всунуть?

man9913
Offline
Зарегистрирован: 19.03.2016

а чё не написал ещё что всё это надо в тиньку восьмипиновую всунуть?

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

-NMi- пишет:

Вот смотри, я делал это лет 8 назад. Непомню подробности. На 8-ми битном таймере формируем квант по ISR_OVF. Далее прямо в векторе прерывания делаем счётчики.

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

Для 8-ми программных ШИМ на одном таймере, нужно не на каждый тик падать в прерывание и делать 8 сравнений, а заранее построить упорядоченную таблицу для OCRA и менять на следующее по совпадению. Всего 8 прерываний за один период ШИМ, ну пусть (для 200Гц) это 5000мкс.

А если ваять, как ты, до для дискреты в 100 единиц нужно вызывать прерывание каждые 5000/100=50 мкс.

8 прерываний за 5 мс или 100, есть разница? Вот поэтому и нужно "учиццо+учиццо*учиццо" ;))))))

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

Колумб опять пальцы гнуть начал и грузить дебильными прожектами, которые нужны только ему.

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

-NMi- пишет:

man9913 пишет:

согласен с Бармалеем, я тоже думал на таймере эмуляцию шима делать. Ресурсов avr'ки хватает, сотни герц точно будет, а может даже и больше можно выжать, но зачем.

Можешь выложить hex с 7 светиками, 4-мя кнопками, 2х18В20 +LCD4x20 ??? Шоп кнопками можно было скважность менять и на дисплее всё это показывать + температуру с датчиков. Смогёшь???

Скока денег? У меня только 1602 есть, устроит? От 10 тыр за хекс. Принимаю пейпал,телефон и карты ;)).

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

wdrakula пишет:

-NMi- пишет:

Можешь выложить hex с 7 светиками, 4-мя кнопками, 2х18В20 +LCD4x20 ??? Шоп кнопками можно было скважность менять и на дисплее всё это показывать + температуру с датчиков. Смогёшь???

Скока денег? У меня только 1602 есть, устроит? От 10 тыр за хекс. Принимаю пейпал,телефон и карты ;)).

Та он на халяву хочит

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

sadman41 пишет:
Колумб опять пальцы гнуть начал и грузить дебильными прожектами, которые нужны только ему.

Я что, заказчик засветился уже где-то? Или ты про немаскируемого?

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

wdrakula пишет:

sadman41 пишет:
Колумб опять пальцы гнуть начал и грузить дебильными прожектами, которые нужны только ему.

Или ты про немаскируемого?


Да, про него. Вечно какую-то херню требует напрограммировать, чтобы он поверил в написанное.

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

wdrakula пишет:

Для 8-ми программных ШИМ на одном таймере, нужно не на каждый тик падать в прерывание и делать 8 сравнений, а заранее построить упорядоченную таблицу для OCRA и менять на следующее по совпадению. Всего 8 прерываний за один период ШИМ, ну пусть (для 200Гц) это 5000мкс.

А если ваять, как ты, до для дискреты в 100 единиц нужно вызывать прерывание каждые 5000/100=50 мкс.

8 прерываний за 5 мс или 100, есть разница? Вот поэтому и нужно "учиццо+учиццо*учиццо" ;))))))

Ну вот "оно" и само всплыло, "засада" называется. Да, подход с градациями OCRAx классный, никогда-бы нидадумался. А как насчёт вот так вот: сохраняем весь аппаратный ШИМ потенциал на всех ШЕСТИ ногах и используем его. И на любом ещё свободном векторе ISR_OVFx (тот, что побыстрее тикает) делаем программный ШИМ. В таком случае как поступить?

 

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

-NMi- пишет:

 В таком случае как поступить?

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

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

Всё, идей больше не будет? Грустно..

DisaDen
Offline
Зарегистрирован: 06.04.2021

Главное не ругайтесь.
Хотел ребенку в сад поделку сделать, созвездие большой медведицы и вместо звезд обычные белые светодиоды вставить и подключить. Ну и соответственно что бы они плавно тухли и загорались. В идеале все в разнобой.
Скорость "мерцания" примерно как в этом видео.
https://yandex.ru/video/touch/preview/?text=Медленное+управление+яркостью+диодов+ардуино&path=wizard&parent-reqid=1617721601914387-10334587504991669879-balancer-knoss-search-yp-sas-13-BAL&wiz_type=xl&filmId=5422855839659110542&url=http%3A%2F%2Fvk.com%2Fvideo128315622_456239101

DisaDen
Offline
Зарегистрирован: 06.04.2021

В принципе у меня есть ардуино uno. Но хотелось бы все покомпактней собрать.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Ну так напишите. Обсудим. Для медведицы есть очень компактный вариант. Делал себе звёзды на небо. 

barmaley2m@yandex.ru

b707
Offline
Зарегистрирован: 26.05.2017

wdrakula пишет:

Для 8-ми программных ШИМ на одном таймере, нужно не на каждый тик падать в прерывание и делать 8 сравнений, а заранее построить упорядоченную таблицу для OCRA и менять на следующее по совпадению. Всего 8 прерываний за один период ШИМ

Если я правильно понял идею - при каждом изменении скважности по любому из 8 выходов таблицу придется перестраиывать и пересортировывать, а не просто менять одно значение

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Да почитайте выше, про звёзды. Ему нужен просто генератор, имитирующий плавное случайное мерцание звёзд. Никаких дисплеев, температуры, вайфая. 

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

Можно и без дорогущих услуг бармалеев сделать даже красивее: https://mysku.ru/blog/aliexpress/69651.html

lilik
Offline
Зарегистрирован: 19.10.2017

ТС на millis() просите раз за деньги - из "обычных" светодиодов:)

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

Да, Бармалей дерёт не по детски.) БАМ спасёт ТС, как уже верно подметили. Можно и ещё кучу светодиодов навешать, и другие задачи решать.

lilik
Offline
Зарегистрирован: 19.10.2017

Бармалей пишет:

... Делал себе звёзды на небо. 

barmaley2m@yandex.ru

Класс! Просто зависть берёт за такие фразы.

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

Бармалей пишет:

Да почитайте выше, про звёзды. Ему нужен просто генератор, имитирующий плавное случайное мерцание звёзд. Никаких дисплеев, температуры, вайфая

В таком случае нахер там шим??? LPF-RC на каждый светодиод и управляй либо DDRx либо PORTx яркостью от времени.

И код тогда будет стоить - пакетик семек :)))

Morroc
Offline
Зарегистрирован: 24.10.2016

Вы сейчас договоритесь до того, что это можно сделать вообще без МК. Кошмар какой )

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

Базаришь. На десятичном счётчике влёхкую замучу, но без рандома)))      (но не хочу)

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

https://youtu.be/s8ZWM3qh41o

Собственно картинка, параметры мигания можно менять, как нравится. Сейчас просто ярклсть каждые 50мс меняется в случайном направлении на 5%. Можно придумать эффекты поинтереснее, например задать случайные периоды каждому и в них работать, тогда нужны еще параметры в описывающей структуре - период и текущая фаза. Короче простор для творчества.

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

#include <avr/interrupt.h>

const byte Pins[8] = {5, 6, 7, 8, 9, 10, 11, 12};

struct listPWM {
  byte* port;
  byte pin;
  byte OCR;
} pinList[8];

ISR(TIMER2_COMPA_vect) {
  byte t = OCR2A;
  byte n = OCR2A - 2;
  
  for (byte i = 0; i < 8; i++) {
    if ( ((pinList[i].OCR - t) & 0xff) < 2) {
      *(pinList[i].port) |= pinList[i].pin;
    }
    else if (((pinList[i].OCR - t) & 0xff) < ((n - t) & 0xff) )
      n = pinList[i].OCR;
  }
  OCR2A = n;
}

ISR(TIMER2_OVF_vect) {
  for (byte i = 0; i < 8; i++) *(pinList[i].port) &= ~pinList[i].pin;
}

void setup() {
  Serial.begin(115200);

  for (byte i = 0; i < 8; i++) {
    byte p = digitalPinToPort(Pins[i]);
    pinMode (Pins[i], OUTPUT);
    pinList[i].port = portOutputRegister(p);
    pinList[i].pin = digitalPinToBitMask(Pins[i]);
    pinList[i].OCR = 200;
  }

  TCCR2A = 0b00000000; //COM2A1:COM2A0:COM2B1:COM2B0:x:x:WGM21:WGM20
  TCCR2B = 0b00000110; //ICNC1:ICES1:X:WGM13:WGM12:CS12:CS11:CS10
  //режим 0 прескаллер 256 - ШИМ 244Гц.
  OCR2A = 0;
  TIMSK2 = 0b00000011; //xxxxx:OCIEB:OCIEA:TOIE
}

void loop() {
  
for (byte i = 0; i< 8; i++) {
  byte r = random(170,256);
  if (r < pinList[i].OCR) 
  pinList[i].OCR = constrain(0.95*pinList[i].OCR,170,255);
  else 
  pinList[i].OCR = constrain(1.05*pinList[i].OCR,170,255);
  }
  delay(50);
}

====================

ТС, если есть желание, в чем я сомневаюсь, напиши в телегу на @wdrakula я скажу, как мне закинуть $$$ на пиво.