Arduino для начинающих. Урок 3. Подключение потенциометра
Продолжаем серию уроков “Arduino для начинающих”. На предыдущих уроках мы познакомились с простейшими схемами — сборкой мигающего светодиода и светодиода, загорающегося по нажатию кнопки. Сегодня собираем модель с потенциометром (переменным резистором) и светодиодом. Такая модель может использоваться для управления роботом.
Потенциометр — это переменный резистор с регулируемым сопротивлением. Потенциометры используются в робототехнике как регуляторы различных параметров — громкости звука, мощности, напряжения и т.п. В нашей модели от поворота ручки потенциометра будет зависеть яркость светодиода . Это также одна из базовых схем.
Видео-инструкция сборки модели:
Для сборки модели нам потребуется:
- плата Arduino (или аналоги);
- Breadboard;
- 6 проводов и/или перемычек “папа-папа”;
- светодиод;
- потенциометр (переменный резистор);
- резистор на 220 Ом;
- среда Arduino IDE, которую можно скачать с сайта Arduino.
Схема подключения модели Arduino с потенциометром и светодиодом:
Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):
// даём имена пинов со светодиодом
// и потенциометром
#define led 9
#define pot A0
void setup()
{
// пин со светодиодом — выход
pinMode(led, OUTPUT);
// пин с потенциометром - вход
pinMode(pot, INPUT);
}
void loop()
{
// объявляем переменную x
int x;
// считываем напряжение с потенциометра:
// будет получено число от 0 до 1023
// делим его на 4, получится число в диапозоне
// 0-255 (дробная часть будет отброшена)
x = analogRead(pot) / 4;
// выдаём результат на светодиод
analogWrite(led, x);
}
Так выглядит собранная модель Arduino потенциометра со светодиодом:
На этом третий урок “Arduino для начинающих” закончен. Продолжение следует!
Смотрите также:
Учебный курс «Arduino для начинающих»: главная страница.
Посты по урокам:
- Первый урок: Светодиод.
- Второй урок: Кнопка.
- Третий урок: Потенциометр.
- Четвертый урок: Сервопривод.
- Пятый урок: Трехцветный светодиод.
- Шестой урок: Пьезоэлемент.
- Седьмой урок: Фоторезистор.
- Восьмой урок: Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail.
- Девятый урок: Подключение датчика температуры и влажности DHT.
Все посты сайта «Занимательная робототехника» по тегу Arduino.
Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазины Амперка и DESSY. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.
Автор: Александр Гагарин.
АНДРЕЙ
04.05.2014
Добрый день.
Скажите, где я могу прочитать, что потенциометр выдает число 0-1023, а на светодиод надо подавать 0-255?
На вашем сайте эта документация есть? Или надо гуглить в Инете?
Aleksandr
05.05.2014
http://arduino.cc/en/Reference/analogWrite http://arduino.cc/en/Reference/analogRead
Описание используемых функций на официальном сайте ардуино. На входе считывается напряжение от 0 до 5 вольт — соответствует 0 — 1023, на выход ШИМ идёт от 0 — постоянно выключен до 255 — постоянно включён
Андрей
27.12.2014
Подскажите пожалуйста, какой потенциометр подойдет для этого урока.
С одной стороны, шина 5V в UNO может выдать 800 mA и тогда сопротивление должно быть не меньше чем R=U/I=5/0,8=6,25 Ом.
Но с другой стороны все пины ввода/вывода рассчитаны на ток до 40 мА и тогда R=U/I=5/0,04=125 Ом.
Мы склоняемся к 6,25 (хотя понимаем, что Ардуинка будет работать на пределе и это экстрим). Аргумент в пользу последнего: потенциометр — делитель напряжения, а не тока и с него будет сниматься от 5 до 0 V, а ток, который бежит через потенциометр на ток который пойдет на вход А0 не имеет воздействия. И ток, который пойдёт на вход А0 зависит только от внутреннего сопротивления этого входа.
Сергей
17.12.2015
Ну ты приколося чувак)))))
афтор реально потух от такого вопроса)))))))))))))))))
Денис
17.12.2015
Обычно 10Ком ставят
Александр
13.03.2016
Неправильно. Рассеиваемая на потенциометре мощность 5V * 800 mA = 4 Ват. Это много. Не каждый потенциометр выдержит. Будет искрить и греться.
Существует правило: достаточно, чтобы ток через делитель в 10 раз превышал входной ток.
Кстати, лучше брать потенциометр с линейной характеристикой – маркируется буквой «А», если отечественный и «B», если импортный. Есть еще с логарифмической и обратно — логарифмической.
Что произойдет, если взять слишком большое сопротивление, например, несколько Мом?
Если ползунок в крайнем верхнем (по схеме) положении, то на входе будет 5V. При небольшом сдвиге ползунка напряжение очень быстро упадет в 0 и остальная часть поворота ползунка будет нерабочей.
Можно замерить сопротивление, при котором на входе станет 0, и взять потенциометр в 10 раз меньшим сопротивлением.
stikoff
20.04.2016
а как собрать схему чтоб светодиод мигал, а скорость мигания задавалась потенциометром?
diamoff
28.04.2016
Тут тогда придется использовать функцию delay. Типа так:
int x;
x = analogRead(port) * 4; // 4 это минимальная задержка в микросекундах
delay(x);
analogWrite(led, HIGH); //максимально ярко
delay(x);
Иван
26.05.2016
А гасить Пушкин будет
int x = analogRead(port) * 4; // 4 это минимальная задержка в микросекундах
delay(x);
analogWrite(led, HIGH); //максимально ярко
delay(x);
analogWrite(led, LOW);
digitalWrite
13.06.2020
digitalWrite
Артём
28.06.2016
Пишет программа,что есть проблема загрузки на плату. Как быть(
Занимательная робототехника
28.06.2016
Добрый день,
Пришлите подробную информацию об ошибке.
ice
03.02.2017
у меня тоже такая штука была, но она решается. надо просто переустановить ардуино IDE
Денис
05.07.2016
Здравствуйте, не подскажите как подключить в эту схему пару светодиодов?
Кирилл
13.07.2016
Здравствуйте. Никак не могу понять, почему вы подключили потенциометр именно так. Ведь если расположить его ножками к себе как у вас на схеме, то левая нога должна идти на землю, правая — на 5 вольт, средняя — на аналоговый вход. Я просмотрел пару сайтов о подключении потенциометра, там всё написано так, как сказал я. Вот ссылки:
http://arduino-diy.com/arduino-potentsiometr-peremennyy-rezistor
http://ru.wikihow.com/%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D1%82%D0%B5%D0%BD%D1%86%D0%B8%D0%BE%D0%BC%D0%B5%D1%82%D1%80
Никита
10.08.2016
У меня идея, что от положения потенциометра будет светить один или другой цвет радуги (понадобится rgb светодиод). Скетч ниже:
#define r 10
#define g 11
#define b 12
#define pot A0
void setup()
{
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
pinMode(pot, INPUT);
}
void loop()
{
int x;
x = analogRead(pot);
if (x >= 0 && x = 146 && x = 292 && x = 438 && x = 584 && x = 730 && x <= 875)
{
analogWrite(b, 255);
}
else
{
analogWrite(r, 255);
analogWrite(b, 255);
}
}
Никита
10.08.2016
неправильно скопировалось
Никита
10.08.2016
#define r 10
#define g 11
#define b 12
#define pot A0
void setup()
{
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
pinMode(pot, INPUT);
}
void loop()
{
int x;
x = analogRead(pot);
if (x >= 0 && x = 146 && x = 292 && x = 438 && x = 584 && x = 730 && x <= 875)
{
analogWrite(b, 255);
}
else
{
analogWrite(r, 255);
analogWrite(b, 255);
}
}
Никита
10.08.2016
опять неправильно :(. В общем, вы меня поняли.
Никита
10.08.2016
#define r 10
#define g 11
#define b 12
#define pot A0
void setup ()
pinMode (r, OUTPUT);
pinMode (g, OUTPUT);
pinMode (b, OUTPUT);
pinMode (pot, INPUT);
void loop ()
int x;
x = analogRead(pot);
if (x >= 0 && x =146 && x = 292 && x = 438 && x = 584 && x = 730 && x <= 875)
{
digitalWrite (b, HIGH);
}
else
{
digitalWrite (r, HIGH);
digitalWrite (b, HIGH);
}
]
Роман
20.09.2016
Arduino: 1.6.11 (Windows XP), Плата:»Arduino/Genuino Uno»
collect2.exe: error: ld returned 5 exit status
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Ребят, чего у меня не выходит? Копирую. На проверку не проходит. Первый урок получился, второй нет, этот тоже.
Занимательная робототехника
21.09.2016
Ошибка при компиляции под Windows XP связана с конфликтом новой версии файла ld.exe, находящегося по адресу c:\Program Files (x86)\Arduino\hardware\tools\avr\avr\bin\
Лечится установкой более старой версии Arduino IDE или заменой только одного файла ld.exe на более старую версию (скачать из архива ZIP file for non admin install )
Роман
21.09.2016
Спасибо. Со скрипом двигаюсь дальше.
ice
03.02.2017
а как файл полностью называется? avr-ld.exe верно?
kirill
26.12.2016
а когда програмируешь ардуино потом программу можно стереть?
ice
03.02.2017
нет, стереть нельзя, однако можно изменить программу. а если хочешь чтобы она ничего не делала напиши эту:
void setup()
{
}
void loop()
{
delay(1);
}
Дамир
13.01.2017
Добрый день!
Я подключил второй светодиод к порту 8
Объявил переменную, объявил ту же функцию во второй раз только на выход поставил второй светодиод.
В итоге: Первый светодиод нормально функционирует, а второй только на определенном диапазоне и ярко по сравнению с первым
С физикой я не очень дружу, но понимаю что именно из-за нее так происходит
Объясните пожалуйста почему так и решение если можно
mpw
18.03.2017
Что-то пошло не так.
Поиграл я на Arduino Nano с потенциометром.
При открытом состоянии всё хорошо показывает, но как только закрыл до нуля — дым пошел из ардуинки(( Что не так?
sgeohot
18.03.2017
Видимо, нет понимания, что такое потенциометр, как он работает и назначение ног. Потенциометр это тот же резистор, только с ползунком (средняя нога). Когда крутишь потенциометр, меняется сопротивление между средней и крайними ногами от 0(!!!) до номинала потенциометра. 0 Ом это короткое замыкание.
1. Питание подается на крайние ноги, на одну 5V, на другую GND.
2. Средняя нога — выход, подключается к аналоговому входу ардуины, например А0.
Ты, видимо, перепутал ноги, питание подал на одну из крайних и среднюю, а выход снял со второй крайней. Тогда в одном крайнем положении на входе будет либо 0, либо 5V, в зависимости как подключил, а в другом крайнем положении будет короткое замыкание 5V на GND, дым и слезы.
3. Купи мультиметр и многое станет проще.
sgeohot
18.03.2017
12
sgeohot
18.03.2017
Видимо, нет понимания, что такое потенциометр, как он работает и назначение ног. Потенциометр это тот же резистор, только с ползунком (средняя нога). Когда крутишь потенциометр, меняется сопротивление между средней и крайними ногами от 0(!!!) до номинала потенциометра. 0 Ом это короткое замыкание.
1. Питание подается на крайние ноги, на одну 5V, на другую GND.
2. Средняя нога — выход, подключается к аналоговому входу ардуины, например А0.
Ты, видимо, перепутал ноги, питание подал на одну из крайних и среднюю, а выход снял со второй крайней. Тогда в одном крайнем положении на входе будет либо 0, либо 5V, в зависимости как подключил, а в другом крайнем положении будет короткое замыкание 5V на GND, дым и слезы.
3. Купи мультиметр и многое станет проще.
Artur
27.03.2017
Не могу найти …Как сделать так, что бы при вращении ручки потенциометра , показания на i2c 1602 изменялись бы от 0 до 255 .?
TUIT
11.10.2017
Не могу совместить потенциометр пейзо и лед.Как сделать?
Арсений
31.12.2018
Всё получилось! только следуя 1 схеме. Нуууу я её немного переделал так как потенциометр у меня такой же как и на фотке автора…. Вот.