цифровая электроника
вычислительная техника
встраиваемые системы

 



Датчик изгиба управляет сервомотором с помощью Arduino

Автор: Mike(admin) от 7-07-2021, 07:55

Датчик изгиба является отличным средством преобразования прикладываемой физической силы в электрические сигналы. Он широко применяется в робототехнике и других подобных электротехнических проектах.


Датчик изгиба управляет сервомотором с помощью Arduino

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


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


Здесь следует привести формулу удельного сопротивления: ρ = RA/l, где ρ = удельное сопротивление материала, R = сопротивление, A = Площадь материала, l = длина материала.


Датчик изгиба управляет сервомотором с помощью Arduino

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


Датчик изгиба управляет сервомотором с помощью Arduino

Запишите его сопротивление в нормальном состоянии, т.е. в прямом (угол изгиба = 0°).


Датчик изгиба управляет сервомотором с помощью Arduino

Запишите его сопротивление при полном изгибе (угол изгиба = 180°).


Датчик изгиба управляет сервомотором с помощью Arduino

Теперь пришло время подключить его к плате Arduino.


Датчик изгиба управляет сервомотором с помощью Arduino

Поскольку датчик изгиба представляет собой переменный резистор, мы не можем подключить его напрямую к Arduino. Нам понадобится схема делителя напряжения. Первый резистор будет фиксированным. Значение резистора должно быть равно максимальному значению сопротивления датчика. Резистор фиксированного значения и датчик изгиба должны быть подключены последовательно. Резистор с фиксированным значением должен быть подключен к 5 В, тогда как датчик изгиба должен быть подключен к GND. Их разветвление должно быть подключено к выводу A0 платы.


Теперь подключим серводвигатель. Серводвигатель имеет три контакта – питание, заземление и сигнальный вывод. Питание и заземление необходимо подключить к контактам 5V и GND на плате соответственно. Сигнал может быть подключен к любому цифровому выводу.


Датчик изгиба управляет сервомотором с помощью Arduino

Запишите значение аналогового входа, изогнув датчик от минимума до максимума. Серводвигателю нужен угол в градусах от 0° до 180°, но данные датчика могут иметь любое значение от 0 до 1024. Используйте приведенный ниже код, чтобы преобразовать значение датчика изгиба в пропорциональный угол серводвигателя.



int const min_flex_val= 159 // при прямом датчике
int const max_flex_val= 511 // при полностью согнутом датчике
float flex_value = analogRead(A0);
float y= ((flex_value - min_flex_val)/(max_flex_val-min_flex_val));
int angle=(y*180);

Итак, теперь подключите все согласно полной схеме.


Датчик изгиба управляет сервомотором с помощью Arduino

Загрузите в Arduino код проекта:



#include <Servo.h>

Servo m;

void setup()
{
  pinMode(13, OUTPUT);
  pinMode(A0,INPUT);
  m.attach(7);
  Serial.begin(9600);
}

void loop()
{
  float x=analogRead(A0);
  float y= ((x-159)/352);
  
  int angle=(y*180);
  Serial.println(angle);
  m.write(angle);
}

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




© digitrode.ru


Теги: Arduino, датчик изгиба, сервомотор




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

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