Главная » Микроконтроллеры
Призовой фонд
на март 2017 г.
1. UNI-T UT-39C
Паяльник
2. Тестер компонентов LCR-T4
Паяльник
3. 100 руб.
От пользователей

Термометр с самописцем на ATmega8

Описание устройства

В этом разделе будет разобран проект, в котором AVR придется решать такие характерные для микроконтроллера задачи, как измерение и контроль температуры, кнопочный ввод и индикация показаний, хранение данных в архиве, передача информации в компьютер и т.д. Все операции производятся под управлением ОСРВ. Вместе с этим будут рассмотрены примеры использования шины TWI (на примере EEPROM AT24C512) и однопроводного интерфейса 1-Wire (датчик температуры DS18B20). Отдельно рассмотрена терминальная программа со стороны компьютера (на языке Delphi), которая производит считывание архива и ряда других параметров устройства через COM-порт.

Принципиальная схема термометра
Рис.1 Принципиальная схема термометра

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

Для измерения температуры используется цифровой датчик DS18B20  с однопроводным интерфейсом 1-Wire. Он подключается к линии PB1 микроконтроллера через разъем X2. Архив данных размером 64 кб хранится во внешней EEPROM–памяти AT24C512. Обмен данными с микросхемой ведется через шину TWI (выводы SCL, SDA). Для взаимодействия с пользователем предусмотрены индикатор MT-10T на 10 знакомест и 4 кнопки управления. Кнопки подключены непосредственно к выводам PD2…PD5, а индикатор для своей работы задействует еще 6 линий (управляющие сигналы PD6, PD7 и 4-разрядные данные PC0…PC3). Подстроечный резистор R6 служит для регулировки контрастности изображения. Связь с компьютером осуществляется по двум линиям канала RS-232 (разъем X1). Это выход передатчика RXD и вход приемника TXD. Микросхема MAX232 необходима для согласования ТТЛ-уровней микроконтроллера с логическими уровнями стандарта RS-232 (3…12 В лог.1, -3…-12 В лог.0). В случае если устройство используется как термостат, с вывода PB0 через разъем X4 снимается управляющий сигнал для коммутации теплового элемента. Он имеет высокий уровень, когда нагрузка должна быть подключена и низкий, если ее необходимо обесточить. Защитные сопротивления R2 и R3 служат для снижения последствий короткого замыкания на линиях PB0, PB1. На X4 подается напряжение 4…5 В от внешнего источника питания, способного обеспечить ток до 30 мА (собственное энергопотребление прибора без нагрузки на X4 не превышает 8…10 мА). Резервный источник питания VB1 (3.6…4.8 В) позволяет сохранить работоспособность и не потерять ход времени при перебоях напряжения. Разъем X2 служит для внутрисхемного программирования.

Алгоритм работы
Рис.2 Алгоритм работы

Сразу после включения устройство переходит к измерению температуры. В этом режиме с периодичностью 1 с считываются показаний датчика и отображение их на индикаторе вместе со временем (рис.2а). Предел измерения температуры  -55…+125 С. Нажатие на кнопку SB4 запускает самописец. Каждый замер температуры, при этом, переносится в буфер архива. По истечению 1 минуты (собрано 60 замеров) содержимое буфера переносится во внешнюю память DD2. В режиме самописца с частотой 1 Гц мигает символ градуса в крайнем правом разряде индикатора. Повторное нажатие SB4 останавливает процесс записи.

В течение всего времени постоянно ведется контроль попадания температуры в интервал, ограниченный верхним и нижним значениями величины. При достижении верхнего предела на выходе PB0 DD3 формируется низкий логический уровень (сигнал отключения нагрузки). Далее температура падает до того момента, пока не достигнет нижнего предела и на выход PB0 снова будет подано напряжение. Десятичная точка в крайнем правом разряде индицирует состояние вывода управления нагрузкой (отображается, когда на выводе PB0 уровень лог.1).   

