Нужна помощь в прошивке pic 12f675, таймер для моторчика

Поклонники продукции Microchip Technology Inc тусуются тут.
gariko
Открыл глаза
Сообщения: 57
Зарегистрирован: Пн фев 23, 2015 12:42:20
Откуда: Башкортостан

Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение gariko »

Есть простая схемка для управления двигателем, нужна программа управления в этот контроллер.
Что бы 8 секунд работал мотор потом 2 часа пауза потом РЕВЕРС и опять 8 секунд в работе и 2 часа пауза и так циклически...
Схему прилагаю
Вложения
реверс.png
(26.38 КБ) 751 скачивание
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение BOB51 »

Схемка не совсем корректна...
Да и относительная долговременная точность без кварца +/- минута-две на 2х-часовой выдержке...
Длительность реверса также указывать надо.
Предпочтение графику работы - тогда и самому автору понятнее идея станет...
Ну и в раздел
https://radiokot.ru/forum/viewforum.php?f=53
ежли охота быстрый результат получить.
:roll:
gariko
Открыл глаза
Сообщения: 57
Зарегистрирован: Пн фев 23, 2015 12:42:20
Откуда: Башкортостан

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение gariko »

А в чём не коректна схема ? это от инкубатора Блиц..
Плюс минус в паузе это не критично ..
Реверс в работе создаётся автоматически это и есть время в секундах когда моторчик крутится...
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение pyzhman »

Код: Выделить всё

TRISIO= 0xFC;
while(1)
{
GPIO= 0x01;
delay_ms(8000);
GPIO= 0x00;
delay_ms(7200000);
GPIO= 0x02;
delay_ms(8000);
GPIO= 0x00;
delay_ms(7200000);
}
Docendo discimus
Аватара пользователя
SSkot
Друг Кота
Сообщения: 3495
Зарегистрирован: Пн июл 23, 2018 10:36:20
Откуда: Казань

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение SSkot »

Используйте программируемое реле, готовое.
https://www.owen.ru/product/pr110
ZZZ С Нами Бог ZZZ
gariko
Открыл глаза
Сообщения: 57
Зарегистрирован: Пн фев 23, 2015 12:42:20
Откуда: Башкортостан

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение gariko »

[uquote="SSkot",url="/forum/viewtopic.php?p=3567693#p3567693"]Используйте программируемое реле, готовое.
https://www.owen.ru/product/pr110[/uquote]
Нахрена такие цены )) когда за 50р можно сделать...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение BOB51 »

По включению стабилизатора - нет требуемых конденсаторов и обратного диода.
Кроме прочего смысла в резисторе, поднимающем питание над уровнем 5 вольт особо... :dont_know:
Собственно тот, что стоит у МК может вызвать и подвисание программы, если нет соответствующей защиты в случае перепадов напряжения питания. Там для 629/675 пика и 10 мкФ много будет.
Ежли релюшки 5-вольтовые и падение в 0,4 вольта на транзисторах им включаться не дает...
Можно бы полевики логик левел поставить или релюшки высоковольтные с надлежащей развязкой в базах транзисторов...
Вобщем... МНЕ схемка неприятна...
Я б вот такую соорудил
http://img.radiokot.ru/files/20529/1sdoye0aot.GIF
:roll:
Но то совсем не означает, что она не может иметь существование...
:tea:
Аватара пользователя
SSkot
Друг Кота
Сообщения: 3495
Зарегистрирован: Пн июл 23, 2018 10:36:20
Откуда: Казань

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение SSkot »

[uquote="gariko",url="/forum/viewtopic.php?p=3567698#p3567698"]Нахрена такие цены )) когда за 50р можно сделать...[/uquote]

от задач зависит.
часто копеечная экономия приводит к серьезным тратам.
ZZZ С Нами Бог ZZZ
pcb432
Мудрый кот
Сообщения: 1808
Зарегистрирован: Пт мар 26, 2010 17:16:52
Откуда: Kazan

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение pcb432 »

Нахрена такие цены )) когда за 50р можно сделать...

Почему бы не показать как надо сделать :)
gariko
Открыл глаза
Сообщения: 57
Зарегистрирован: Пн фев 23, 2015 12:42:20
Откуда: Башкортостан

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение gariko »

Я "чайник" )) Если есть прошивка HEX, подскажите как её редактировать в какой программе ? куда её нужно конвертнуть ?

Добавлено after 56 seconds:
И какой программатор купить дешёвый на АЛИ для прошивки ?
const1105
Вымогатель припоя
Сообщения: 546
Зарегистрирован: Сб мар 19, 2011 15:19:47
Откуда: Владивосток

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение const1105 »

Нахрена такие цены )) когда за 50р можно сделать...

Делай, братан!!!
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43785
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение АлександрЛ »

У вас этот pic 12f675, вместе со схемой уже есть, или вы будете его покупать и делать схему?
gariko
Открыл глаза
Сообщения: 57
Зарегистрирован: Пн фев 23, 2015 12:42:20
Откуда: Башкортостан

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение gariko »

