Arcade PUB
  • Главная
  • Уроки
  • Датчики
  • Проекты
  • Справочник языка Ардуино
  • Справочник
  • Видео
  • Контакты
  • Поддержать
Датчики  /  5 марта, 2020

Подключение потенциометра. Датчики. Ардуино

by valentino
Подключение потенциометров к ардуино
Подключение потенциометров к ардуино

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

Потенциометр — это резистор с переменным сопротивлением. Обычно сопротивление регулируется в ручном режиме. Но существуют и программируемые цифровые потенциометры.

Содержание

  • 1 analogRead()
  • 2 Программа
  • 3 Map()
  • 4 Сonstrain()
  • 5 Полный текст программы
  • 6 Заключение
  • 7 Похожее

В предыдущем уроке мы рассматривали возможность вывода информации в последовательный порт. Сейчас мы будем использовать эти возможности ардуино. Так что, если вы уже забыли, или пропустили тот пост, пожалуйста, посмотрите его.

Последовательный порт. Урок 5. Ардуино

Итак, план на сегодня такой. Подключим к ардуино несколько разных потенциометров. Измерим сопротивление на каждом из них. Выведем полученные данные в последовательный порт. И настроим яркость светодиода с помощью ШИМ и данных с потенциометра.

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

  • Ардуино UNO
  • Макетная плата
  • Перемычки
  • Потенциометры разного сопротивления
  • Светодиод 5 мм
  • Резистор номиналом 220 Ом
  • Кабель USB

Потенциометры действуют как регулируемые делители напряжения. Они могут быть разных размеров и форм, но всегда имеют три вывода.

Подключаем один крайний вывод потенциометра к земле, а другой к шине 5 В. Потенциометры симметричны, так что не имеет значения, с какой стороны вы подключите шину питания, а с какой землю. Средний вывод соединяем с одним из аналоговых контактов на плате ардуино.

Принципиальная схема подключения потенциометров
Принципиальная схема подключения потенциометров

При повороте ручки потенциометра аналоговый входной сигнал будет плавно меняться от 0 до 5 В.

analogRead()

Для того, чтобы считать сигнал от датчика в программу, нам понадобится функция analogRead(). Она принимает номер порта в качестве аргумента. А пины, которые можно использовать для аналогового входа помечены на плате ардуино как ANALOG IN.

Напряжение  поданное на аналоговый вход, обычно от 0 до 5 вольт будет преобразовано в значение от 0 до 1023, это 1024 шага с разрешением 0.0049 Вольт. Разброс напряжение и шаг может быть изменен функцией analogReference().

Считывание значение с аналогового входа занимает около 100 микросекунд (0.0001 сек), Значит, максимальная частота считывания приблизительно 10,000 раз в секунду.

Программа

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

Откроем программу AnalogInOutSerial из меню File — Examples — Analog. Добавим константу и переменную для подключения потенциометра и получаемого значения от него.

const int analogInPin1 = A0;
const int analogInPin2 = A1;
const int analogOutPin = 9;
int sensorValue1 = 0;
int sensorValue2 = 0;
int outputValue = 0;

В функции setup() откроем последовательный порт. А в функции loop() добавим считывание сигнала со второго подключенного потенциометра.

void loop() {
  // read the analog in value:
  sensorValue1 = analogRead(analogInPin1);
  sensorValue2 = analogRead(analogInPin2);

Map()

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

Данные с потенциометра будут приходить от 0 до 1023, а на светодиод мы может подать напряжение от 0 до 255. Такое преобразование просто сделать с помощью функции map().

Она пропорционально переносит значение из текущего диапазона значений в новый диапазон. Например,

outputValue = map( (sensorValue1+sensorValue2)/2 , 0, 1023, 0, 255);

В данном случае, среднее значение с двух подключенных потенциометров мы получаем в диапазоне от 0 до 1023. Но преобразуем в новый диапазон от 0 до 255. Который уже можно вывести на светодиод через ШИМ.

Сonstrain()

Так же можно использовать функцию constrain(). Она принимает три параметра и выводит значения границ диапазона, если проверяемое значение выходит за границы этого диапазона. Например,

sensVal = constrain(0, 5, 150); // 5
sensVal = constrain(200, 5, 150); // 150
sensVal = constrain(95, 5, 150); // 95

// ограничиваем значения sensVal диапазоном от 5 до 150
Управляем яркостью светодиода двумя потенциометрами
Управляем яркостью светодиода двумя потенциометрами

Полный текст программы

// These constants won't change. They're used to give names to the pins used:
const int analogInPin1 = A0;  // Analog input pin that the potentiometer is attached to
const int analogInPin2 = A1;
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue1 = 0;        // value read from the pot
int sensorValue2 = 0;

int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // read the analog in value:
  sensorValue1 = analogRead(analogInPin1);
  sensorValue2 = analogRead(analogInPin2);
  // map it to the range of the analog out:
  outputValue = map( (sensorValue1+sensorValue2)/2 , 0, 1023, 0, 255);
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);

  // print the results to the Serial Monitor:
  Serial.print("sensor1 = ");
  Serial.print(sensorValue1);
  
  Serial.print("\t sensor2 = ");
  Serial.print(sensorValue2);
  
  Serial.print("\t output = ");
  Serial.println(outputValue);

  // wait 2 milliseconds before the next loop for the analog-to-digital
  // converter to settle after the last reading:
  delay(2);
}

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

Данные от потенциометров в последовательном порте
Данные от потенциометров в последовательном порте

Заключение

