Как закодировать Arduino для выполнения определенного кода с помощью ползункового переключателя

Я новичок в arduino. Мне нужна помощь относительно проекта, который я делаю. Я использую ползунковый переключатель SPDT для переключения между тем, какой код (метод) должен выполняться. То есть, когда я сдвигаю переключатель влево, должен выполняться метод XXX, а когда я перемещаю переключатель вправо, должен выполняться метод YYYY. . Центральный контакт переключателя подключен к arduino +5v, а левая и правая ножки переключателя подключены так же, как тактильный переключатель взаимодействует с arduino. Пожалуйста, может ли кто-нибудь помочь мне с кодом или, по крайней мере, как запрограммировать arduino? СпасибоВот схема подключения

, 👍0


1 ответ


Лучший ответ:

0

У вас неправильная проводка переключателя для D12. Вы подключаете свои входы непосредственно к земле, и это никогда не может измениться, независимо от положения переключателя.

У вас фактически есть:

схема

Однако вы слишком все усложняете. Переключатель SPDT — это не что иное, как две кнопки, только одна из которых может быть нажата одновременно. Если один из них нажат, другой должен быть отпущен.

Вы можете полностью игнорировать половину переключателя и относиться к другой половине как к кнопке: если «кнопка» нажата, переключатель находится в одном положении. Если «кнопка» отпущена, то она находится в другом положении.

Если только это не центральный выключатель, в этом случае он имеет 3 положения, а не 2, а к среднему ничего не подключено.

Если это простой 2-позиционный переключатель SPDT, просто отсоедините провод D12 и удалите правый и резистор на вашем чертеже. Затем прочтите D13, чтобы определить положение: ВЫСОКОЕ — это одно положение, а НИЗКОЕ — другое.

Если это 3-позиционный выключатель с центральным выключением, переместите провод D12 на 4 отверстия влево, чтобы он подключался к соединению переключатель-резистор, а не к земле. Затем вам нужно будет прочитать как D12, так и D13 - какой из них ВЫСОКИЙ, тот и активирован, и переключатель находится в этом положении.

Затем следует простая структура "if/else" (2 позиции) или "if/elseif/else" (3 позиции по центру), чтобы решить, какой код запускать.

,

«У вас неправильная проводка переключателя для D12. Вы подключаете свои входы напрямую к земле, и это никогда не изменится, независимо от положения переключателя». Я не понимаю, как это неправильно, каждая сторона переключателя в основном похожа на кнопку, и это точно такая же проводка, как кнопка. Я согласен с «Однако вы слишком все усложняете. Переключатель SPDT — это не что иное, как две кнопки, только одна из которых может быть нажата одновременно. Если один нажат, другой должен быть отпущен». Это 2-х позиционный переключатель., @Brandy

Метод, который я впервые использовал, сработал, но как только я переведу переключатель в одно положение, он не вернется в прежнее положение (как и физически). Я думаю, может быть, есть проблема с кодом., @Brandy