Нажатие кнопки SB1 заставит устройство перейти в режим меню, где можно настроить верхний “thi” (рис.1б) и нижний “tlo” (рис.2в) пределы температуры, а также текущее время “tmr” (рис.2г). Значения пределов “thi” и “tlo” изменяютсья кнопками SB2, SB3 в сторону уменьшения и увеличения соответственно. В момент отображения “tmr” кнопка SB2 отвечает за установку часов, а SB3 за установку минут. Нажатие и удержание SB2 и SB3 в течение примерно 2 с приводит к увеличению скорости перебора параметра до 12 изменений в секунду. Значения “thi”, “tlo” могут находиться в диапазоне -50…+120 С (шаг 1 С), “tmr” – от 0ч00м до 23ч59м.

Когда происходит сеанс связи с компьютером и терминальная программа берет управление на себя, на дисплее выводится надпись соединения “CONNECt” (рис.2д). Измерение и контроль температуры прекращаются, опрос кнопок не производится до тех пор, пока не произойдет переход к обычному режиму работы.

Управляющая ОСРВ

Операционная система размещается в основном файле проекта “TermoRTOS.asm”. ОСРВ распределяет процессорное время и разделяет ресурсы памяти между пятью задачами, которые и обеспечивают логику работы устройства. Все задачи находится в отдельных файлах, и подключаются с помощью директивы .include в начале программы.

После сброса микроконтроллера, происходит отчистка SRAM и инициализация стека для каждой задачи. Глубина стека выбрана для всех задач одинаковой и составляет 30 б. Текущий указатель стека каждой задачи сохраняется в ячейках памяти sp1:sp1+1…sp5:sp5+1. Переключение задач происходит в обработчике прерывания service_TOVF0 по переполнению счетного регистра таймера-счетчика TCNT0. Сам таймер-счетчик 0 работает в единственно возможном для него режиме Normal. Интервал времени TTOV0, оставшийся до следующего переполнения при этом:
TTOV0 = ((256-TCNT0 )*N)/Fclk,
где N-коэффициент деления предделителя частоты таймера-счетчика 0.

При Fclk = 3686400 Гц и N=1024, получим TTOV0 ≈ 277,8*(256 -TCNT0) мкс. Изменяя значения TCNT0 в диапазоне 0…0xFF можно отмерять различные интервалы в пределах 71111,1…277,8 мкс.

Во время переключения контекста ОСРВ определяет также длительность следующей задачи. Из ячеек tmr1… tmr5 извлекается числа, которые необходимо загрузить в TCNT0, чтобы получить необходимую длительность времени до следующего прерывания.

Рассмотрим подробнее, как происходит переключение задач. Допустим, прерывание возникает в процессе выполнения задачи 1. В этом случае после сохранения SREG и рабочих регистров в стеке задачи 1, производится сохранение самого указателя стека задачи 1 в ячейки sp1:sp1+1 (SPH копируется в sp1, а SPL в sp1+1). Далее из ячеек sp2:sp2+1 извлекается 2-байтовое значение указателя стека следующей в списке задачи 2 и загружается в SPH:SPL. С этого момента программа находится в адресном пространстве новой задачи. Перед выходом из прерывания восстанавливаются рабочие регистры и SREG задачи 2, а в регистр TCNT0 заносится значение из ячейки tmr2=184. Задача 2 будет выполняться 277,8*(256-184) = 20000 мкс, пока не наступит очередное прерывание по переполнению таймера-счетчика 0 и ОСРВ произведет переключение на задачу 3 и т.д.

Сведения о проекте приведены в табл.1. Каждая из 5 задач занимается обслуживанием собственного интерфейса и не оказывает прямого влияние на остальные задачи системы. Взаимодействие между компонентами программы происходит через глобальные переменные ОСРВ, размещенные в регистрах R5…R21. Для обработки данных все задачи получают в распоряжение свой собственный комплект РОНов R22…R31. Номер текущей задачи (1…5) хранится в регистре tsknum.

Табл 1. Сведения о проекте:

Задача

Описание