Сегодня мы рассмотрели подключение потенциометра к ардуино. Использовали еще одну стандартную программу из библиотеки ide. И разобрали две новые функции map() и constrain(), которые помогут нам в работе со всеми датчиками и ардуино. В следующий раз рассмотрим датчик измерения расстояния.

Похожее

Tags

  • Основное

Навигация по записям

Последовательный порт. Урок 5. Ардуино
Cервопривод. Датчики. Ардуино

Share your thoughts Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Новое видео на канале

https://youtu.be/bvzX-edTdS0

Свежие записи

  • OLED дисплей. Урок 21. Ардуино
  • Много кнопок на одном пине. Урок 20. Ардуино
  • Как управлять Ардуино ДУ пультом. Проекты. Ардуино
  • ИК приемник KY-022. Датчики. Ардуино
  • Фоторезистор KY-018. Датчики. Ардуино

Метки

  • Bluetooth
  • RGB Светодиоды
  • WIFI
  • Двигатели
  • Звук
  • Игры
  • Интернет вещей
  • Лего
  • Основное
  • Программирование
  • Уроки

Купить стартовый набор Ардуино UNO на Aliexpress

Стартовый набор Ардуино Уно

Купить набор датчиков для Ардуино 45 штук на Aliexpress

набор датчиков для Ардуино

arcadepub

How to use oled display with #arduino it's pretty How to use oled display with #arduino it's pretty easy. #arcadepub #ардуино #ардуинопроект #arduinoproject #arduinouno
Hi there! How to control button debounce without c Hi there! How to control button debounce without code. Lets see.

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #arduinoproject
Hello there! Let's write a program to control ard Hello there!  Let's write a program to control arduino by ir.

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #arduinoproject
Hey! How are you doing? How do you think, we can c Hey! How are you doing? How do you think, we can control arduino program by ir? I bet we can. 

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #arduinoproject
Hello! There is a second video on my youtube chann Hello! There is a second video on my youtube channel. I've just added subtitles, so you can see how to use if and else structures and for() loop in arduino program. Enjoy, and do NOT forget to subscribe. 
https://youtu.be/8AHfAQyNAqU

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #youtube
Hi there! How is it going? Photo resistor and lase Hi there! How is it going? Photo resistor and laser are here. Look at graphics and try to understand how it works!

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #arduinoproject
Here is ky-039 heart beat arduino module. Do you l Here is ky-039 heart beat arduino module. Do you like it? Write in the comments below!

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #arduinoproject
Its Magic lights with ky-027 arduino module. Do yo Its Magic lights with ky-027 arduino module. Do you like it?  Write in the comments below!

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #arduinoproject
Arduino and #laser are together. Please subscribe Arduino and #laser are together.

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #arduinoproject
Do you know how gyroscope modul works with arduino Do you know how gyroscope modul works with arduino? 

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #rfid #arduinoproject
Do you know how you can use rfid module with ardui Do you know how you can use rfid module with arduino? 

Please subscribe to my instagram and youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #rfid #arduinoproject
It is almost done Please subscribe to my youtube It is almost done

Please subscribe to my youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #flower #autowatering #arduinoproject #robot #spiderbot
Begin to make a spider bot. Please subscribe to Begin to make a spider bot. 

Please subscribe to my youtube channel as well.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #flower #autowatering #arduinoproject #robot #spiderbot
Hello folks! There are 1000 of us on my instagram Hello folks! There are 1000 of us on my instagram account. And i want to tell thanks to each of you!
I'd like to tell more about this project. And that's why i made a video on youtube channel. 
It is in russian, but i have added english subtitles. 
I'm gonna tell you about many intriguing Arduino projects.
So, please, take a look at video. And subscribe to my youtube channel as well. 

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #flower #autowatering
How can we know that flower needs to be watered. L How can we know that flower needs to be watered. Like and Subscribe to know more.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit #flower #autowatering
How to turn light on by clapping. Like and Subscri How to turn light on by clapping. Like and Subscribe to know more.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit
Is it possible to turn light on over the internet? Is it possible to turn light on over the internet? Like and Subscribe to know more.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit
Is communicating vessels for light impossible? Pro Is communicating vessels for light impossible? Probably not. Like and Subscribe to know more.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit
#ky-033 line tracking #arduino sensor. How does #ky-033 line tracking #arduino sensor. How does it work? It is really simple to know. Like and Subscribe to know more.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit
Do you want to know how #wifi module #esp01 for #a Do you want to know how #wifi module #esp01 for #arduino works? Write in the comments below and subscribe.

#arcadepub #diy #doityourself #learn #smarthome #ардуино #аркадныйпаб #сделайсам #умныйдом #arduino #circuit
Загрузи больше…

ArcadePUB @ 2020

arduino@arcadepub.ru

На сайте вы найдете уроки, проекты и обзоры всего, что связано с ардуино.

Аркадные игры и автоматы.

DIY проекты

Метки

  • Bluetooth
  • RGB Светодиоды
  • WIFI
  • Двигатели
  • Звук
  • Игры
  • Интернет вещей
  • Лего
  • Основное
  • Программирование
  • Уроки

Свежие записи

  • OLED дисплей. Урок 21. Ардуино
  • Много кнопок на одном пине. Урок 20. Ардуино
  • Как управлять Ардуино ДУ пультом. Проекты. Ардуино
  • ИК приемник KY-022. Датчики. Ардуино
  • Фоторезистор KY-018. Датчики. Ардуино

Навигация

  • Главная
  • Уроки
  • Датчики
  • Проекты
  • Справочник языка Ардуино
  • Справочник
  • Видео
  • Контакты
  • Поддержать

Дополнительно

Поддержать

Контакты

YouTube
Patreon
VK
Instagram
Twitter