Как запрограммировать 6-DIP переключатель

Так вроде бы у него есть ардуинка которая готова командовать состоянием переключаетля? Или следующий вопрос будет: “как ввести номер канала в ардуину?”

@RAAMVZ, что у вас имеется на управляющей ардуинке? Схема, код? Если с той стороны “только купленная ардуина”, то в этой теме можно поставить долгую паузу.

1 лайк

Общий минус. Вот ссылка на приемник
Смотри, что есть на AliExpress! VRX 64CH FPVмодуль приемника изображения за 7 061 ₽
https://sl.aliexpress.ru/p?key=I7co3BF

Здесь не SPI, а простое dip переключение. Для SPI 5808 вопрос решен у меня

Мне нужен пример кода. Да я начинающий ардуинщик и в си++. Но что такое SPI тебя научить могу. Ладно?

Смотри, что есть на AliExpress! VRX 64CH FPVмодуль приемника изображения за 7 061 ₽
https://sl.aliexpress.ru/p?key=I7co3BF

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

чат Гэпэтэ в помощь))) и вопрос решен))))

@RAAMVZ
соединить ардуинку и этот приемник по земле.
запитать от общего +5
соединить S1 S2 S3 CS1 CS2 CS3 с цифровыми пинами ардуинки (например, D8..D13)
пины ардуинки установить как выход
подавая на цифровые выходы ардуинки 0 или 1 вы задаете “положение” переключателя.

это простейший код что-то устанавливающий:

void setup() 
{
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);

  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(11, LOW);
  digitalWrite(12, HIGH);
  digitalWrite(13, LOW);
}

void loop()
{
}

пишу по памяти, могу опечататься

Мишутк а почему вы 0 и 1 не отправляете а отправляете
HIGH и LOW ? тоже морок наводите ?)))

дело не в коде, для начала измерить напряжение, что присутствует на пинах S1-S3 CS1-CS3 если к ним ничего не подключено и подано питание
PS а так как приёмник дорогой я бы поставил пару микросхем CD4051 - PCF8574, куда уж проще

Поскольку это свободно висящие входы, которые при замыкании дают землю, чтобы не было наводок, по идее должны быть подтянуты приемником к высокому уровню.
Вы правы, наивное предположение, что там +5 питания. Грамотно будет замерить к чему подтянут неподключенный уровень. Если отличается, согласовать напряжения.
Всегда есть выход - оптопара.

Но, как я понимаю

с аппаратной частью проблем нет.

Это все равно только начало. Для динамического управления это все равно превратится в выделение бита из слова состояния (адреса канала). Чую проблема будет это слово в ардуинку ввести. Я бы посоветовал самый простой способ - на D2-D7 поставить DIP-переключатель для установки слова состояния. 8))))))

Да, брат, я знаю про это. Что смог нагуглисть это сделать кейсами 64 штуки (64 частоты). Но мне сказали так только индусы программируют. Надо как-то задавать бинарный массив и извлекать нужные биты

unsigned char nAddress = 0x2a; //для примера разные биты
digitalWrite(8, (nAddress & 0x01) != 0);
digitalWrite(9, (nAddress & 0x02) != 0);
digitalWrite(10, (nAddress & 0x04) != 0);
digitalWrite(11, (nAddress & 0x08) != 0);
digitalWrite(12, (nAddress & 0x10) != 0);
digitalWrite(13, (nAddress & 0x20) != 0);

Значение адреса от 0 до 0x3f - 64 значения.

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

это если надо перебрать частоты последовательно, а рандомно выводишь в порт от 0 до 64 и будет щастье

Это точно!

И Вам, как самому дарному здесь умнику, я подскажу как это сделать. Полуглите подключение реле к ардуино и просто поставьте вместо своего переключателя шесть реле. А можете прямо вот такой модуль купить.

2 лайка

А Вы, простите, не индус?

Не, ну так только китайцы программируют.

Вы уж определитесь, китаец Вы или индус, тогда поговорим.

1 лайк

ты усложняешь схему, нафига? ты точно одарен

Мишутк а что в конце будет ?)))
если его гпт не устраивает, то вот это добавить можно))) https://www.ozon.ru/product/modul-rele-arduino-8-kanalov-220v-10a-849640150
там же дорожки запаивают для переключения канала… но я не вникал в его модуль и может ошибаюсь, мне просто хочется до кого нить докопаться))))

Петрович, опять неправильно помогаешь )))