[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3569179#p3569179"]У вас этот pic 12f675, вместе со схемой уже есть, или вы будете его покупать и делать схему?[/uquote]
Схема есть наверху же здесь, PIC в пути за 50руб..
Аватара пользователя
SSkot
Друг Кота
Сообщения: 3495
Зарегистрирован: Пн июл 23, 2018 10:36:20
Откуда: Казань

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение SSkot »

[uquote="gariko",url="/forum/viewtopic.php?p=3569130#p3569130"]И какой программатор купить дешёвый на АЛИ для прошивки ?[/uquote]
ICSP only напр PICkit3
ZZZ С Нами Бог ZZZ
Аватара пользователя
Deals
Встал на лапы
Сообщения: 125
Зарегистрирован: Ср май 05, 2010 19:03:14
Откуда: Украина

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение Deals »

[uquote="pyzhman",url="/forum/viewtopic.php?p=3567652#p3567652"]TRISIO= 0xFC;
while(1)
{
GPIO= 0x01;
delay_ms(8000);
GPIO= 0x00;
delay_ms(7200000);
GPIO= 0x02
delay_ms(8000);
GPIO= 0x00;
delay_ms(7200000);
}[/uquote]
Ещё выключить компараторы CMCON(CM0, CM1, CM2 в единицу), а т.к. это 675, то и АЦП оффнуть, ANSEL(ANS0, ANS1, ANS2, ANS3 в нули)
Datasheet писал(а):The ANSEL (9Fh) and CMCON (19h)
registers (9Fh) must be initialized to
configure an analog channel as a digital
input. Pins configured as analog inputs will
read ‘0’. The ANSEL register is defined for
the PIC12F675.

Автору:
А ещё чтоб не убить ключи от выброса при размыкании реле - поставь диоды, в параллель обмоткам реле, катодом к "+" питания. Например 4148.
Так же поставь входной кондёр на стабилизатор 7805 только с запасом по входному напряжению.
И подтяни к 5 вольтам через резистор 4,7-10 кОм 4 ножку МК, дабы не огрести проблем с наводками и сбросом МК.
Лучше используй схему BOB51, у него это все есть, но ключи можно и биполярники оставить.
Add later
Если до меня не выложат прошивку - приду домой скомпилю.
Аватара пользователя
Deals
Встал на лапы
Сообщения: 125
Зарегистрирован: Ср май 05, 2010 19:03:14
Откуда: Украина

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение Deals »

Код: Выделить всё

#include <xc.h>
#include "pic12f675.h"

#pragma config FOSC = LP       // Oscillator Selection bits (LP oscillator: Low power crystal on GP4/OSC2/CLKOUT and GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = ON       // GP3/MCLR pin function select (GP3/MCLR pin function is MCLR)
#pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#define _XTAL_FREQ 32768

void main(void) {
    GPIO = 0x00;
    CMCON = 0x07;
    ANSEL = 0x00;
    TRISIO = 0xFC;

    while(1)
    {
        GPIO = 0x01;
        __delay_ms(8000);
        GPIO = 0x00;
        __delay_ms(6000000);
        __delay_ms(1200000);
        GPIO = 0x02;
        __delay_ms(8000);
        GPIO = 0x00;
        __delay_ms(6000000);
        __delay_ms(1200000);
    }
    return;
}

Без кварца частота уплывает за каждые 8 сек на 1-2 секунды. Итог будет ужасен.
Тестил в реальных условиях на чипе который имеется.
Выше прошивка на кварц 32768Hz. Подключать на 2 и 3 выводы с конденсаторами 15-30pF.
Кварц можно выдрать из любых часов. Они обычно все там на 32768
Изображение
Вложения
production.hex
(584 байт) 441 скачивание
gariko
Открыл глаза
Сообщения: 57
Зарегистрирован: Пн фев 23, 2015 12:42:20
Откуда: Башкортостан

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение gariko »

Если до меня не выложат прошивку - приду домой скомпилю

Значит это полная рабочая версия прошивки ? а если всё же без кварца будет работать ? потому что время плюс-минус не очень важно ..
Аватара пользователя
Deals
Встал на лапы
Сообщения: 125
Зарегистрирован: Ср май 05, 2010 19:03:14
Откуда: Украина

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение Deals »

Ну плюс/минус много. Если на 8 сек тикает на 6 сек. Кстати вот засек 2 часа, с кварцом нормально, светодиод загорелся вовремя.
Чуть позже выложу от внутреннего на 4МГц, но это на свое усмотрение и нужно тестить в реальных условиях. Я не знаю почему у меня так улетает.
Add later:

Код: Выделить всё

#include <xc.h>
#include "pic12f675.h"

#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = ON       // GP3/MCLR pin function select (GP3/MCLR pin function is MCLR)
#pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#define _XTAL_FREQ 4000000

void main(void) {
    GPIO = 0x00;
    CMCON = 0x07;
    ANSEL = 0x00;
    TRISIO = 0xFC;
   
    unsigned char i = 0;

    while(1)
    {
        GPIO = 0x01;
        __delay_ms(8000);
        GPIO = 0x00;
        for ( i = 144; i > 0; i-- )
            __delay_ms(50000);
        GPIO = 0x02;
        __delay_ms(8000);
        GPIO = 0x00;
        for ( i = 144; i > 0; i-- )
            __delay_ms(50000);
    }
    return;
}

Код для внутреннего 4МГц. Но либо у меня где-то в оптимизации при компиляции не правильно считает, или нету заявленной калибровки в 1% заводской.
Вложения
production_4mhz.hex
(580 байт) 300 скачиваний
Последний раз редактировалось Deals Чт фев 14, 2019 23:20:27, всего редактировалось 1 раз.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение Аlex »

Deals, ±2 сек на 8 сек - это неправильно. Не должно быть такого.
По ДШ, от 0 до 85 градусов и во всём диапазон питания, ±2% отклонения максимум.
Аватара пользователя
Deals
Встал на лапы
Сообщения: 125
Зарегистрирован: Ср май 05, 2010 19:03:14
Откуда: Украина

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика

Сообщение Deals »

Ну по компилятору XC8:

Код: Выделить всё

#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))

Впрочем тут все правильно, 4 такта генератора на 1 МЦ (машинный цикл), и умноженное на 1000.
Может у меня не откалиброван. Не знаю в чем причина... может у кого правильно заработает. В коде вроде все ок.
Ответить

Вернуться в «PIC»