Место расположения

Время выполнения, мс

Объем
кода, байт

-

Операционная система с переключением задач.

TermoRTOS.asm

-

640

1

Вывод информации на дисплей.

DisplayMT10T.asm

5

550

2

Интерфейс с компьютером.

ComPort.asm

20

218

3

Работа с внешней памятью данных.

Eeprom24C512.asm

20

244

4

Опрос кнопок.

ButtonPolling.asm

5

228

5

Опрос датчика температуры.

TermoDS18B20.asm

20

388

Использованный объем FLASH, байт

2268

Использованный объем SRAM, байт

247

Использованный объем EEPROM, байт

4

Выполнение задач в ОС
Рис.3 Выполнение задач в ОС
а - во время основного режима работы
б - во время сеанса связи с компьютером

Система может находиться в трех состояниях, которые определяются битами регистра state. Если устройство отображает температуру (установлен бит TERMO) или находится в меню (установлен бит MENU), то задачи используют процессор так, как показано на рис.3а. В этом случае период повторения каждой задачи 70 мс. На диаграмме не учтены незначительные затраты времени на переключение контекста, что в среднем составляет 20 мкс (73 машинных цикла) на одну задачу. Во время сеанса связи с компьютером (установлен бит CONNECT в state) опрашивать кнопки и датчик температуры ненужно. Поэтому для увеличения скорости обмена данными задачи 4 и 5 исключаются, а задачи 1…3 выполняются с периодом 45 мс (см. рис.3б).

Кроме прерывания от таймера-счетчика 0, в программе используется еще и прерывание по совпадению OCR2 и TCNT2 таймера-счетчика 2 для отчета временных интервалов. Таймер- счетчик 2 работает в режиме CTC (сброс при совпадении). Прерывание возникает каждый раз, когда содержимое счетного регистра  TCNT2 становится равным содержимому регистру совпадения OCR2, после чего TCNT2 обнуляется. Период следования прерываний TOCR2:
TOCR2 = (OCR2+1)*N/Fclk,
где N-коэффициент деления предделителя частоты таймера-счетчика 2. В программе выбрано TOCR2= 50 мс (N=1024, OCR2=179).

В обработчике service_OC2 каждую секунду вызывается подпрограмма счета времени time, а также устанавливается флаг начала очередного измерения температуры CONVER в регистре flag. Еще один бит этого регистра PULSE используется для мигания символа градуса в момент записи в архив и разделительной черты при отображении часов и минут. В прерывании PULSE=1 в течении 0.25 с (черта отображается) и  PULSE=0 в течении 0.75 с (черта погашена).

В файле “TermoRTOS.asm” размещены также две подпрограммы записи в EEPROM микроконтроллера save_tmpr и save_eadr, которые используются различными задачами ОС. Подпрограмма save_tmpr сохраняет значения верхнего th и нижнего  tl пределов регулирования температуры, а  save_eadr сохраняет двухбайтовый указатель текущего адреса eadrh: eadrl в микросхеме памяти AT24C512. Каждый раз после включения устройства содержимое регистров th, tl, eadrh, eadrl восстанавливается из соответствующих ячеек энергонезависимой памяти _th, _tl, _eadrh, _eadrl.

Для уменьшения энергопотребления термометра в цикл каждой задачи включена команда sleep, переводящая микроконтроллер в спящий режим Idle. После ее выполнения ЦПУ останавливает свою работу, но функционировании остальных модулей продолжается. Выход из спящего режима происходит при возникновении прерывания от одного из таймеров-счетчиков, либо после аппаратного сброса.

Для защиты от зависания программы включен сторожевой таймер с периодом сброса 125 мс. При нормальном режиме работы его сброс происходит каждые 50 мс в обработчике прерывания от таймера-счетчика 2.

Вывод информации на дисплей

Код задачи 1 размещен в файле “DisplayMT10T.asm. Алгоритм работы приведен на рис.2. Эта часть программы отвечает за вывод информации на дисплей ЖКИ MT10T-8T.

