Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

Простой термометр на LCD (DS18B20) — Меандр — занимательная электроника
Site icon Меандр — занимательная электроника

Простой термометр на LCD (DS18B20)

Здесь я покажу вам как быстро спаять простой термометр.
Для этого нам понадобиться ATMega8, LCD(16*2), DS18B20, печатная плата, панелька для микроконтроллера.

Итак, приступим, сначала откроем Code Vision AVR.
Создаем новый проект, без использования мастера, потом создаем текстовый документ с расширением «.с»
и добавляем туда следующий код:

#include <mega8.h>               //библиотека ввода\вывода
#include <delay.h>               //библиотека задержки
#asm                             //сообщаем куда подключен датчик
.equ __w1_port=0x15; PORTC
.equ __w1_bit=3
#endasm
#asm                             //сообщаем куда подключён экран
.equ __lcd_port=0x18
#endasm
#include <lcd.h>                 //библиотека для LCD
#include <1wire.h>               //библиотека работы с 1Wire
#include <ds18b20.h>             //библиотека для работы с датчиком ds18b20
#include <stdio.h>               //ненаю что за библиотека, но без неё неполучается
char lcd_buffer[33];             //масив с данными для экрана
void main(void)
{
unsigned char devices;         //переменная в которой количество присоеденённых датчиков
int temp;                        //переменная для хранения температуры
lcd_init(16);                    //инициилизация LCD, и говорим что он на 16 символов
devices=w1_init();               //ищим датчики
while(devices>0)                 //бесконечный цикл, если датчик подключон
{
temp=ds18b20_temperature(0);  //читаем температуру
if (temp>1000){               //если датчик выдаёт больше 1000
temp=4096-temp;            //отнимаем от данных 4096
temp=-temp;                //и ставим знак «минус»
}
sprintf(lcd_buffer,»t=%i.%u\xdfC»,temp,temp%1);    //записуемв масив для экрана температуру и всё такое
lcd_clear();                //чистим дисплей перед выводом
lcd_puts(lcd_buffer);        //выводим масив на LCD
delay_ms(500);              //ждём 500мс
};
}

потом компилируем и выбираем частоту 8 МГц.
Прошиваем, и еще прошиваем фюзы на ту же частоту

Дальше дело за аппаратной частью,

Вот и все, 15 минут и термометр готов!!!

my-avr.at.ua

Exit mobile version