Приветствую Вас Гость | RSS
Главная | | Регистрация | Вход

Урааа

Меню сайта

Вход на сайт

Наш опрос
Стоит ли удалить раздел WindowsMobile ?
Всего ответов: 17

Мини-чат

Друзья сайта
  • Яндекс Диск
  • Радикал-Фото
  • 4pda.ru

  • Поиск

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Главная » 2015 » Сентябрь » 15 » Простое термореле со светодиодной индикацией на Atmega8
    11:09
    Простое термореле со светодиодной индикацией на Atmega8

    Ну вот после длительного застоя решил заняться программированием микроконтроллеров и для начала решил собрать простенькое термореле.

    Для начала были загружены полезные софтины:



    1 . Proteus Dowanload - использую как симулятор



    2. CodeVisionAVR Dowanload - среда разработки



    Порыскав в сети примеры работы наткнулся на приблизительно то что я хочу.

    Примером стала статья с сайта Мy-avr.at.ua









    Выглядела довольно просто и материалы все у меня есть:



    1. Микроконтроллер Atmega8

    2. Термодатчик DS18B20

    3. 3 резистра (r 100x2шт и R4700х1шт он же R4k7)

    4. 2 светодиода (3.2v синий и красный)



    Код прошивки
    Код

    #include <mega8.h>  
    #include <delay.h>  
    #asm  
    #endasm  
    #include <1wire.h>  

    #include <ds18b20.h>  
    void main(void)  
    {  

      unsigned char devices;  
      int temp;  
      devices = w1_init();  
       
    PORTD = 0x00; //Выставляем все выходы порта D на 0, то есть, выключаем весь порт D  
    DDRD = 0xFF;  
    while(devices>0)  
    {  
       
      temp=ds18b20_temperature(0); //читаем температуру  
       
      if (temp>1000) //если датчик выдаёт больше 1000  
      {  
      temp=4096-temp; //отнимаем от данных 4096  
      temp=-temp; //и ставим знак "минус"  
      }  

      if (temp<18) // устанавливаем нижней порог Синий диод  
      PORTD.0 = 1;  
      else PORTD.0=0;  
       
      if (18>=temp<=28) // устанавливаем рабочую температура Желтый  
      PORTD.2 = 1;  
      else PORTD.0=0;  
       
      if (temp>28) // установим верхний порог Красный  
      PORTD.1=1;  
      else PORTD.1=0;  
       
      }  

    }


    Собрав подобную схему в протеусе мне показалось этого мало и я добавил индикацию интервала температур от 18 до 28 градусов желтым светодиодом а так же исполнительным механизмом (реле)



    К схеме добавились:





    1. Микроконтроллер Atmega8

    2. Термодатчик DS18B20

    3. 4 резистра (r 100x2шт, R4700х1шт (он же R4k7) и R10kх1шт )

    4. 3 светодиода (3.2v синий,красный и желтый)

    5. 1 конденсатор 100n

    6. 1 транзистор TIP122

    7. 1 Диод 1N4001

    8. 1 Реле 5V



    Дальше для проверки использовал моторчик и батарейку, чисто для эксперимента.

    Приступим:
    Итак, приступим, сначала создадим новый проект с помощью мастера (Wizard).


    Выбираем микроконтроллер ATmega 8 потом в закладке 1-Wire выбираем порт В dsts bit = 0.
    File -> generate,save and exit.

    стираем код что нам сгенерировал визард и вставляем вот этот код:
    Код

    #include <mega8.h>  
    #include <delay.h>  
    #asm  
    #endasm  
    #include <1wire.h>

    #include <ds18b20.h>  
    void main(void)  
    {

    unsigned char devices;  
    int temp;  
    devices = w1_init();  

    PORTD = 0x00; //Выставляем все выходы порта D на 0, то есть, выключаем весь порт D  
    DDRD = 0xFF;  
    while(devices>0)  
    {  

    temp=ds18b20_temperature(0); //читаем температуру  

    if (temp>1000) //если датчик выдаёт больше 1000  
    {  
    temp=4096-temp; //отнимаем от данных 4096  
    temp=-temp; //и ставим знак "минус"  
    }

    if (temp<18) // устанавливаем нижней порог Синий диод
    PORTD.0 = 1;  
    else PORTD.0 = 0;

    if (temp>=18 && temp<=28) // устанавливаем рабочую температура Желтый
    PORTD.2 = 1;  
    else PORTD.2 = 0;

    if (temp>28) // установим верхний порог Красный
    PORTD.1=1;  
    else PORTD.1 = 0;  

    }  

    }
    Просмотров: 973 | Добавил: Дымок(R) | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Copyright MyCorp © 2024 Шаблоны и скрипты | Сайт создан в системе uCoz