• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Датчик считывания силы Arduino (FSR)

 

 

В этом руководстве по резистору с датчиком силы Arduino я рассмотрю все шаги по настройке схемы, которая может определять давление, оказываемое на нажимную подушку или обычно известную как резистор с датчиком силы (FSR). Вы также можете подключить резистор датчика силы к Raspberry Pi . Это немного сложнее, чем Arduino, поскольку у вас нет аналоговых контактов на Raspberry Pi. У такого датчика есть много применений. Ближе к концу урока я рассмотрю несколько примеров проектов, в которых используется этот классный датчик.

Схема для этого проекта Arduino очень проста, поскольку нам нужны только резистор, чувствительный к силе, и резистор 100 кОм. В этом уроке я объясню каждую часть и почему она нам понадобится в нашей схеме.

 

 

Резистор датчика силы (FSR)

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

Он почти такой же, как  резистор, зависящий от света,  но полагается на силу, а не на свет.

 Резистор Этот резистор будет действовать как понижающий резистор и как делитель напряжения . Он разделит 5В между прижимной площадкой и резистором. При приложении давления оно обеспечивает достаточное напряжение для регистрации на аналоговом выводе Arduino. Ниже приведено уравнение, по которому вы можете определить, каким будет напряжение на нашем выводе GPIO. Например, если у нашей нажимной подушки максимальное сопротивление, оно будет (100 000 / (100 000 + 10 000 000)) * 5 = ~ 0,004 вольт . Это должно быть 0 при чтении с аналогового вывода.

Если вы прикладываете небольшое давление к FSR, чтобы сопротивление упало до 50 000 Ом, наше уравнение будет  (100 000 / (100 000 + 50 000)) * 5 = ~ 3,3 вольта. На аналоговом выводе должно быть около 700 .

 

Делитель напряжения

 

Принципиальная электрическая схема

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

Подключите один конец FSR к 5В .

Поместите резистор 100 кОм на макетную плату так, чтобы один конец подключился к GND, а другой - к аналоговому выводу 0 .

Наконец, конец резистора, который идет к аналоговому выводу 0, также должен быть подключен к FSR .

 

 

Пример видео датчика силы Arduino

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

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

Во-первых, нам нужно объявить наши переменные. В основном они определяют статические значения, например, к какому выводу подключен наш FSR. Мы также определяем, что считается отсутствием давления, легким давлением и сильным давлением. Наконец, считывание давления - это то место, где мы будем хранить наши значения от датчика.

int pressureAnalogPin = 0;

int pressureReading;

 

int noPressure = 5;

int lightPressure = 100;

int mediumPressure = 200;

В нашей функции настройки  мы запускаем последовательный интерфейс, чтобы увидеть результат на нашем компьютере. Мы устанавливаем скорость передачи по умолчанию 9600, измените ее, если хотите использовать что-то еще.

void setup(void) {

  Serial.begin(9600);

}

Наконец, у нас есть функция цикла. Здесь мы сначала считываем показания резистора датчика силы. Затем мы выводим это значение вместе с текстом «Pressure Pad Reading =».

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

После блока if else мы задерживаемся на 1 секунду и повторяем до тех пор, пока не будет загружена новая программа или не выключится Arduino.

void loop(void) {

pressureReading = analogRead(pressureAnalogPin);

 

Serial.print("Pressure Pad Reading = ");

Serial.println(pressureReading);

 

if (pressureReading < noPressure) {

Serial.println(" - No pressure");

} else if (pressureReading < lightPressure) {

Serial.println(" - Light Pressure");

} else if (pressureReading < mediumPressure) {

Serial.println(" - Medium Pressure");

} else{

Serial.println(" - High Pressure");

}

delay(1000);

}

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

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

Если метод копирования и вставки не работает, вы также можете получить код на GitHub .

int pressureAnalogPin = 0; //pin where our pressure pad is located.

int pressureReading; //variable for storing our reading

 

//Adjust these if required.

int noPressure = 5; //max value for no pressure on the pad

int lightPressure = 100; //max value for light pressure on the pad

int mediumPressure = 200; //max value for medium pressure on the pad

 

void setup(void) {

  Serial.begin(9600);

}

 

void loop(void) {

  pressureReading = analogRead(pressureAnalogPin);

 

  Serial.print("Pressure Pad Reading = ");

  Serial.println(pressureReading);

 

  if (pressureReading < noPressure) {

    Serial.println(" - No pressure");

  } else if (pressureReading < lightPressure) {

    Serial.println(" - Light Pressure");

  } else if (pressureReading < mediumPressure) {

    Serial.println(" - Medium Pressure");

  } else{

    Serial.println(" - High Pressure");

  }

  delay(1000);

}

Как вариант, вы можете использовать что-нибудь из линейки Cayenne с Arduino . Это программное обеспечение значительно упрощает реализацию схем и предоставляет вам очень красивый графический интерфейс.

 Тестирование кода

Развернуть код на Arduino довольно просто.

Сначала щелкните галочку в верхнем левом углу IDE Arduino ( 1 ). Он проверит, что ваш код работает.

 

Проверка и загрузка эскиза Arduino

 

Затем щелкните стрелку рядом с галочкой ( 2 ). Начнется процесс загрузки кода в Arduino, это займет всего несколько секунд. Теперь загрузите монитор последовательного порта, перейдя в Tools-> серийный монитор или Ctrl + Shift + M .

 

 

Вы должны увидеть свой код в действии с выводом, как показано ниже. Если вы видите тарабарщину, убедитесь, что ваша скорость передачи установлена​​правильно .

 

 

В проектах Arduino есть множество применений резистора с датчиком силы . Ниже приведены лишь несколько примеров того, что вы можете сделать.

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

Пусть он действует как кнопка для включения или выключения устройств.

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

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

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024