Arduino для начинающих. Урок 3. Подключение потенциометра

Конструкторы для обучения детей робототехнике

Share Button

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

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

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

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

  • плата Arduino (или аналоги);
  • Breadboard;
  • 6 проводов и/или перемычек “папа-папа”;
  • светодиод;
  • потенциометр (переменный резистор);
  • резистор на 220 Ом;
  • среда Arduino IDE, которую можно скачать с сайта Arduino.
компоненты новые

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

Схема подключения модели 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 для начинающих” закончен. Продолжение следует!

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

Учебный курс «Arduino для начинающих»: главная страница.

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

  1. Первый урок: Светодиод.
  2. Второй урок: Кнопка.
  3. Третий урок: Потенциометр.
  4. Четвертый урок: Сервопривод.
  5. Пятый урок: Трехцветный светодиод.
  6. Шестой урок: Пьезоэлемент.
  7. Седьмой урок: Фоторезистор.
  8. Восьмой урок: Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail.
  9. Девятый урок: Подключение датчика температуры и влажности DHT.

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

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

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

Share Button

31 комментарий к статье “Arduino для начинающих. Урок 3. Подключение потенциометра”

  1. АНДРЕЙ

    04.05.2014

    Добрый день.
    Скажите, где я могу прочитать, что потенциометр выдает число 0-1023, а на светодиод надо подавать 0-255?
    На вашем сайте эта документация есть? Или надо гуглить в Инете?

    Ответить на этот комментарий
  2. Андрей

    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 зависит только от внутреннего сопротивления этого входа.

    Ответить на этот комментарий
  3. Александр

    13.03.2016

    Неправильно. Рассеиваемая на потенциометре мощность 5V * 800 mA = 4 Ват. Это много. Не каждый потенциометр выдержит. Будет искрить и греться.

    Существует правило: достаточно, чтобы ток через делитель в 10 раз превышал входной ток.

    Кстати, лучше брать потенциометр с линейной характеристикой – маркируется буквой «А», если отечественный и «B», если импортный. Есть еще с логарифмической и обратно — логарифмической.

    Что произойдет, если взять слишком большое сопротивление, например, несколько Мом?
    Если ползунок в крайнем верхнем (по схеме) положении, то на входе будет 5V. При небольшом сдвиге ползунка напряжение очень быстро упадет в 0 и остальная часть поворота ползунка будет нерабочей.

    Можно замерить сопротивление, при котором на входе станет 0, и взять потенциометр в 10 раз меньшим сопротивлением.

    Ответить на этот комментарий
  4. 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);

        Ответить на этот комментарий
  5. Артём

    28.06.2016

    Пишет программа,что есть проблема загрузки на плату. Как быть(

    Ответить на этот комментарий
  6. Денис

    05.07.2016

    Здравствуйте, не подскажите как подключить в эту схему пару светодиодов?

    Ответить на этот комментарий
  7. Кирилл

    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

    Ответить на этот комментарий
  8. Никита

    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);
    }

    }

    Ответить на этот комментарий
  9. Никита

    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. Никита

    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);
    }

    ]

    Ответить на этот комментарий
  11. Роман

    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.

    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    «Показать подробный вывод во время компиляции»

    Ребят, чего у меня не выходит? Копирую. На проверку не проходит. Первый урок получился, второй нет, этот тоже.

    Ответить на этот комментарий
  12. kirill

    26.12.2016

    а когда програмируешь ардуино потом программу можно стереть?

    Ответить на этот комментарий
    • ice

      03.02.2017

      нет, стереть нельзя, однако можно изменить программу. а если хочешь чтобы она ничего не делала напиши эту:
      void setup()
      {
      }
      void loop()
      {
      delay(1);
      }

      Ответить на этот комментарий
  13. Дамир

    13.01.2017

    Добрый день!
    Я подключил второй светодиод к порту 8
    Объявил переменную, объявил ту же функцию во второй раз только на выход поставил второй светодиод.
    В итоге: Первый светодиод нормально функционирует, а второй только на определенном диапазоне и ярко по сравнению с первым
    С физикой я не очень дружу, но понимаю что именно из-за нее так происходит
    Объясните пожалуйста почему так и решение если можно

    Ответить на этот комментарий
  14. 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

      Ответить на этот комментарий
  15. sgeohot

    18.03.2017

    Видимо, нет понимания, что такое потенциометр, как он работает и назначение ног. Потенциометр это тот же резистор, только с ползунком (средняя нога). Когда крутишь потенциометр, меняется сопротивление между средней и крайними ногами от 0(!!!) до номинала потенциометра. 0 Ом это короткое замыкание.
    1. Питание подается на крайние ноги, на одну 5V, на другую GND.
    2. Средняя нога — выход, подключается к аналоговому входу ардуины, например А0.
    Ты, видимо, перепутал ноги, питание подал на одну из крайних и среднюю, а выход снял со второй крайней. Тогда в одном крайнем положении на входе будет либо 0, либо 5V, в зависимости как подключил, а в другом крайнем положении будет короткое замыкание 5V на GND, дым и слезы.
    3. Купи мультиметр и многое станет проще.

    Ответить на этот комментарий
  16. Artur

    27.03.2017

    Не могу найти …Как сделать так, что бы при вращении ручки потенциометра , показания на i2c 1602 изменялись бы от 0 до 255 .?

    Ответить на этот комментарий

Оставить комментарий

© 2014-2017 Занимательная робототехника, Гагарина Д.А., Гагарин А.С., Гагарин А.А. All rights reserved / Все права защищены. Копирование и воспроизведение в любой форме запрещено. Политика кофиденциальности. Соглашение об обработке персональных данных.
Наверх