Нужна помощь в прошивке pic 12f675, таймер для моторчика
Нужна помощь в прошивке pic 12f675, таймер для моторчика
Есть простая схемка для управления двигателем, нужна программа управления в этот контроллер.
Что бы 8 секунд работал мотор потом 2 часа пауза потом РЕВЕРС и опять 8 секунд в работе и 2 часа пауза и так циклически...
Схему прилагаю
Что бы 8 секунд работал мотор потом 2 часа пауза потом РЕВЕРС и опять 8 секунд в работе и 2 часа пауза и так циклически...
Схему прилагаю
- Вложения
-
- реверс.png
- (26.38 КБ) 751 скачивание
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Схемка не совсем корректна...
Да и относительная долговременная точность без кварца +/- минута-две на 2х-часовой выдержке...
Длительность реверса также указывать надо.
Предпочтение графику работы - тогда и самому автору понятнее идея станет...
Ну и в раздел
https://radiokot.ru/forum/viewforum.php?f=53
ежли охота быстрый результат получить.

Да и относительная долговременная точность без кварца +/- минута-две на 2х-часовой выдержке...
Длительность реверса также указывать надо.
Предпочтение графику работы - тогда и самому автору понятнее идея станет...
Ну и в раздел
https://radiokot.ru/forum/viewforum.php?f=53
ежли охота быстрый результат получить.
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
А в чём не коректна схема ? это от инкубатора Блиц..
Плюс минус в паузе это не критично ..
Реверс в работе создаётся автоматически это и есть время в секундах когда моторчик крутится...
Плюс минус в паузе это не критично ..
Реверс в работе создаётся автоматически это и есть время в секундах когда моторчик крутится...
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Код: Выделить всё
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
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Используйте программируемое реле, готовое.
https://www.owen.ru/product/pr110
https://www.owen.ru/product/pr110
ZZZ С Нами Бог ZZZ
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
[uquote="SSkot",url="/forum/viewtopic.php?p=3567693#p3567693"]Используйте программируемое реле, готовое.
https://www.owen.ru/product/pr110[/uquote]
Нахрена такие цены )) когда за 50р можно сделать...
https://www.owen.ru/product/pr110[/uquote]
Нахрена такие цены )) когда за 50р можно сделать...
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
По включению стабилизатора - нет требуемых конденсаторов и обратного диода.
Кроме прочего смысла в резисторе, поднимающем питание над уровнем 5 вольт особо...
Собственно тот, что стоит у МК может вызвать и подвисание программы, если нет соответствующей защиты в случае перепадов напряжения питания. Там для 629/675 пика и 10 мкФ много будет.
Ежли релюшки 5-вольтовые и падение в 0,4 вольта на транзисторах им включаться не дает...
Можно бы полевики логик левел поставить или релюшки высоковольтные с надлежащей развязкой в базах транзисторов...
Вобщем... МНЕ схемка неприятна...
Я б вот такую соорудил
http://img.radiokot.ru/files/20529/1sdoye0aot.GIF
Но то совсем не означает, что она не может иметь существование...

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

Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
[uquote="gariko",url="/forum/viewtopic.php?p=3567698#p3567698"]Нахрена такие цены )) когда за 50р можно сделать...[/uquote]
от задач зависит.
часто копеечная экономия приводит к серьезным тратам.
от задач зависит.
часто копеечная экономия приводит к серьезным тратам.
ZZZ С Нами Бог ZZZ
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Нахрена такие цены )) когда за 50р можно сделать...
Почему бы не показать как надо сделать
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Я "чайник" )) Если есть прошивка HEX, подскажите как её редактировать в какой программе ? куда её нужно конвертнуть ?
Добавлено after 56 seconds:
И какой программатор купить дешёвый на АЛИ для прошивки ?
Добавлено after 56 seconds:
И какой программатор купить дешёвый на АЛИ для прошивки ?
-
const1105
- Вымогатель припоя
- Сообщения: 546
- Зарегистрирован: Сб мар 19, 2011 15:19:47
- Откуда: Владивосток
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Нахрена такие цены )) когда за 50р можно сделать...
Делай, братан!!!
- АлександрЛ
- Друг Кота
- Сообщения: 43781
- Зарегистрирован: Пн ноя 30, 2009 03:00:01
- Откуда: Нерезиновая
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
У вас этот pic 12f675, вместе со схемой уже есть, или вы будете его покупать и делать схему?
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3569179#p3569179"]У вас этот pic 12f675, вместе со схемой уже есть, или вы будете его покупать и делать схему?[/uquote]
Схема есть наверху же здесь, PIC в пути за 50руб..
Схема есть наверху же здесь, PIC в пути за 50руб..
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
[uquote="gariko",url="/forum/viewtopic.php?p=3569130#p3569130"]И какой программатор купить дешёвый на АЛИ для прошивки ?[/uquote]
ICSP only напр PICkit3
ICSP only напр PICkit3
ZZZ С Нами Бог ZZZ
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
[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 в нули)
Автору:
А ещё чтоб не убить ключи от выброса при размыкании реле - поставь диоды, в параллель обмоткам реле, катодом к "+" питания. Например 4148.
Так же поставь входной кондёр на стабилизатор 7805 только с запасом по входному напряжению.
И подтяни к 5 вольтам через резистор 4,7-10 кОм 4 ножку МК, дабы не огрести проблем с наводками и сбросом МК.
Лучше используй схему BOB51, у него это все есть, но ключи можно и биполярники оставить.
Add later
Если до меня не выложат прошивку - приду домой скомпилю.
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
Если до меня не выложат прошивку - приду домой скомпилю.
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Код: Выделить всё
#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 скачивание
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Если до меня не выложат прошивку - приду домой скомпилю
Значит это полная рабочая версия прошивки ? а если всё же без кварца будет работать ? потому что время плюс-минус не очень важно ..
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Ну плюс/минус много. Если на 8 сек тикает на 6 сек. Кстати вот засек 2 часа, с кварцом нормально, светодиод загорелся вовремя.
Чуть позже выложу от внутреннего на 4МГц, но это на свое усмотрение и нужно тестить в реальных условиях. Я не знаю почему у меня так улетает.
Add later:
Код для внутреннего 4МГц. Но либо у меня где-то в оптимизации при компиляции не правильно считает, или нету заявленной калибровки в 1% заводской.
Чуть позже выложу от внутреннего на 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, таймер для моторчика
Deals, ±2 сек на 8 сек - это неправильно. Не должно быть такого.
По ДШ, от 0 до 85 градусов и во всём диапазон питания, ±2% отклонения максимум.
По ДШ, от 0 до 85 градусов и во всём диапазон питания, ±2% отклонения максимум.
Re: Нужна помощь в прошивке pic 12f675, таймер для моторчика
Ну по компилятору XC8:
Впрочем тут все правильно, 4 такта генератора на 1 МЦ (машинный цикл), и умноженное на 1000.
Может у меня не откалиброван. Не знаю в чем причина... может у кого правильно заработает. В коде вроде все ок.
Код: Выделить всё
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))Впрочем тут все правильно, 4 такта генератора на 1 МЦ (машинный цикл), и умноженное на 1000.
Может у меня не откалиброван. Не знаю в чем причина... может у кого правильно заработает. В коде вроде все ок.