Vladimir
ребят такой вопрос, можно ли связывать по колхозному медь и олово провода?
или их надо паять
Царь
sifun
связать то можно но прослужит недолго
Alexey Shevchenko
насколько я помню, там под напряжением происходит химическая реакция и они греются. и в итоге горят
Spanish Inquisition
Сегодня выборы!
Не забудь выбрать Главного Инквизитора недели.
Отдано 28 голосов
Для голосования написать @SpanishInquisitionBot команду start (впереди слеш!)
Или отдай свой голос тут:
2lb3oz4dr10½grOfHedgehogs
Привет. На к атмега32u4 у меня подключена светодиодная матрица 3х4.
```#define LED_MATRIX_ROW_PINS { D3, B1, B4 }
#define LED_MATRIX_COLUMN_PINS { D7, F5, B3, B5 }```
Как мне выставить их в режим вывода и как отправлять HIGH и LOW через них ?
Я знаю, что я могу написать
```DDRD |= 1 << 3;
PORTD &= ~(1 << 3);```
Чтобы устоновить D3 в режим вывода и выставить LOW на нем и так же пройтись по остальным пинам и хардкодом прописать для каждого. Но может есть способ чтобы пройтись в цикле по `LED_MATRIX_ROW_PINS` и `LED_MATRIX_COLUMN_PINS` и абстрактно для каждого установить режим и вывести данные Без хардкода?
Аналогично ардуиновым pinMode(pin, OUTPUT); digitalWrite(pin, LOW);
TeeGeRoN
У меня крч вопрос: как правильно возвращать значение переменной после того как оператор if присвоил ей другое значение? Ну то есть будет куча if. По умолчанию var=0, но если сработал датчик 1,то var=1, и т.д. Как правильно написать цикл возврата значения по умолчанию? Будет ли верно "if (d1==1) {var = 1}
elseif(d2==1){var = 2}
elseif...{}
else{var = 0}"?
Не будет ли проблем с этим значением, если сработают одновременно 2 датчика?
2lb3oz4dr10½grOfHedgehogs
2lb3oz4dr10½grOfHedgehogs
Первом удовлетворенном ифе*
2lb3oz4dr10½grOfHedgehogs
Если два сработают, то второй будет проигнорирован
TeeGeRoN
Есть способ это обойти?
2lb3oz4dr10½grOfHedgehogs
Есть способ это обойти?
Мне кажется, что твой код пахнет плохой архитектурой. Может расскажешь что ты хочешь сделать и тогда я смогу может что-то предложить
2lb3oz4dr10½grOfHedgehogs
Лучше даже сказать что за датчики и что за задача
2lb3oz4dr10½grOfHedgehogs
TeeGeRoN
Расскажу. Вообще не шарю как адекватно передавать значения черезь связь двух и более ардуинок, а именно как обозначать определенные датчики.Ибо в инете в примерах передают всего лишь 1 переменную. Пришел к выводу,что легче всего присвоить каждому срабатыванию определенного датчика значение, которое будет приниматься главной ардуинкой, и в связи уже с этим значением будет что-то выполняться
TeeGeRoN
А,юзаю модули nfr2401
TeeGeRoN
Передаю через них
Царь
2lb3oz4dr10½grOfHedgehogs
Передаю через них
Т.е. у тебя есть сеть датчиков, которые по воздуху передают показания в некоторый центр управления, в котором эти данные будут обработаны, так? Ты хочешь получить все данные по моменту прибытия. Данные одного типа или разного?
2lb3oz4dr10½grOfHedgehogs
(Но и книгу открой, что посоветовали)
TeeGeRoN
Данные разных типов. Книгу уже качаю, но не знаю найду ли верный ответ там. Лучше всего было бы передавать значения адекватно через модули радиосвязи,но пока не могу найти инфу по этому
2lb3oz4dr10½grOfHedgehogs
TeeGeRoN
Огня,дыма(3 уровня срабатывания), движение, температура+влажность. Если не проканает с датчиками dth,буду юзать аналоговый суто на температуру
TeeGeRoN
Возможно добавлю еще пару,на выходе которых будет цифра, но сути это не изменит
2lb3oz4dr10½grOfHedgehogs
TeeGeRoN
Т.е. пока они ничего не возвращают,я только сижу и думаю как это лучше всего сделать. В теории,например, срабатывание огня делает var=1, движение вар2, дым-вар 3,4,5 в зависимости от показаний а с температурой хер знает еще не придумал
TeeGeRoN
Nfr ки только сегодня приехали, пока разбираюсь
2lb3oz4dr10½grOfHedgehogs
TeeGeRoN
Да
2lb3oz4dr10½grOfHedgehogs
Да
Так. Ну что я с ходу могу придумать. Надо сделать тебе структуры данных для каждого типа датчиков, сериализовать их и отправлять. При получении вместо цепочки if elif сделать просто if if if if, возвращать массив собранных данных
enum sensor_type {
SMOKE,
TEMPERATURE,
HUMIDITY,
/* и так далее */
}
struct sensor_value {
sensor_type type;
uint16_t data;
}
std::vector<sensor_value> get_sensors_data( ) {
std::vector<sensor_value> values = {};
if есть данные с дымодатчика{
values.append({.type SMOKE, .data данные)
}
if
if
if
return values;
}
Alexey Shevchenko
2lb3oz4dr10½grOfHedgehogs
2lb3oz4dr10½grOfHedgehogs
Надо сделать опрос массивов одинаковых датчиков персонально, получать от них данные в массив, обрабатывать по типам
2lb3oz4dr10½grOfHedgehogs
2lb3oz4dr10½grOfHedgehogs
TeeGeRoN
Описал ты отлично,еще бы врубиться о чем
2lb3oz4dr10½grOfHedgehogs
TeeGeRoN
Го лс,а то зафлужу ща тут
2lb3oz4dr10½grOfHedgehogs
TeeGeRoN
Продолжаем серию тупейших вопросов. Задаю массив как
float Array[4]={var1, var2, var3, var4}
TeeGeRoN
Как его полностью вывести в сериал порт?
TeeGeRoN
Serial.println(Array)/Serial.println(Array[])/Serial.println(Array[4]) не работают
Dmitry
Ну последнее тебе бинарно и выведет.
Запихни в массив 50, 60, 70 например.
Byte
Последнее выведет выход за границы массива… :-)
TeeGeRoN
Ну вот и я об этом
TeeGeRoN
Если писать так,оно обращаеться к конкретному элементу
TeeGeRoN
А т.к. у меня 4 элемента, то оно будет кидать мне значение 0,ибо я обращаюсь к 5му элементу
TeeGeRoN
Вопрос в том,как вывести ЦЕЛЫЙ массив
Byte
Циклом.
Dmitry
Оно всё что угодно будет кидать
TeeGeRoN
Serial.print(Array[0]);
Serial.print(" ",Array[1])...
Типа так?
TeeGeRoN
По другому никак?
Byte
for(int i = 0; i < size_of_Array; i++)
{
  Serial.println(Array[i]);
}
Byte
size_of_Array определи только.
TeeGeRoN
TeeGeRoN
Спасибо огромное
TeeGeRoN
На половину сделал то что хотел
Byte
А вообще — было бы неплохо сначала что-нибудь по Си почитать, коли такие вопросы возникают ;) Тех же Кернигана и Ритчи, хоть там стиль изложения очень сухой.
TeeGeRoN
Когда-то читал об этом. Но видимо хреново отложилось в памяти,либо сейчас я слишком раздражен,что бы мыслить адекватно. Мне тут книжку кинули,Джеркми блума,почитаю,подтяну
Dmitry
Или просто примеры посмотреть в экзпмплах
Anonymous
«Миш, Миш отъезжай!»: Момент столкновения поезда и фуры в Наугольном
Anonymous
От банка зависит
Maxim
2lb3oz4dr10½grOfHedgehogs
Я не помню как там замараяиваться в чистом си, не шарю
Maxim
Весь вектор - это сплошные выделения памяти в heap, причем еще периодически растущие. Так можно делать только при очень определенных условиях, иначе твой хип со временем может и фрагментироваться
Maxim
И будет так, что программа неделю работала, а потом почему-то сломалась без видимых причин
Maxim
Т.е. этот фрагмент кода в изоляции еще норм. Но если есть другие malloc-и, особенно долгоживущие, то надо очень аккуратно бдить за свой жепь
Sasha
Привет
Sasha
имею с алика арду нано
Sasha
с шилдом. подпаял на 4 ногу температурный датчик с разгрузкой в 4,63ком на 5в. шью скетч а арду ведет себя странно
Sasha
как то возможно сделать дебаг в ком порт?
kaktys
kaktys
https://www.aliexpress.com/item/Nuclear-battery-20-Year-Lifetime-free-shipping/1432182326.html
Sasha
был бы благодарен
kaktys
куда точнее то
Sasha
да и с сопротивлением между d4 и 5v дуина не шьеться