Под видеопамять отведено 10 ячеек SRAM, начиная с метки ind. В цикле задачи непрерывно проверяется содержимое регистра picter, биты которого отвечают за отображение различных фрагментов программы. После этого видеопамять заполняется соответствующими кодами, а ее содержимое выводится на индикатор.

В самом начале работы линии шины адреса/данных DB3…DB0 и управляющих сигналов A0, WR1 предварительно настраиваются на вывод и примерно на 3 с на экране высвечивается тестовое изображение в виде символов с 0 по 9.

Интерфейс с компьютером

Код задачи 2 размещен в файле “ ComPort.asm”. Алгоритм работы приведен на рис.4. Задача отвечает за взаимодействие микроконтроллера с прикладным программным обеспечением компьютера.

Алгоритм работы задачи 2
Рис.4 Алгоритм работы задачи 2

После запуска термометра модуль приемопередатчика USART инициализируется на работу в полнодуплексном режиме (одновременно задействованы линии RXD и TXD). Параметрами связи: скорость обмена 115200 бит/c, длина слова 8 бит, 1 стоп-бит. Контроль четности не производится.

Затем программа ожидает поступления от компьютера команды в виде символа "D". Если запрос был получен, то в ответ отсылается строка подтверждения "Termostat AVR" и устройство переходит к сеансу связи. В регистре state устанавливается флаг CONNECT (переход к сеансу связи), а в picter устанавливается бит CON (отображение надписи на рис.2д). Текущий адрес страницы архива памяти eadrh:eadrl, который может быть модифицирован в процессе обмена данными, временно сохраняется в регистровой пар еtmph:etmpl.

Во время сеанса связи программа все время находится в цикле ожидания приема очередных управляющих команд, каждая из которых представляет собой принятый от компьютера символ ASCII. В ответ на запрос о получении основной информации об устройстве по команде "I", устройство передает 8-байтовый ID-код датчика температуры DS18B20 и установленные верхний th и нижний tl пределы регулирования температуры. Команда "E" приводит к стиранию 64-байтовой страницы памяти в архиве термометра. За командой следует двухбайтовый адрес страницы, а после окончания операции устройство передает в компьютер символ подтверждения "!". Для считывания страницы архива управляющая программа со стороны компьютера передает команду "R" и двухбайтовый адрес страницы. После этого устройство передает 64 байта данных и символ подтверждения "!".

Выход из сеанса связи происходит поле приема символа "O". Перед переходом к нормальному режиму работы в state устанавливается флаг TERMO (режим отображения температуры) и в регистр picter устанавливается бит TEM (отображение надписи на рис.2а). Текущий адрес eadrh:eadrl восстанавливается из еtmph:etmpl.

На любую принятую команду, кроме "D", "I", "E",  "R", "O", микроконтроллер отвечает символом ошибки "?".

Работа с внешней памятью данных

Код задачи 3 размещен в файле “ Eeprom24C512.asm”. Алгоритм работы приведен на рис.5. Задача реализует интерфейс с микросхемой памяти AT24C512.

Алгоритм работы задачи 3
Рис.5 Алгоритм работы задачи 3

В микросхеме EEPROM AT24C512 размещается архив данных размером  64 кбайт. AT24C512 имеет страничную организацию. Размер страницы 64 байта. Все операции записи и чтения ведутся через страничный буфер, размещенный в памяти SRAM начиная с метки tbuf.

Формат данных страницы архива памяти
Рис.6 Формат данных страницы архива памяти

Если запись в архив разрешена (установлен флаг ARCHIVE в регистре flag), то каждую секунду в страничный буфер заносится результат очередного измерения температуры. После того как будет накоплено 60 замеров (т.е. пройдет 1 минута), содержимое буфера копируется в микросхему памяти. Формат данных каждой страницы архива памяти приведен на рис.6. Первые 4 байта (ячейки 0…3) составляют заголовок. В них фиксируется начальное время замера: часы, минуты, секунды. Ячейка 3 остается не задействованной. В нее можно будет поместить дополнительную служебную информацию такую как, например, состояние вывода управления нагрузки, положение кнопок и т.д. Следом за заголовком в ячейках 4…63 идут данные замеров. Архива объемом в 1024 64-байтовых страниц хватает на 1024*60 = 61440 ежесекундных замеров или на 17ч4м непрерывных измерений.

