Включаем светодиод нажатием кнопки ардуино

Arduino.ru

Подключение кнопки

В этом примеры мы рассмотрим подключение кнопки к контроллеру Arduino. При нажатие кнопки мы будем зажигать встроенный светодиод. Большинство плат Arduino имеют встроенный SMT светодиод, подключенный к выходу 13 (pin 13).

Необходимые компоненты

  • контроллер Arduino
  • тактовая кнопка
  • 10кОм резистор
  • контактная макетная плата
  • соединительные провода

Подключение

Подключаем выход питания (5V) и землю (Gnd), красным и черным проводом соответственно к макетной плате. Обычно на макетных платах для питания и земли используют крайние ряды контактов, как показано на рисунке. Третьим синим проводом мы соединяем цифровой пин 2 контроллера Arduino к контакту тактовой кнопки. К этому же контакту, либо к контакту, постоянно соединенному с ней в 4х штырковом исполнении, подключаем подтягивающий резистор 10 кОм, который в свою очередь соединяем с землей. Другой выход кнопки соединяем с питанием 5 В.

Когда тактовая кнопка не нажата, выход 2 подключен только к земле через подтягивающий резистор и на этом входе будет считываться LOW. А когда кнопка нажата появляется контакт между входом 2 и питанием 5В, и считываться будет HIGH.

Замечание: Чаще всего тактовые кнопки имеют по два контакта с каждой стороны так, как это показано на рисунке подключение. При этом по форме кнопка почти квадратная. ВАЖНО не перепутать при подключении какие контакты соединены, а какие замыкаются при нажатие. Лучше всего прозвонить кнопку если не уверены.

Можно также подключить кнопку наоборот — через подтягивающий резистор к питанию и через кнопку к земле. Тогда с входа будет считваться HIGH, а при нажатие кнопки LOW.

Если вход оставить неподключенным, то на входе будет считываться HIGH или LOW случайным образом. Именно поэтому мы используем подтягивающий резистор, чтобы задать определенное значение при ненажатой кнопке.

Источник

Урок 1 — Подключение кнопки и светодиода к плате Arduino

В блоке уроков Светодиоды, Резисторы, Arduino . Мы научились управлять светодиодом с помощью платы Arduino. Но как сделать включение светодиода при нажатии кнопки?

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

Для урока нам понадобиться:

В уроке Мигаем светодиодом на Arduino мы уже рассмотрели программу и схему подключения светодиода. Добавим к ней кнопку и у нас получиться:

Скетч получится довольно простой.

Данный код практически не применим в практике, но нам для примера будет достаточно.

В данной строчке пин button сконфигурирован как вход, для дальнейшего приема на него сигнала.

Считываем цифровое значение с pin button. Если получаем 5В, это значит HIGH и 0В LOW.

Конструкция if..else предоставляет больший контроль над процессом выполнения кода, чем базовый оператор if, позволяя осуществлять несколько проверок, объединенных вместе.

Если вам что то не понятно посмотрите уроки в блоке: Светодиоды, Резисторы, Arduino

Следующий урок: Arduino управляем двумя светодиодами с помощью кнопки

Если у вас чего то нет для выполнения данного урока, Вы можете посмотреть в каталоге. Там собранные комплектующими от проверенных продавцов по самым низким ценам.

Понравилась статья? Поделитесь ею с друзьями:

Источник

● Проект 2: Обрабатываем нажатие кнопки на примере зажигания светодиода

Это эксперимент по работе с кнопкой. Мы будем включать светодиод по нажатии кнопки и выключать по отпускании кнопки. Рассмотрим понятие дребезга и программные методы его устранения.

Необходимые компоненты:

В данном эксперименте мы будем использовать контакт D2 Arduino в качестве входа. Это позволяет подключить к нему кнопку для взаимодействия с проектом в режиме реального времени. При использовании Arduino в качестве входов используют pull-up- и pulldown-резисторы, чтобы вход Arduino не находился в «подвешенном» состоянии (в этом состоянии он будет собирать внешние наводки и принимать произвольные значения), а имел заранее известное состояние (0 или 1). Резисторы pull-up подтягивают вход к питанию +5 В, pull-down-резисторы подтягивают вход к GND. Кроме этого, pull-up- и pull-down-резисторы гарантируют, что кнопка не создаст короткого замыкания между +5 В и землей при нажатии. В нашем эксперименте для подключения кнопки мы будем использовать pulldown-резистор. Схема подключения представлена на рис. 2.1.

Когда кнопка отключена, вход D2 будет подтянут к «земле» через резистор номиналом 10 кОм, который будет ограничивать поток тока, и на входном контакте будет установлено значение напряжения LOW. При нажатии на кнопку входной контакт напрямую связан с 5 В. Большая часть тока будет протекать по пути наименьшего сопротивления через замкнутую кнопку, и на входе генерируется уровень HIGH. При нажатии на кнопку включаем светодиод, при отпускании – гасим.
Код данного скетча приведен в листинге 2.1.

Порядок подключения:

1. Длинную ножку светодиода (анод) подключаем к цифровому выводу D10 Arduino, другую (катод) – через резистор 220 Ом к выводу GND (см. рис. 2.1).
2. Один вход кнопки подключаем к +5 В, другой – через резистор 10 кОм к GND, выход кнопки подключаем к входу D2 Arduino (см. рис. 2.1).
3. Загружаем в плату Arduino скетч из листинга 2.1.
4. При нажатии на кнопку светодиод должен гореть, при отпускании – затухнуть.

Усложним задачу – будем переключать состояние светодиода (включен/выключен) при каждом нажатии кнопки. Загрузим на плату Arduino скетч из листинга 2.2.

При нажатии кнопки светодиод должен изменять свое состояние. Но это будет происходить не всегда. Виной тому – дребезг кнопок.
Кнопки представляют из себя механические устройства с системой пружинного контакта. Когда вы нажимаете на кнопку вниз, сигнал не просто меняется от низкого до высокого, он в течение нескольких миллисекунд меняет значение от одного до другого, прежде чем контакты плотно соприкоснутся и установится значение HIGH.
Микроконтроллер зафиксирует все эти нажатия, потому что дребезг неотличим от настоящего нажатия на кнопку. Устранить влияние дребезга можно программно. Алгоритм следующий:

1. Cохраняем предыдущее состояние кнопки и текущее состояние кнопки (при инициализации LOW).
2. Cчитываем текущее состояние кнопки.
3. Если текущее состояние кнопки отличается от предыдущего состояния кнопки, ждем 5 мс, потому что кнопка, возможно, изменила состояние.
4. После 5 мс считываем состояние кнопки и используем его в качестве текущего состояния кнопки.
5. Если предыдущее состояние кнопки было LOW, а текущее состояние кнопки HIGH, переключаем состояние светодиода.
6. Устанавливаем предыдущее состояние кнопки для текущего состояния кнопки.
7. Возврат к шагу 2. Добавляем к нашему скетчу подпрограмму устранения дребезга.
Получаем код, показанный в листинге 2.3.

Загружаем скетч в плату Arduino и проверяем работу. Теперь все работает нормально, каждое нажатие кнопки приводит к изменению состояния светодиода.

Источник

Arduino для начинающих. Урок 2. Подключение кнопки

Продолжаем серию уроков “Arduino для начинающих”. Сегодня подключаем к ардуино кнопку и светодиод (при нажатой кнопке светодиод будет гореть, при отжатой — не гореть). Это одна из базовых схем, которая неоднократно пригодиться вам в будущем и может использоваться для управления роботом на Arduino. В вашем будущем роботе по нажатию кнопки могут происходить самые разные действия.

В посте помимо видео-инструкции приводим листинг программы и схему подключения.

