Arduino:Примеры/Гайд по использованию уклономера с Arduino
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Черновик |
Гайд по использованию уклономера с Arduino[1]
Эта статья рассказывает, как использовать уклономер (датчик, измеряющий угол наклона) вместе с платой Arduino. Этот датчик также называют уклонометром или инклинометром.
Описание
То, как выглядит уклономер, можно посмотреть на картинке ниже:
Этот датчик умеет определять свое положение в пространстве. То есть, если он расположен прямо, то сообщит одно значение, а если будет в наклоненном состоянии, то другое. Благодаря этому он часто используется в игрушках, роботах и других продуктах, где функциональность зависит от измерения наклона.
Как это работает
Уклономер имеет цилиндрическую форму. Внутри у него находится шарик из проводникового материала, а снизу подсоединено два провода, тоже из проводникового материала.
- Когда датчик расположен прямо, шарик скатывается в нижнюю часть и замыкает провода, позволяя току проходить через них.
- Когда датчик наклонен, шарик не касается проводов, поэтому ток через них не проходит.
Таким образом, датчик работает как переключатель, который включается/выключается в зависимости от того, наклонен он или нет. Следовательно, на Arduino будет передаваться либо сигнал HIGH, либо сигнал LOW.
Где купить
Уклономер – это очень простой и дешевый датчик. Его можно купить на eBay по цене менее 2 долларов.
Подключение контактов
В подключении уклономера к Arduino нет ничего сложного. Вам всего лишь нужно подключить один контакт датчика к цифровому контакту Arduino, а второй (GND) – к GND.
Кроме того, вам нужно будет активировать встроенный подтягивающий резистор на цифровом контакте Arduino, к которому подключен датчик. В противном случае к цепи нужно будет подключить подтягивающий резистор на 10 кОм.
Скетч: Светодиод, реагирующий на наклон датчика
В этом скетче-примере используется светодиод, который будет индикатором того, наклонен датчик или нет. То есть, если датчик будет стоять прямо, светодиод будет в выключенном состоянии, но если датчик наклонить, то светодиод загорится.
Необходимое оборудование
Для этого проекта понадобятся следующие компоненты:
- Одна плата Arduino Uno (см. на eBay)
- Одна макетная плата (см. на eBay)
- Один датчик наклона (см. на eBay)
- Один светодиод
- Один резистор на 220 Ом
- Провода-перемычки
Схема
Для этого примера вам нужно лишь добавить один светодиод к схеме, показанной выше, в разделе «Подключение контактов».
Код
Чтобы завершить проект, загрузите код, показанный ниже, на плату Arduino.
/*
* Автор – Руи Сантос (Rui Santos)
* Более подробно о проекте на: http://randomnerdtutorials.com
*/
int ledPin = 12;
int sensorPin = 4;
int sensorValue;
int lastTiltState = HIGH; // значение, которое было считано
// с датчика наклона в прошлый раз
// переменная ниже имеет тип данных «long», потому что в ней
// будут храниться данные о времени (в миллисекундах), и это
// значение может стать настолько большим, что просто не уместится
// в типе данных «int»:
toggled
long debounceDelay = 50; // задержка для дребезга контактов;
// если дребезг по-прежнему есть,
// увеличьте эту переменную
void setup(){
pinMode(sensorPin, INPUT);
digitalWrite(sensorPin, HIGH);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop(){
sensorValue = digitalRead(sensorPin);
// если состояние контакта поменялось,
// будь его причиной шум или реальное срабатывание...
if (sensorValue == lastTiltState) {
// ...сбрасываем таймер для устранения дребезга:
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
// каким бы ни было считанное значение, оно осталось
// даже после задержки для дребезга; следовательно,
// принимаем его за реальное значение:
lastTiltState = sensorValue;
}
digitalWrite(ledPin, lastTiltState);
Serial.println(sensorValue);
delay(500);
}
Демонстрация
В конце концов у вас должно получиться следующее:
См.также
Внешние ссылки
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Черновик
- Надо доработать
- Черновой вариант статьи
- Черновой вариант
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino