Написать ПО для PIC
|
|
| Пн, 10.10.2016, 17:16 | Сообщение # 1
|
SP45
Постов: 2
ОК |
Всем доброго времени. Кто может помочь, а скорее написать программу для управления эл. двигателем.
Принцип работы. <br / задание 1 ) Нажав кратковременно кнопку «в верх» электро двигатель вращает редуктор с тягой, движение тяги ограничен одним конечным выключателем «концевик» , то есть эл.двигатель вращается в одну сторону и поднимает тягу в верх до упора в концевик и эл. двигатель останавливается резко без инерции ( гасит симистор (тормоз) ). И остается в таком положении до сигнала с «датчика», после сигнала (также от сигнала с «датчика» включается световая индикация LED несколько вспышек ) эл. двигатель начинает вращаться в том же направлении (то есть опускает тягу) до концевика. Также возврат в ручную кнопкой «вниз» <br / задание 2 ) Нажав кратковременно кнопку «вверх» эл. двигатель поднимает тягу в верх. И остается в таком положении до сигнала с «датчика», получив сигнал с датчика возвращается обратно в низ и через 10 секунд поднимается, или не дождавшись сигнала через 20 секунд, возвращается обратно в низ и через 10 секунд поднимается, и так бесконечно.
|
|
| Пн, 10.10.2016, 17:52 | Сообщение # 2
|
DEXXTER933659
Постов: 1896
Друзья |
Это Вам к профессионалам обратиться надо....в Сколково.Тут одни любители
|
|
| Пн, 10.10.2016, 18:51 | Сообщение # 3
|
Letalic
Постов: 393
Друзья |
SP45, программатор для пика (на схеме нет его подключения) плюс прога для заливки хекса есть ??? И вот вопрос, у вас выбран пик и на его основе разрисована схема, значит кто то уже часть работы сделал и ее бросил... не понятно. Схема в плохом качестве, и аккуратно, у этого пика RA4 это опен драйн. И еще, у этих пиков есть внутренний генератор если не нужна часовая точность с заделом на месяцы, предлагаю кварц (нет на схеме его частоты) выкинуть. АС это 220В ??? Схема собрана или только в проекте ??? В общем есть над чем поработать при полном согласовании ТЗ.
|
|
| Пн, 10.10.2016, 21:48 | Сообщение # 4
|
SP45
Постов: 2
ОК |
Да программатор есть и проги, поэтому и взял PIC . Схема еще в разработке. Есть в сети одна похожая на ATMEGA но хозяин не откликается (чего то от нее взял). Спасибо все RA без подтяжки, R18,R19 подтяжка. С "датчиком" пока не определился, если будет на оптопаре U11 работать она на сдвоенном транзисторе, то так оставлю. Или просто на транз. или на триггере ( древняя советская была собрана на реле, лапах, Д триггер и тд.) ? Про кварц знал но сомневался. Схема хорошего качества в PDF
|
|
| Вт, 11.10.2016, 00:07 | Сообщение # 5
|
djsanya123
Постов: 1072
Друзья |
алгоритм не сложный можно и самому писать, почитав немного инфы. Основа программы заложена в кнопке и светодиоде(пример). Нажали кнопку (вверх) если на пин А1 = 0 то порт В4=1, дальше он упирается в концевик, если пин В3=0 то пин А1=1>порт В4=0 и порт В5=1 задержка на торможение delay и очищаем все порты в начальное состояние. И тд.Добавлено (11.10.2016, 01:07) --------------------------------------------- по второму заданию все аналогично, только задать условие если нет сигнала с датчика то идет бескончный цикл. Как по мне то все это дело можно собрать на логике без МК, главное пораскинуть мозгами или на десятке релюшек....
|
|
| Вт, 11.10.2016, 11:44 | Сообщение # 6
|
ert_zeb
Постов: 99
ОК |
Можете взять PIC Simulaor IDE. Он позволяет эмулировать работу МК, подавая на него разные сигналы. То есть разработать прямо так, без схемы.
Если же делать на MPLAB, тогда примерно так.
1. создаёте новый проект 2. выбираете МК, программатор, компилятор. 3. выбраете название и кодировку win 1251 4. добаляете главный Сишный файл в исходники. 5. убираете из него всё. оставляете main. добавляете библиотеку МК:
#include <pic16f628a.h>
void main() { }
6. чтобы долго не ползать по описаниям ищете путь установки компилятора. например: Program Files (x86)\Microchip\xc8\v1.30\docs там есть папка chips с файлами описания флагов разных МК. открываете свой 16f628a.html
для этого МК полезен только регистр config добавляете строку вроде
#pragma config "BOREN = OFF", "CPD = OFF"
прописываете в ней нужные флаги.
7. для создания циклограммы создаёте массив и его описание. например:
struct sost_avt { char vrem; char sled_s; };
struct sost_avt spisok_sost [2] = { 1, 1, 1, 0 };
и переменную текущего состояния.
char tek_sost = 0;
этот массив описывает время действия текущего состояния и следующее к которому он перейдёт. в данном случае он условно говоря будет по кругу гонять два состояния каждую секунду.
в подобные массивы также нередко добавляют условия или ссылки на исполняемые подпрограммы и подпрограммы условий.
8. делаете в main подготовительные работы, запускаете цикл, счёт времени и т.д. проверяете и начинаете дорабатывать по своему усмотрению.
|
|