Видео-инструкция сборки модели кнопки на Arduino:

Для сборки модели нам потребуется:

  • плата Arduino
  • Breadboard
  • 5 проводов и/или перемычек «папа-папа»
  • светодиод
  • кнопка
  • резисторы на 10 кОм и 220 Ом.

Что понадобится для подключения кнопки на Arduino?

Схема подключения модели Arduino с кнопкой и светодиодом:

Схема подключения кнопки и светодиода на Arduino

Также вам потребуется программа Arduino IDE, которую можно скачать с сайта Arduino.

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):
int button = 2;
int led = 8;
void setup() <
pinMode(led, OUTPUT);
pinMode(button, INPUT);
>
void loop() <
if (digitalRead(button) == HIGH) <
digitalWrite(led, HIGH);
>
else <
digitalWrite(led, LOW);
>
>

Так выглядит собранная модель Arduino кнопки со светодиодом:

Готовая модель с кнопкой и светодиодом на Arduino

На этом второй урок «Arduino для начинающих» закончен. Продолжение следует!

Смотрите также:

Посты по урокам:

Все посты сайта «Занимательная робототехника» по тегу Arduino.

Наш YouTube канал, где публикуются видео-уроки.

Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазины Амперка и DESSY. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.

Автор: Александр Гагарин

Читайте также

50 комментариев к статье “Arduino для начинающих. Урок 2. Подключение кнопки”

Мне очень понравилось с фоторезистором. А сделайте пожалуйста навесным монтажом.

С +5V провод идет на кнопку и через резистор на землю? Это же почти к.з.?

Резистор на 10 ком достаточно ограничивает ток.

Добрый день!
Подскажите пожалуйста уже 100500 раз собирал эту схему у вас в видео светодиод не горит, а после нажатия кнопки горит, у меня он горит всегда только после нажатия кнопки он горит чуть ярче. в чем может быть дело?

Добрый день. Если просто соединить выводы кнопки через резистор с пином контроллера и землей, то это не работает. При нажатии кнопки пин соединяется с землей, и digitalRead будет считывать логический 0, но при отпущенной кнопке пин не будет соединен ни с какой линией и будет «висить в воздухе», и программа будет считать с вывода и 0 и 1 случайным образом. Правильное подключение предполагает, что в разомкнутом состоянии пин должен быть соединен через резистор с шиной питания, а в замкнутом — с землей, либо наоборот. Попробуйте и так, и так.
Внутри микроконтроллера есть подтягивающие резисторы. Но они могут быть программно включены или выключены. Попробуйте включить и выключить подтягивающие резисторы программно.
После того, как пин установлен в режим входа, чтобы включить на нем подтягивающий резистор нужно «записать в него 1» с помощью digitalWrite.

void setup() <
pinMode(8, OUTPUT);
pinMode(2, INPUT);
digitalWrite(2, HIGH); //включаем подтягивающий резистор
>
void loop() <
digitalWrite(8, !digitalRead(2));
>

int LED=0;
void setup() <
pinMode(13, OUTPUT);
pinMode(5, INPUT_PULLUP);
Serial.begin(9600);
>

Была такая же проблема, долго не понимала в чем дело.
Оказалось, просто не до конца воткнула кнопку :)

Что нужно изменить в вашем коде, чтобы было так :
нажал на кнопку один раз — лампочка включилась,
нажал второй раз — выключилась… и так далее.. ?

Есть множество вариантов решения данной задачи. Например такой:

const int buttonPin = 2;
const int ledPin = 13;

void setup() <
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
>

void loop() <
digitalRead(buttonPin);
while(!digitalRead(buttonPin))<>
digitalWrite(ledPin, HIGH);
while(digitalRead(buttonPin))<>
while(!digitalRead(buttonPin))<>
digitalWrite(ledPin, LOW);
while(digitalRead(buttonPin))<>

Здравствуйте, можно ли void loop() построчно комментарий?

