Zodiac21

Автоматические ворота на atmega

6 сообщений в этой теме

Zodiac21    0

Ребята! Делаю я автоматические ворота на базе atmega8, и столкнулся с проблемой в прошивке.....

Алгоритм работы таков:

кратковременно нажимаем на кнопку "открытие/закрытие" -----   начинается открытие до срабатывания концевика открытия.

нажимаем еще-раз, происходит закрытие  до срабатывания  концевика закрытия.

#include <io.h>
#include <mega8.h>
#include <delay.h>

int i=0;


void main(void)
{

PORTD=0x00;
DDRD=0xff;

PORTB=0xff;
DDRB=0x00;

PORTD.0=0;

while (1)
    {
     
    if(PINB.0==0)
    {
    delay_ms(100);
    i++;
    }


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if(i==1)
{
PORTD.0=1;
PORTD.1=0;
}

if(PINB.1==0)
{
PORTD.0=0;
PORTD.1=0;
}

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

if(i==3)
{
PORTD.0=0;
PORTD.1=1;
}

if(PINB.2==0)
{
PORTD.0=0;
PORTD.1=0;
}

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

if(i>3)
{
i=0;
}


    }
}

Всё-бы ничего, но есть одно НО... Допустим ворота открылись, концевик открытия нажался и удерживается... При этом не получается закрыть ворота , потому-что выполняется условие :

if(PINB.1==0)
{
PORTD.0=0;
PORTD.1=0;
}

Вот если кратковременно нажать на концевик то всё работает как надо.......

 

Как быть-то???

Снимок1.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
proekt07    25

Может концевик использовать для поднятия флага в программе?

Например,нажали кнопку открыть/закрыть.Ворота открылись,концевик замкнулся.Если концевик замкнулся,поднимаем флаг_открытых_ворот.Если флаг_открытых_ворот поднят,нажатие кнопки открыть/закрыть закрывает ворота.Сбрасываем флаг_открытых_ворот. И наоборот.

Изменено пользователем proekt07

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zodiac21    0

Огромное СПАСИБО!!! Сделал вот-так , всё заработало.....

#include <io.h>
#include <mega8.h>
#include <delay.h>

bit open=0;
bit close=0;

void main(void)
{

PORTD=0x00;
DDRD=0xff;

PORTB=0xff;
DDRB=0x00;


while (1)
    {
     
    if(PINB.0==0)
    {
    PORTD.0=1;
    PORTD.1=0;
    }
    
    if(PINB.1==0)
    {
    open=1;
    PORTD.0=0;
    }
    
    if(open==1&&PINB.0==0)
    {
    PORTD.0=0;
    PORTD.1=1;
    }
    
    if(PINB.2==0)
    {
    close=1;
    PORTD.1=0;
    }
    

    }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
m*****m8    3

Бит "close" сбрасывается на ноль только при сбросе питания. Для этого алгоритма атмега8 слишком жирно. Не учтено - если понадобится срочно закрыть ворота, только начавшие открываться. Придется ждать пока откроются полностью. И наоборот при закрытии. Нет токового реле. Кого-нибудь зажмет и будет давить пока не сгорит движок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vovka    23

А где датчик тока, если под ворота что-то попало?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zodiac21    0

Да. Действительно, датчик нужная вещь. Про него как-то забыл...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Уважаемый bulat943. Подключил RDA. Работает вроде нормально. А не могли вы добавить регулировку громкости кнопками или тем же самым энкодером. А также кнопку засыпания процессора.
    • Конкретней, кто врёт ?  Заводы которые выпускают для промышленности разные комплектующие ?  Для заводов, такие как мы, и прочие радиолюбители и т.д. а также перекупщики брака с заводов, или махинации с документами из среды некоторых руководителей...незначительный брак с штамповкой, маркировкой корпуса или с неуложившимся параметрами бракуются ОТК, потом кто-то наваривается и продаёт этот самый брак нам.  Если это качественные детали воруются со складов, тогда может быть.  Вообще кто знаком с производством любых хороших заводов, знает, что качественную продукцию для промышленности завод никогда не пустит в розничную продажу (то есть сам себе будет работать в убыток). Я написал по отечественной продукции, тоже самое и с зарубежными.
    • http://www.siliconchip.com.au/Issue/2015/August заявлены довольно не плохие параметры для ТАЗа со спойлером
    • усилитель SIEMENS GSM 900 - 1600 руб 4 платы от 3G базовых станций по 400 рублей. Автомобильная антенна на 433 мгц с магнитным креплением за 500 руб.(кабель RG58 - 3метра) Радиостанция Icom ic f310 s VHF - 3000 рублей. Ксв метр Roger RSM-600 - 5000 рублей.  
    • Сверлильный станок сделан из стали.
      Стол 140х110 мм
      Высота 170 мм
      От стойки до центра сверла 70 мм
      Ход 15 мм
      Если у вас есть свой мотор , то можно купить без мотора, одну стойку. C мотором 3000р Без мотора 2000р Почтовые расходы 400р Возможна отправка тк КИТ, Энергия, СДЕК
    • Ага, поставили выходники с пятью пинами и Лин чудесным образ превратился в ultra ld  Поставил спойлер на ТАЗ и он превратился в ultra sport car, тож самое..   
    • Уважаемые мастера, прошу Вас дать оценку моему труду. А именно, попытался раскинуть плату для этой схемы. Делал по примерам с ютуба, немного меняя местами элементы на схеме, чтобы сделать ее более компактной и без  перемычек.  Может с Вашей точки зрения ее еще можно оптимизировать по наилучшему расположению деталей?    ЦМУ-12.lay6