EEPROM AT24C512 подключается к микроконтроллеру посредством двухпроводного интерфейса TWI. AVR выступает в качестве ведущего передатчика при записи и ведущего приемника при чтении данных. Таким образом, перед началом работы необходимо произвести инициализацию контроллера скорости передачи данных (Bit Rate Generator), входящего в состав TWI и отвечающего за частоту тактовых импульсов F­­SCL­ на линии SCL. Значение F­­SCL­ определяется как
SCL­ = F­clk/(16+2*TWBR*4TWPS),
где TWBR – содержимое регистре TWBR, TWPS – значение битов TWPS1: TWPS0 в регистре TWSR.

В данном приложении F­­SCL­≈17кГц (TWBR=100, TWPS1:TWPS0=00), что значительно ниже максимально возможной скорости обмена данными с AT24C512 (до 1000 кб/с при напряжении 5 В).

В цикле задачи программа проверяет состояние битов EERASE, EREAD, EWRITE в регистре flag. Если установлен флаг стирания EERASE, то все ячейки tbuf заполняется значением 0xFF, после чего содержимое страничного буфера копируется в соответствующую страницу памяти архива. При флаге чтения EREAD=1 страница архива переписывается в tbuf, а при флаге записи EWRITE=1 результат каждых 60 замеров сохраняется AT24C512. На время выполнения любой из трех операций устанавливается флаг EBUSY во flag.

Текущей двухбайтовый адрес в памяти архива размещается в регистрах  eadrh:eadrl. После записи очередной страницы содержимое  eadrh:eadrl увеличивается на 64 (размер страницы). Естественно, что если не принимать ни каких мер, то после отключения питания устройства значение eadrh:eadrl будет утеряно, а после очередного запуска устройства запись в архив снова начнется с нулевого адреса. Поэтому после записи каждых пяти страниц eadrh и eadrl сохраняется в ячейках _eadrh, _eadrl EEPROM-памяти микроконтроллера. С учетом того, что ресурс EEPROM составляет порядка 100000 циклов записи, - его хватит примерно на год непрерывной работы.

Временные диаграммы чтения микросхемы AT24C512
Рис.7 Временные диаграммы чтения микросхемы AT24C512
a - одного байта
б - последовательности байтов

Временные диаграммы чтения и записи данных в AT24C512 приведены на рис.7 и рис.8 соответственно. Микросхема допускает обращение как к отдельным ячейкам EEPROM  (рис.7а и рис.8а), так и к 64-байтоввм страницам памяти (рис.7б и рис.8б). В данном приложении используется второй способ адресации.

Временные диаграммы записи микросхемы AT24C512
Рис.8 Временные диаграммы записи микросхемы AT24C512
a - одного байта
б - последовательности байтов

Подпрограмма twi_read_page считывает страницу в буфер tbuf, а twi_write_page копирует данные из tbuf во внешнюю память. Две задокументированные подпрограммы twi_read_byte и twi_write_byte можно использовать для чтения и записи байта EEPROM, расположенного по произвольному адресу. Подпрограмма twi_read_byte возвращает прочитанный байт в edata; в twi_write_byte байт для записи передается в том же регистре в качестве входного параметра. Во всех случаях адрес текущей ячейки памяти (первой ячейки страницы памяти) размещается в eadrh:eadrl.

Опрос кнопок

Задача 4 размещена в файле “ ButtonPolling.asm”. Алгоритм работы приведен на рис.9. Задача занимается опросом кнопок и оказывает соответствующее воздействие на ход выполнения программы.

Алгоритм работы задачи 4
Рис.9 Алгоритм работы задачи 4

После запуска устройства, линии кнопок SB1…SB4 (MD,MI,PL и TM соответственно) настраиваются на ввод, и задача входит в цикл обработки пользовательских команд, приходящих от клавиатуры.

Кнопка считается нажатой, если в течение двух циклов опроса (≈140 мс) на соответствующей линии был зафиксирован низкий логический уровень. Программа считает длительным нажатие при удержании кнопки в течение 15 циклов (≈1050 мс). Код нажатой кнопки находится в регистре btn. В случае отсутствия нажатых кнопок либо при одновременном нажатии более чем одной кнопки btn=0.

Программа интерпретирует нажатие различных кнопок по разному,  в зависимости от информации, отображаемой на индикаторе (определяется содержимым регистра picter). При отображении верхнего и нижнего пределов температуры кнопки MI, PL отвечают за уменьшение и увлечение параметра соответственно. При отображении времени кнопкой MI устанавливают минуты, а кнопкой PL – секунды. Кнопка MD позволяет войти и передвигаться в меню устройства. Кнопка TM запускает и останавливает запись температуры в архив.

Опрос датчика температуры

Задача 5 размещена в файле “TermoDS18B20.asm”. Алгоритм работы приведен на рис.10. Задача занимается отвечает за взаимодействие микроконтроллера с цифровым датчиком температуры DS18B20.

Алгоритм работы задачи 4
Рис.10 Алгоритм работы задачи 5

Датчик DS18B20 (производства Dallas Semiconductor) имеет однопроводный интерфейсом 1-Wire. Он позволяет измерять температуру в пределах -55…+125 С при максимально-допустимой погрешности на границах диапазона ±2 С (не более ±0.5 C в диапазоне -10…+85 С). Время преобразования и разрешающая способность регулируются программно.

Расположение выводов и блокнотная память DS18B20
Рис.11 Расположение выводов и блокнотная память DS18B20

Программный интерфейс DS18B20 представлен в виде 9 регистров блокнотной памяти (Scratchpad), как показано на рис.4 (регистры 5…7 не используются). В первых двух регистрах находится результат измерения температуры в градусах C. Это знаковое дробное число с фиксированной запятой, где под целую часть отводятся 7 битов, включая знаковый разряд S, а под дробную 1…4 бита, в зависимости от выбранного разрешения. Установка разрешающей способности датчика производится через биты R1 и R0 регистр управления 4. Самой высокой разрешающей способности соответствует наибольшее время преобразования и наоборот. Выбор разрешающей способности ни как не влияет на точность результата измерения. Основным назначением регистров 2 и 3 является хранение установок максимального и минимального пределов температуры соответственно, но в них может быть размещена и любая другая пользовательская информация.  

DS18B20 имеет 3 байта памяти EEPROM. По команде записи в блокнотную память в нее копируется содержимое регистров 2…4. Эта же информация восстанавливается в регистры сразу после включения. Однако практика показывает что у датчиков, по крайней мере раннего времени выпуска, энергонезависимая память практически не работоспособна. Поэтому настройку управляющего регистра надо производить каждый раз заново, а данные из регистров 2,3 лучше хранить в EEPROM микроконтроллера.

Для контроля достоверности данных во всех устройствах шины 1-Wire введен генератор циклического избыточного кода, формирующий контрольную сумму CRC (Cyclik Redundancy Checksum). Контрольная сумма (однобайтовое число) вычисляется для блока данных по специальному алгоритму, использующему образующий полином X8+X5+ X4+X5+1. Для защиты 8 байтов блокнотной памяти CRC находится по адресу регистра 8.

Временные диаграммы сигналов шины 1-Wire
Рис.12 Временные диаграммы сигналов шины 1-Wire

Датчик имеет одну линию ввода/вывода DS данных и два вывода питания VCC и GND. Возможна также двухпроводная схема подключения в которой вывод линию DS совмещает функции ввода/вывода и питания, но здесь она не рассматривается. Все запросы на линии формирует ведущий микроконтроллер. Временные диаграммы на уровне чтения и записи информационных битов (слотов) приведены на рис.12. Детальное описание работы 1–Wire выходит за рамки данной книги, поэтому ниже ограничимся только практической стороной вопроса. 

На стадии инициализации, микроконтроллер вызывает подпрограмму read_rom, которая выдает на линию команду сетевого уровня Read ROM (Чтение ПЗУ) и считывает 64-разрядный ID-номер датчика, записанный во внутреннем ПЗУ, в буфер dsnum. В дальнейшем запись и чтение DS18B20 будет происходить с помощью команды Skip ROM (Пропуск ПЗУ). Эту команду формирует подпрограмма skip_rom. Однако, если на линии будут находится сразу несколько датчиков, то обращаться к ним придется только по индивидуальному номеру через команду Match ROM (Совпадение ПЗУ). Подобное обращение формирует задокументированная подпрограмма match_rom.

В цикле задачи программа посылает датчику команду запуска преобразования с параметрами разрешения 11 бит, 375 мс, и через каждую секунду считывает показания температуры. За запуск преобразования и чтение показаний отвечают подпрограммы termo_convert и termo_result соответственно. Для синхронизации временных интервалов служит флаг CONVER (устанавливается с периодом 1 с) в регистре flag. В случае если показания температуры считаны успешно, программа сигнализирует об этом установкой флага готовности результата EWRITE из flag.

Каждое считанное значение температуры постоянно сравнивается с диапазоном регулирования температуры (нижнее значение в tl, верхнее - в th). В случае превышения верхней границы, выход POV порта B отключается и возвращается в исходное состояние только, когда температура упадет до нижнего предела. Если в ходе опроса DS18B20 возникнет ошибка, то выход будет отключен принудительно. Код ошибки находится в регистре error (0-нет ошибки, 1-датчик отсутствует, 2-короткое замыкание).

Перейти к следующей части:

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DD1 ИС RS-232 интерфейса
MAX232
1 Поиск в FivelВ блокнот
DD2 МикросхемаAT24C5121 Поиск в FivelВ блокнот
DD3 МК AVR 8-бит
ATmega8
1 ATmega8L-8PUПоиск в FivelВ блокнот
Датчик температуры
DS18B20
1 Поиск в FivelВ блокнот
D1 Диод Шоттки
1N5817
1 Поиск в FivelВ блокнот
С1-С4 Электролитический конденсатор1 мкФ 16 В4 Поиск в FivelВ блокнот
С5, С6 Конденсатор27 пФ2 Поиск в FivelВ блокнот
R1, R4, R5 Резистор
4.7 кОм
3 Поиск в FivelВ блокнот
R2 Резистор
100 Ом
1 Поиск в FivelВ блокнот
R3 Резистор
220 Ом
1 Поиск в FivelВ блокнот
R6 Подстроечный резистор220 кОм1 Поиск в FivelВ блокнот
ZQ1 Кварцевый резонатор3.6864 МГц1 Поиск в FivelВ блокнот
HG1 LCD-дисплейМТ-10Т81 Поиск в FivelВ блокнот
SB1-SB4 Тактовая кнопка4 Поиск в FivelВ блокнот
VB1 Батарея питания4.8 В1 Поиск в FivelВ блокнот
X1 РазьемRS-2321 Поиск в FivelВ блокнот
X2 Разьем для программатораISP1 Поиск в FivelВ блокнот
Х3 Разьемная пара для датчика температуры1 Поиск в FivelВ блокнот
Х4 Разьем для входа сигнала1 Поиск в FivelВ блокнот
Х5 Разьем для подключения питания1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
123ksn #
Наконец-то СЛУЧАЙНО нашёл недорогой термостат, который отображает температуру, пишет в память и передаёт в компьютер. Жаль только, что нет часов DS1307, чтобы фиксировать время показаний и только одна общая шина.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Конструктор: DDS генератор сигналов Лазерный модуль 650нм 5мВт
вверх