Радиомастер гид в мире электроники » Статьи » Программирование » Arduino » Калибровка аналогового датчика для Arduino
Информация к новости
  • Просмотров: 2476
  • Добавил: Dina
  • Дата: 10 декабря 2013
10 декабря 2013

Калибровка аналогового датчика для Arduino

Категория: Статьи » Программирование » Arduino

Схема
Аналоговый датчик (например, потенциометр, датчик света) подключается к аналоговому входу 2. Светодиод на цифровой выход 9.

Калибровка аналогового датчика для Arduino


Соедините светодиодный цифровой вывод 9 с резистором 220 Ом для ограничения тока. Подключите фотоэлемент к выводу 5, а затем к аналоговому выводу 0 с резистором 10 кОм в качестве подтягивающего на землю.

Электрическая схема

Калибровка аналогового датчика для Arduino


Программа
До установки, необходимо задать начальные значения минимального и максимального уровня,вот так:
int sensorMin = 1023; // минимальное значение
int sensorMax = 0; // максимальное значение

Они могут показаться обратными. Первоначально, вы устанавливаете высокий уровень и читаете значение ниже, сохраняя его как новый минимум. Кроме того, вы установите максимально низкий и будете считывать что-нибудь выше, новый максимум, вот так:
// калибровка на протяжении 5с
while (millis () < 5000) {
sensorValue = analogRead (sensorPin);
// установим максимальное значение
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// установим минимальное значение
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
Таким образом, любые дальнейшие показания могут быть сопоставлены в диапазоне между этим минимальным и максимальным:
// применим калибровку
sensorValue = map (sensorValue, sensorMin, sensorMax, 0, 255);
Вот целая программа:
/ *
Калибровка
Демонстрируется одна методика калибровки датчика.
Схема:
* аналоговый датчик (потенциометр например): аналоговый вход 0
* светодиод: цифровой пин 9 и к земле
http://arduino.cc/en/Tutorial/Calibration
*/
// Эти константы не будут изменятся:
const int sensorPin = A0; // вывод к которому подключен датчик
const int ledPin = 9; // вывод к которому подключен светодиод
// переменные:
int sensorValue = 0; // значение датчика
int sensorMin = 1023; // минимальное значение датчика
int sensorMax = 0; // максимальное значение датчика
void setup () {
// подключаем светодиод как индикатор начала работы:
pinMode (13, OUTPUT);
digitalWrite (13, HIGH);
// калибровка на протяжении 5 с
while (millis () < 5000) {
sensorValue = analogRead (sensorPin);
// установим максимальное значение
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// установим минимальное значение
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
// выключим светодиод вконце
digitalWrite (13, LOW);
}
void loop () {
// считываем информацию с датчика:
sensorValue = analogRead (sensorPin);
// применяем калибровку
sensorValue = map (sensorValue, sensorMin, sensorMax, 0, 255);
// если значение сенсора вышло за пределы калибровки
sensorValue = constrain (sensorValue, 0, 255);
// включить светодиод по калибровочному значению:
analogWrite (ledPin, sensorValue);
}

Метки к статье: калибровка, схема калибровки, калибровка аналогового датчика, схема калибровки аналогового датчика



Добавление комментария

Имя:*
E-Mail:*
Введите два слова, показанных на изображении: *

Друзья и партнеры:

Архив новостей

Декабрь 2016 (8)
Ноябрь 2016 (1)
Сентябрь 2016 (3)
Июнь 2016 (1)
Май 2016 (1)
Апрель 2016 (1)
^
 
-->