Рейтинговые книги
Читем онлайн Занимательная электроника - Юрий Ревич

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 128 129 130 131 132 133 134 135 136 ... 152

Калибровка

Для того чтобы прибор заработал, в него необходимо ввести предварительные значения коэффициентов преобразования К и Z, причем такие, желательно, чтобы они были достаточно близки к настоящим, и измеритель не показал бы нам сразу «погоду на Марсе». В программе «зашиты» некие значения коэффициентов (см. процедуру Reset, Секцию Запись коэффициентов в самом конце программы), которые вы можете использовать, если в точности воспроизведете схему по рис. 20.4 и используете тот же самый датчик давления. Как они получены?

Схема датчика температуры при указанных параметрах должна выдавать, как вы можете подсчитать, значение от 0 до 5 В в диапазоне температур примерно от -47 до 55 °C. То есть на 102 °C у нас приходится 1024 градации АЦП, и крутизна характеристики, если считать градусы с десятичными долями, составит 1020/1024 = 0,996 тысячных долей градуса на единицу кода АЦП. Для вычислений в МК эту величину мы хотим умножить на 1024, так что можно было бы и не делить — ориентировочное значение коэффициента К и так будет 1020.

Величину Z, соответствующую 0 °C, вычислить также несложно. Мы полагаем, что нулевому значению кода соответствует температура -47°, тогда значение кода в нуле должно составить величину 470, поделенную на крутизну: 470/0,996 = 471.

Теперь разберемся с давлением. «Если повар нам не врет», то диапазон датчика, соответствующий изменению напряжения на его выходе от 0 до 4,6 В, составляет примерно 850 мм рт. ст. Диапазон 0–4,6 В будет соответствовать изменению кодов примерно от 0 до 940 единиц, т. е. крутизна К равна 850/940 = 0,904 мм рт. ст. на единицу кода. В приведенном для наших расчетов виде это составит 0,904 — 1024 = 926. «Подставка» Z есть значение кода на нижней границе диапазона датчика, которая равна около 11 мм. рт. ст., соответственно, Z = 11/0,904 = 12 единиц. Полученные величины «по умолчанию» и «зашиваем» в программу.

Для уточнения этих величин необходимо произвести калибровку. Откалибруем уже отлаженный прибор сначала по температуре. Для этого следует запустить прибор и поместить датчик температуры в воду, записав для двух значений температур (как можно ближе к 0°, но не ниже его, и около 30–35 °C) показания датчика (t) и реальные значения температуры по образцовому термометру (t'). Они, естественно, будут различаться.

Для расчета новых (правильных) значений коэффициентов K' и Z' достаточно решить относительно них систему уравнений:

Здесь величины со штрихами относятся к правильным (новым) значениям, а без штрихов — к старым, причем значение коэффициента К нужно подставлять в изначальной форме (а не умноженным на 1024). Система четырех уравнений содержит четыре неизвестных, два из которых (величины кодов x1 и х2) вспомогательные.

Если вы забыли, как решаются такие простые системы — обратитесь к любому справочнику по математике для средней школы (или к пособию по использованию Excel в алгебраических расчетах). Вычисленные значения (не забудьте К умножить на 1024!) «забейте» в программу и перепрограммируйте контроллер.

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

Для получения двух точек дождитесь, пока давление на улице не станет достаточно низким, а затем, наоборот, высоким — экстремальные значения давления в европейской части России составляют примерно 720 и 770 мм рт. ст. Чем дальше будут отстоять друг от друга значения, тем точнее калибровка. Для повышения точности можно усреднить коэффициенты, рассчитанные по нескольким парам значений давления, но это стоит делать, только если у вас хватит терпения вести наблюдения в течение нескольких месяцев, когда будет пройдено несколько минимумов и максимумов. Средние значения давления при калибровке лучше не учитывать, т. к. ошибка ее из-за узкого интервала и так достаточно велика.

Можно ли объединить часы, описанные в первом разделе этой главы, с измерителем температуры и давления? Конечно, но я предоставляю читателям сделать это самостоятельно. Одно только замечание: общее количество индикаторов составит 10 штук (6 для измерителя и 4 для часов), и это почти предельная величина для динамической индикации. Увеличивать частоту обхода индикаторов нельзя до бесконечности — у контроллера может просто не хватить быстродействия, и он начнет терять прерывания, сбиваясь в опросе датчиков или, что еще хуже, в отсчете времени (правда, это отчасти решается увеличением тактовой частоты). Но и быстродействие транзисторных ключей тоже ограничено, и при слишком высокой частоте обхода будут подсвечиваться ненужные и терять яркость нужные сегменты. Потому, возможно, схему придется продумывать более тщательно и применять индикаторы со встроенным контроллером-драйвером, позволяющим обойтись меньшим числом соединений и без дополнительных ключей. Такие индикаторы мы увидим в следующей главе, где будем конструировать настоящую метеостанцию с часами, выносным радиодатчиком и сохранением данных на флэш-карте.

ГЛАВА 21

Основы Arduino

Среда программирования и практика построения схем

— Но для путешествия в Лондон нужны деньги, — заметил Портос, — а у меня их нет.

— У меня тоже.

— И у меня.

— У меня они есть, — сказал д'Артаньян, вытаскивая из кармана свой клад и бросая его на стол.

А. Дюма. Три мушкетера

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

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

Но не следует думать, что таким способом можно овладеть всеми тонкостями ремесла. Как грамотному фотографу по-прежнему необходимо знание многих теоретических нюансов из области теории цвета и оптики (а необходимость освоения основ химии ему теперь заменили основы компьютерных наук), так и любителю Arduino, если он не хочет ограничиваться повторением чужих схем неизвестного качества, а создавать и совершенствовать что-то свое, придется изучать контроллеры «изнутри». Именно поэтому я подчеркивал в главе 19, что если вы желаете овладеть микроэлектроникой по-настоящему, то начинать следует с программирования простых конструкций на ассемблере, а не на языке С и, тем более, не в среде Arduino. Переход к языкам высокого уровня целесообразен тогда, когда вы понимаете, что именно происходит в контроллере, и в случае надобности можете управлять этим процессом.

Это мое убеждение, однако, не исключает того факта, что в качестве элементарного введения в предмет Arduino подойдет очень неплохо. О недостатках этой платформы мы еще поговорим в самом конце, а в оставшихся главах книги покажем, как с минимальной затратой сил можно с помощью Arduino делать настоящие электронные приборы, которые будут работать лучше покупных, иметь больше функций и обойдутся при этом, как минимум, не дороже тех, что имеются на прилавках. При этом ограниченный объем книги не позволяет мне остановиться на многих интересных темах: например, совсем несложно пристегнуть к Arduino модуль GPS и построить свой собственный навигатор, превратить Arduino в универсальный пульт управления бытовой техникой и даже создать на его основе автономный веб-сервер. По необходимости мы также оставим в стороне работу в Arduino со звуком и одно из главных направлений применения этой платформы в области конструирования роботов. Хочу еще обратить ваше внимание на открытый проект Accessory Development Kit компании Google — он позволяет устройствам на Android обеспечивать двусторонний обмен данными с Arduino через USB или Bluetooth. Здесь же мы сосредоточимся на измерительной технике, вопросах взаимодействия с компьютером и выводе информации на дисплей, что даст хорошее и обстоятельное введение в платформу и позволит конструировать практически полезные вещи.

1 ... 128 129 130 131 132 133 134 135 136 ... 152
На этой странице вы можете бесплатно читать книгу Занимательная электроника - Юрий Ревич бесплатно.

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