void loop() <
digitalRead(buttonPin); //считываем значение с кнопки
while(!digitalRead(buttonPin))<> //пока кнопка не нажата ждем
digitalWrite(ledPin, HIGH); //включаем светодиод
while(digitalRead(buttonPin))<> //пока кнопка еще нажата ждем
while(!digitalRead(buttonPin))<>//пока кнопка не нажата ждем
digitalWrite(ledPin, LOW); //выключаем светодиод
while(digitalRead(buttonPin))<> //пока кнопка еще нажата ждем
>
То есть: ждем нажатия кнопки и включаем светодиод, затем ждем отжатия кнопки и повторного нажатия, выключаем светодиод, ждем отжатия кнопки.

ошибки выдаёт с воид лупом чёта

Подскажите что может быть, заюзал ваш код для кноки, все вроде работает но на 5-6 нажатия когда светодиод должен выключаться он горит, или должен гореть — выключаеться. В общем не 100% получаеться связь между кнопкой и светодиодом. Иногда проскакивает

или можно запустить образец из digital -> debounce
он делает то же самое

Здравствуйте подскажите что нужно добавить в скейч что б алгоритм работы был таков: 2 кнопки Одно нажатие на кнопку 1 светодиод загорается горит 5 сек и затухает,если нажать на вторую то светик сразу гаснет??

/*
intledPin = 12;
int buttonApin = 8;
int buttonBpin = 7;
byte leds = 0;
void setup()
<
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
>
Void loop()
<
if (digitalRead(buttonApin) == LOW)
<
digitalWrite(ledPin, HIGH);
delay(5000);
digitalWrite(12, LOW);
>
if (digitalRead(buttonBpin) == LOW)
<
digitalWrite(ledPin, LOW);
>
>

Ваш скетч не работает, потому что программа выполняет delay(5000), в этот момент ничего больше выполняться не может.
Можно использовать функцию millis(), возвращающую, сколько миллисекунд прошло с начала работы программы.

int ledPin = 12;
int buttonApin = 8;
int buttonBpin = 7;
void setup()
<
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
>
void loop()
<
unsigned long currentMillis = 0;
if (digitalRead(buttonApin) == LOW)
<
digitalWrite(ledPin, HIGH);
currentMillis = millis();
>
if (digitalRead(buttonBpin) == LOW || millis()-currentMillis>5000)
<
digitalWrite(ledPin, LOW);
>
>

Спасибо что так быстро ответили но что то не получается( Выдает ошибку!

В синтаксисе ошибки нет. Распишите ситуацию подробнее. Какая ошибка выдается?

Помогите пожалуйста. 100 раз все проверил — светодиод не загорается. Такое ощущение, что не идет питание 5V с платы. Как можно просто диагностировать эту неисправность?

Во-первых, нужно убедиться, что пины правильные. Далее, лучше всего проверить мультиметром.
Еще для простоты можно светодиод воткнуть напрямую к 5в и земле. Если будет гореть (может и взорвется), то питание идет и проблема в подключении.
Чтобы проверить подключение собственно кнопки можно загрузить код
int pushButton = 2;

void setup() <
Serial.begin(9600);
pinMode(pushButton, INPUT);
>

void loop() <
int buttonState = digitalRead(pushButton);
Serial.println(buttonState);
delay(100);
>

И зайти в монитор порта. Если выдает при нажатии 1, то кнопка работает.

Почему не удаётся плавно запустить светодиод?

//Свет плавно загорается после нажатия кнопки, кнопка нажимается ещё раз, свет моргает и гаснет.
int button = 2;
int led = 9;
int i = 0;

void loop() <
digitalRead(button); //считываем значение с кнопки
while(!digitalRead(button))<> //пока кнопка не нажата ждем
do <
analogWrite(led, i);
i = i+1;
>
while(i==255);//включаем светодиод плавно
digitalWrite(led, HIGH); //включаем светодиод
while(digitalRead(button))<> //пока кнопка еще нажата ждем
while(!digitalRead(button))<>//пока кнопка не нажата ждем
digitalWrite(led, LOW);//моргаем несколько раз
delay(100);
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW); //выключаем светодиод
while(digitalRead(button))<> //пока кнопка еще нажата ждем
>

Во-первых, неправильный цикл (http://arduino.ru/Reference/DoWhile), во-вторых, после каждого увеличения i нудно поставить delay

Благодарю, Денис! Сейчас въехал, у меня проверка условия была не верна. Сделал вот так, сейчас всё красиво.
//Свет плавно загорается после нажатия кнопки, кнопка нажимается ещё раз, свет моргает и гаснет.
int button = 2;
int led = 9;
int i = 0;

void loop() <
digitalRead(button); //считываем значение с кнопки
while(!digitalRead(button))<> //пока кнопка не нажата ждем
do
<
analogWrite(led, i);
i = i+1;
delay(10);
> while(i Ответить на этот комментарий

Объясните пожалуйста неучу=) кнопка соединена с с +5v и с землей через резистор. Зачем вообще нужно соединять с землей кнопку? Может я что то недопонимаю в принципе работы кнопки?

Когда кнопка разомкнута, то если не было бы резистора, то на вход могли бы поступать хаотичные сигналы вместо ожидаемого нами отсутствия напряжения. Можно встретить терминологию «оставить вход в «подвешенном» состоянии». Причина — шумы, образующиеся вокруг провода производят электричество из электромагнитных волн среды.
Стягивающий резистор рядом со входом гарантирует отсутствие напряжения при разомкнутой цепи (кнопка не нажата — цепь разомкнута).

Подтягивающий резистор всегда ставится к +5в а тут наоборот . Почему? Почему не используется внутренний подтягивающий резистор?

Здравствуйте.Как можно проделать этот алгоритм .По кнопке меняется режим скорости переключения диодов (5с 2c 1c 0.5c)

Подскажите как создать светильник из ARDUINO UNO У меня набор «Матрёшка» НО он выводит ОЩИБКЮ. когда вожу код

Скажите пожалуйста, насколько я понимаю, перед записью нового кода, нужно удалить старый с памяти платы. Как это сделать?

Нет, не верно. Просто загружаете новый скетч с помощью Arduino IDE

помогите пожалуйста
нужно чтобы при зажатии кнопка тоесть нажал и не отпускаеш
загорелся светодиод и проигрался на mini MP3 1 трек и мр3 выключился а светодиод продолжал гореть если отпустить кнопку то все должно выключится
у меня просто получается что Mp3 гоняет один трек по кругу и я не совсем понимаю как мр3 должен выйти из цикла

#include
#include
int switchPin = 9;
int ledPin = 7;

void setup()
<
Serial.begin (9600);
mp3_set_serial (Serial);
mp3_set_volume (5);
delay (100);
pinMode (switchPin, INPUT);
pinMode (ledPin, OUTPUT);
>

if (digitalRead(switchPin) == HIGH)
<
digitalWrite(ledPin, HIGH);

>
else
<
digitalWrite(ledPin, LOW);

>
if (digitalRead(switchPin) == HIGH)
<
delay(500);
mp3_play(1);
delay(5000);
mp3_stop();

Т.е. проблема в том, что если кнопка зажата то мп3 должен проиграть мелодию и после этого остановиться, а сейчас при зажатии трек повторяется?

как мне выйти из цикла только для mp3 не совсем понимаю

very very veryveryvery GOOD!
пРЕКРАСНО

Почему то малое напряжение если подключать на одну нагрузку несколько управляющих кнопок, светодиод включается но напряжение 1,3 вольта.

int led_1 = 2;
int led_2 = 3;
int led_3 = 4;
int led_4 = 5;

int button_1 = 6;
int button_2 = 7;
int button_3 = 8;
int button_4 = 9;

int button_5 = 10;
int button_6 = 11;
int button_7 = 12;
int button_8 = 13;

int button_9 = A0;
int button_10 = A1;
int button_11 = A2;
int button_12 = A3;

int button_13 = A4;
int button_14 = A5;

void setup()
<
Serial.begin(9600);
Serial.println();

pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(led_3, OUTPUT);
pinMode(led_4, OUTPUT);

pinMode(button_1, INPUT);
pinMode(button_2, INPUT);
pinMode(button_3, INPUT);
pinMode(button_4, INPUT);

pinMode(button_5, INPUT);
pinMode(button_6, INPUT);
pinMode(button_7, INPUT);
pinMode(button_8, INPUT);

pinMode(button_9, INPUT);
pinMode(button_10, INPUT);
pinMode(button_11, INPUT);
pinMode(button_12, INPUT);

pinMode(button_13, INPUT);
pinMode(button_14, INPUT);

if (digitalRead(button_1) == HIGH)
<
digitalWrite(led_1,HIGH);
>
else
<
digitalWrite(led_1,LOW);
>

if (digitalRead(button_2) == HIGH)
<
digitalWrite(led_2,HIGH);
>
else
<
digitalWrite(led_2,LOW);
>

if (digitalRead(button_3) == HIGH)
<
digitalWrite(led_3,HIGH);
>
else
<
digitalWrite(led_3,LOW);
>

if (digitalRead(button_5) == HIGH)
<
digitalWrite(led_1,HIGH);
>
else
<
digitalWrite(led_1,LOW);
>

if (digitalRead(button_6) == HIGH)
<
digitalWrite(led_2,HIGH);
>
else
<
digitalWrite(led_2,LOW);
>

if (digitalRead (button_7) == HIGH)
<
digitalWrite(led_3,HIGH);
>
else
<
digitalWrite(led_3,LOW);
>

if (digitalRead (button_9) == HIGH)
<
digitalWrite(led_1,HIGH);
>
else
<
digitalWrite(led_1,LOW);
>

if (digitalRead (button_10) == HIGH)
<
digitalWrite(led_2,HIGH);
>
else
<
digitalWrite(led_2,LOW);
>

if (digitalRead (button_11) == HIGH)
<
digitalWrite(led_3,HIGH);
>
else
<
digitalWrite(led_3,LOW);
>

if (digitalRead (button_13) == HIGH)
<
digitalWrite(led_1,HIGH);
>
else
<
digitalWrite(led_1,LOW);
>

if (digitalRead (button_14) == HIGH)
<
digitalWrite(led_3,HIGH);
>
else
<
digitalWrite(led_3,LOW);
>

Подскажите мне не грамотному, как в уроке № 2, где собирают кнопку+диод, как модифицировать схему, чтобы нажимаешь на кнопку и диод продолжает гореть, еще раз нажимаешь диод гаснет. В исходном решении нажимаешь — горит, отпускаешь гаснет. Спасибо

Посмотри уроки Джереми Блюма. На ютубе есть с нормальным переводом от Амперки

Помогите пожалуйста моя идея работы скетча такая : один раз нажмешь на кнопку и все 6 светодиодов приемом бегущего огонька работают все время пока не нажмешь второй раз кнопку. Если второй раз нажать на кнопку то они перестают работать.

Такая же проблема, один в один. Никак не могу понять как комбинировать несколько кодов вместе. По отдельности все работает, а как объединить кнопку и бегущую строку не понимаю.

У меня также.Я не знаю как соединить все вместе.

Подскажите пожалуйста как добавить кнопку чтобы отключались 6 ть каналов шим ? Вот мой код :
[code]
int buttonPin = 7;
int ledPin = 9;
int potPin = A0;
int led1Pin =3; // Светодиод подключен к выходу 3
int led2Pin =5; // Светодиод подключен к выходу 5
int led3Pin =6; // Светодиод подключен к выходу 6
int led4Pin =9; // Светодиод подключен к выходу 9
int led5Pin =10; // Светодиод подключен к выходу 10
int led6Pin =11; // Светодиод подключен к выходу 11

int analog1Pin = 3; // потенциометр подключен к выходу 3
int analog2Pin = 3; // потенциометр подключен к выходу 3
int analog3Pin = 3; // потенциометр подключен к выходу 3
int analog4Pin = 3; // потенциометр подключен к выходу 3
int analog5Pin = 3; // потенциометр подключен к выходу 3
int analog6Pin = 3; // потенциометр подключен к выходу 3

int val1 = 0; // переменная для хранения значения
int val2 = 0; // переменная для хранения значения
int val3 = 0; // переменная для хранения значения
int val4 = 0; // переменная для хранения значения
int val5 = 0; // переменная для хранения значения
int val6 = 0; // переменная для хранения значения
void setup()
<
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(led1Pin, OUTPUT); // установка порта на выход
pinMode(led2Pin, OUTPUT); // установка порта на выход
pinMode(led3Pin, OUTPUT); // установка порта на выход
pinMode(led4Pin, OUTPUT); // установка порта на выход
pinMode(led5Pin, OUTPUT); // установка порта на выход
pinMode(led6Pin, OUTPUT); // установка порта на выход
>

void loop()
<
val1 = analogRead(analog1Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led1Pin, val1 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val2 = analogRead(analog2Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led2Pin, val2 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val3 = analogRead(analog3Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led3Pin, val3 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val4 = analogRead(analog4Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led4Pin, val4 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val5 = analogRead(analog5Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led5Pin, val5 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val6 = analogRead(analog6Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led6Pin, val6 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
>

Подскажите пожалуйста как добавить кнопку чтобы при однократном нажатии отключало 6 ть каналов шим одновременно а при повторном — включало? Вот мой код :
[code]
int buttonPin = 7;
int ledPin = 9;
int potPin = A0;
int led1Pin =3; // Светодиод подключен к выходу 3
int led2Pin =5; // Светодиод подключен к выходу 5
int led3Pin =6; // Светодиод подключен к выходу 6
int led4Pin =9; // Светодиод подключен к выходу 9
int led5Pin =10; // Светодиод подключен к выходу 10
int led6Pin =11; // Светодиод подключен к выходу 11

int analog1Pin = 3; // потенциометр подключен к выходу 3
int analog2Pin = 3; // потенциометр подключен к выходу 3
int analog3Pin = 3; // потенциометр подключен к выходу 3
int analog4Pin = 3; // потенциометр подключен к выходу 3
int analog5Pin = 3; // потенциометр подключен к выходу 3
int analog6Pin = 3; // потенциометр подключен к выходу 3

int val1 = 0; // переменная для хранения значения
int val2 = 0; // переменная для хранения значения
int val3 = 0; // переменная для хранения значения
int val4 = 0; // переменная для хранения значения
int val5 = 0; // переменная для хранения значения
int val6 = 0; // переменная для хранения значения
void setup()
<
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(led1Pin, OUTPUT); // установка порта на выход
pinMode(led2Pin, OUTPUT); // установка порта на выход
pinMode(led3Pin, OUTPUT); // установка порта на выход
pinMode(led4Pin, OUTPUT); // установка порта на выход
pinMode(led5Pin, OUTPUT); // установка порта на выход
pinMode(led6Pin, OUTPUT); // установка порта на выход
>

void loop()
<
val1 = analogRead(analog1Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led1Pin, val1 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val2 = analogRead(analog2Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led2Pin, val2 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val3 = analogRead(analog3Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led3Pin, val3 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val4 = analogRead(analog4Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led4Pin, val4 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val5 = analogRead(analog5Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led5Pin, val5 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
val6 = analogRead(analog6Pin); // считываем значение с порта, подключенному к потенциометру
analogWrite(led6Pin, val6 / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
>

Источник

Adblock
detector