Македонски форум за електроника
Дигитална електроника => Микроконтролери => Topic started by: Devil on 03.02.2011, Thursday, 23:36:16
-
Во изработка ми е проект за контрола на чекорни мотори (за тие што незнаат какви се тоа чекорни мотори - stepper motor) со помош на 16F628
Не треба да е нешто сложено со еден куп додатоци, ми треба нешто ептем просто, така да зедов си дизајнирав по сопствени потреби :)
исто така во план е да може да се контролира преку компјутер (RS232), исто така има и надворешни тастерчиња преку кој може да се движи на одредена страна само по 1 чекор (ќе видам можеби ќе го сменам и тоа) а преку компјутерот може да се внесе колку круга сакате да заврти..
Во тек е изработката на софтверот за пикот, кога ќе завршам ќе ја ставам и неа :)
Сега засега само идеата ми е готова ;D, се надевам дека викендов ќе успеам да стигнам до негде со изработката на фирмверот
-
а програма за на ПЦ имаш некоја?Или некој РС232 терминал ќе користиш?
-
преку терминал ќе оди, од пикот испраќа информаци и со помош на тие информации ти му пишиш што треба да направи
сега за сега ќе биде со терминал, работам на некој проект за VB апликации ама ќе видиме ;D
некако тешко оди ова комуникацијата :), не можам да се снајдам :-\
-
а во што имаш напишано програмата,ако може да поставиш кодот!
-
SmallBasic, не ми е сеуште напишана, не можам да се снајдам со кодот :)
не можам да најдам како оди комуникацијата со серискиот порт :(
-
каква е таа SmallBasic?Да не е МикроБејзик на микроелектроника? :-\
-
не нешто на микрософт и уште една некоја фирма е нешто како упростена верзија на VB
поедноставна малку прилично лесна за користење, ако сакаше нешто просто да направиш
викаат прилично моќна програма била, гледам и тетрис имаат правено во неа :)
само што ете нема многу туторијали како што ..
-
аааах...а зашто не ја користиш шемата од борче???
-
Која шема ?
дај линк, плус то вака поинтересно и полесно ми е, сам ќе си наместам се какко што ми одговара најмногу
-
http://elektronika-mk.net/index.php?topic=266.0
повели газда :D
-
не бе ова не ми одговара ваква работа :)
плус то веќе стигнав до негде со програмата, сега работам на контролата, начинот на „придвижување“ по инпулси е готов, сега работам на контрола со тастерите (напред назад) и контролата со серискиот порт ќе остани последна :)
-
и што со тастерите па, може тастерите да се употребуваат на истите влезови што ке се и за паралелната порта...
-
а оти да се користи така кога е ептем просто, зошто да се усложува цел проект толку ?
треба да се местат интераптс па глупости ..
вака местиш тие пинови влезни и кога има 0 дигитално ниво извршува нешто, ако е на Вцц нема да реагира и тераш :)
ако беше за така може да се користи внатрешен осцилатор зошто да користам надворешен.. поедноставно е ;D
-
и што со тастерите па, може тастерите да се употребуваат на истите влезови што ке се и за паралелната порта...
за каква паралелна порта збориш?Да не мислиш на сериска.Доколку за сериската порта мислиш преку нејзе се пренесуваат податоци сериски,но ти неможе да ставиш тастери на таа сериска порта :)
-
и што со тастерите па, може тастерите да се употребуваат на истите влезови што ке се и за паралелната порта...
за каква паралелна порта збориш?Да не мислиш на сериска.Доколку за сериската порта мислиш преку нејзе се пренесуваат податоци сериски,но ти неможе да ставиш тастери на таа сериска порта :)
аааа, грешка сум прочитал, мислев дека збори за паралелна порта...моја грешка е...
-
Откако ќе го завшиш кодот ставиго на форум да го видиме :D ;D.Браво за сработеното !
-
се надевам дека ќе го завршам викендов :)
само ти треба да ми кажиш какви степ мотори ќе се користат, со точни информации
работен напон, колкав степен, каков тип на мотори се биполарни или какви (види таму колку жици имаат и кажи ми ако не знаеш поинаку :))
-
Би требало да користам биполарен со 4 жици и работен напон од 24V-35V но изгледа 24V ќе биде.
-
од кај најде?
од школо ќе земаш или имаш некој низ дома :)
-
Од школо ќе земам за проба после ке си барам ;). Еве нешто околу кодот...
http://www.jasonbabcock.com/computing/breadboard/bipolar/index.html
-
Некој некаква идеа да не има :-\
некако не му се работи на чудово ;D
program Kontrola_test2_tasteri
Symbol LevoLED = PORTA.1
Symbol DesnoLED = PORTA.0
Symbol LevoT = PORTB.0
Symbol DesnoT = PORTB.3
main:
CMCON = 7 'Iskluci komparatori
VRCON = 0 'Konfiguracija na porti
INTCON = 0
PORTA = 0
TRISA = 0
PORTB = 0
TRISB = %11010000 'Konfiguracija za vlezno izlezni porti
'Komandi ako se pritisni Taster
if LevoT = 0
then goto Levo
else goto main
end if
Delay_ms(50)
if DesnoT = 0
then goto Desno
else goto main
end if
delay_ms(50)
goto main
'Od tuka na dolu se komandite za dvizenje na motorot
Levo: 'Komanda za vrtenjemotorot na Levo
LevoLED = 1
Delay_ms(25)
PORTB.4 = 1
Delay_ms(25)
PORTB.4 = 0
PORTB.5 = 1
Delay_ms(25)
PORTB.5 = 0
PORTB.6 = 1
Delay_ms(25)
PORTB.6 = 0
PORTB.7 = 1
Delay_ms(25)
PORTB.7 = 0
Delay_ms(25)
LevoLED = 0
Delay_ms(25)
goto main 'odi na pocetok ako zavrsi so programata
Desno: 'Komanda za vrtenje motorot na Desno
DesnoLED = 1
Delay_ms(25)
PORTB.7 = 1
Delay_ms(25)
PORTB.7 = 0
PORTB.6 = 1
Delay_ms(25)
PORTB.6 = 0
PORTB.5 = 1
Delay_ms(25)
PORTB.5 = 0
PORTB.4 = 1
Delay_ms(25)
PORTB.4 = 0
Delay_ms(25)
DesnoLED = 0
Delay_ms(25)
goto main 'odi na pocetok ako zavrsi so komandata
end. 'kraj na programata
-
моја препорака е во главната програма(Main) да го тргнеш тоа конфигурацијата ТРИСА и ТРИСБ,да ги ставиш над Main-от:
TRISA = 0
TRISB = %11010000 'Konfiguracija za vlezno izlezni porti
main:
CMCON = 7 'Iskluci komparatori
VRCON = 0 'Konfiguracija na porti
INTCON = 0
PORTA = 0
PORTB = 0
Потоа да провериш што вид на мотор е тој мотор.Дали е монофазен или е двофазен.
Трета работа кај што е тоа Десно команда и Лево иди вака:
Desno: 'Komanda za vrtenje motorot na Desno
DesnoLED = 1
Delay_ms(25)
PORTB.7 = 1
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 0
Delay_ms(25) sleden cekor
PORTB.7 = 0
PORTB.6 = 1
PORTB.5 = 0
PORTB.4 = 0
Delay_ms(25) sleden cekor
PORTB.7 = 0
PORTB.6 = 0
PORTB.5 = 1
PORTB.4 = 0
Delay_ms(25) sleden cekor
PORTB.7 = 0
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 1
Delay_ms(25) sleden cekor
PORTB.7 = 1
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 0
Delay_ms(25)
DesnoLED = 0
Delay_ms(25)
goto main
(ova isto ke bide za levo,samo sto obratno)
Ова е за монофазен мотор.
Смени го во шемата стави отпорник со портите каде што се поврзани тастерите спрема +5волти ;)
-
веќе е променато тоа со отпорниците, сега не ми е битен моторот пошто има само лед диоди поврзано па да видиме дали работаат, инаку командите за вртење се точни пошто веќе ги испробав, ама нема врска ќе пробам пак и вака да видма како ќе е
јас мислам дека нешто кај IF функциите не е во ред ама ќе препроверам
-
а провери користи ја наредбата BUTTON за тастерите.
Епа направи вака.Сега и ја забележав, наместо ова:
if LevoT = 0
then goto Levo
else goto main
end if
напиши вака:
if LevoT = 0
then Levo
end if
-
неможи ни вака цело време го прескокнува левиот чекор
нешто со подесувањето на влезно излезните порти не чини, пошто на симулација што и да прицнам само десниот чекор оди правилно левиот не ни сака да го стартова..
ќе пробам со наредбите button ..
Наизменично работи сега со Button наредбата 2 порти одат високо ниво 2 ниско прескокнува се
оди на другата наредба за обратно пак 2 порти високо 2 ниско ;D
како полициско светло е
ако некому му треба за таква работа ќе му го дам кодот ;D
-
а ти го направи за лево кодот обратно?Дека јас ти пишав како да оди десно,а не лево.Лево се ќе биде обратно.А вака да направиш.Истото горе што го пишав за конфигурација на портите.
CMCON = 7 'Iskluci komparatori
VRCON = 0 'Konfiguracija na porti
INTCON = 0
PORTA = 0
TRISA = 0
PORTB = 0
TRISB = %11010000 'Konfiguracija za vlezno izlezni porti
program Kontrola_test2_tasteri
Symbol LevoLED = PORTA.1
Symbol DesnoLED = PORTA.0
Symbol LevoT = PORTB.0
Symbol DesnoT = PORTB.3
main:
Маинот да биде доле и послем со Бутон командата да одиш.Провери го времето многу ти е кратко времето(Delay_ms(25)) стави го малце да биде поголемо.На пример 300мили секунди поради тоа што е кратко трајно тоа време човековото око нема да забележи.Исто така ај постави го кодот,да го видам.Ама тој новиот
-
го заприметив тоа и го сменав ама пак несака
како што сакаш ти со конфигурацијата не може пошто мора командите тие Symbol да се први најгоре па после друго инаку вади ерор
program Kontrola_test3_tasteri
Symbol LevoLED = PORTA.1
Symbol DesnoLED = PORTA.0
Symbol LevoT = PORTB.0
Symbol DesnoT = PORTB.3
CMCON = 7 'Iskluci komparatori
VRCON = 0 'Konfiguracija na porti
INTCON = 0
PORTA = 0
TRISA = 0
PORTB = 0
TRISB = %11010000 'Konfiguracija za vlezno izlezni porti
main:
proverka1:
while true
if Button(PORTB, 0, 1, 1) then
goto proverka2
end if
if Button(PORTB, 0, 1, 0) then
goto Levo
end if
wend
proverka2:
while true
if Button(PORTB, 3, 1, 1) then
goto proverka1
end if
if Button(PORTB, 3, 1, 0) then
goto Desno
end if
wend
Levo: 'Komanda za vrtenje motorot na Desno
PORTA.0 = 1
Delay_ms(300)
PORTB.4 = 1
Delay_ms(300)
PORTB.4 = 0
PORTB.5 = 1
Delay_ms(300)
PORTB.5 = 0
PORTB.6 = 1
Delay_ms(300)
PORTB.6 = 0
PORTB.7 = 1
Delay_ms(300)
PORTB.7 = 0
Delay_ms(300)
PORTA.0 = 0
Delay_ms(300)
goto proverka2
Desno:
PORTA.1 = 1
Delay_ms(300)
PORTB.7 = 1
Delay_ms(300)
PORTB.7 = 0
PORTB.6 = 1
Delay_ms(300)
PORTB.6 = 0
PORTB.5 = 1
Delay_ms(300)
PORTB.5 = 0
PORTB.4 = 1
Delay_ms(300)
PORTB.4 = 0
Delay_ms(300)
PORTA.1 = 0
Delay_ms(300)
goto proverka1
end.
со оваа конфигурација се си е таман влезови ама пак не реагираат копчињата и ништо не работи овај пат :)
-
а ај пробај вака.Каде што е таа команда Button наместо then Goto Proverka2 ти не пишувај goto изостави го.вака мислам
if Button(PORTB, 0, 1, 1) then
proverka2
end if
без Goto,дека ако го има повеќе пати тоа Goto може да се појави грешка.Ова го имам прочитано во книгата што ја имам јас во ПИЦБејзик,поубаво изостави го.
-
знам и јас тоа го прочитав :)
чек сега средив работаат само копчињата и диодите кој покажуваат кое копче е притиснато
program Kontrola_test3_tasteri
Symbol LevoLED = PORTA.1
Symbol DesnoLED = PORTA.0
Symbol LevoT = PORTB.0
Symbol DesnoT = PORTB.3
CMCON = 7 'Iskluci komparatori
VRCON = 0 'Konfiguracija na porti
INTCON = 0
TRISB = %11010000 'Konfiguracija za vlezno izlezni porti
main:
PORTA = 0
TRISA = 0
PORTB = 0
proverka1:
while true
if Button(PORTB, 0, 1, 1) then
goto proverka2
end if
if Button(PORTB, 0, 1, 0) then
goto Levo
end if
wend
proverka2:
while true
if Button(PORTB, 3, 1, 1) then
goto proverka1
end if
if Button(PORTB, 3, 1, 0) then
goto Desno
end if
wend
Levo: 'Komanda za vrtenje motorot na Desno
PORTA.0 = 1
Delay_ms(25)
PORTB.4 = 1
Delay_ms(25)
PORTB.4 = 0
PORTB.5 = 1
Delay_ms(25)
PORTB.5 = 0
PORTB.6 = 1
Delay_ms(25)
PORTB.6 = 0
PORTB.7 = 1
Delay_ms(25)
PORTB.7 = 0
Delay_ms(25)
PORTA.0 = 0
Delay_ms(25)
goto proverka2
Desno:
PORTA.1 = 1
Delay_ms(25)
PORTB.7 = 1
Delay_ms(25)
PORTB.7 = 0
PORTB.6 = 1
Delay_ms(25)
PORTB.6 = 0
PORTB.5 = 1
Delay_ms(25)
PORTB.5 = 0
PORTB.4 = 1
Delay_ms(25)
PORTB.4 = 0
Delay_ms(25)
PORTA.1 = 0
Delay_ms(25)
goto proverka1
end.
со твојата команда вади ерор оти му е непозната функција не е ова PICBasic ова тие mikroBasic и командите му се различни не се исти
-
Девил заврши ли?Го направи,доврши или...?
-
не, не можам да најдам кај е проблемот деновиве ќе почнам од почеток чекор по чекор да го пишувам
пробав сите можни варијанти нема врска де работи де не работи :(
-
вака сега,сумњам дека имаш грешка,каде што ти е поврзан степ моторот.Зошто во програмата го пишуваш ова?-
PORTB.7 = 1
Delay_ms(25)
PORTB.7 = 0
PORTB.6 = 1
Delay_ms(25)
PORTB.6 = 0
PORTB.5 = 1
Delay_ms(25)
PORTB.5 = 0
PORTB.4 = 1
Delay_ms(25)
PORTB.4 = 0
Delay_ms(25)
истото важи и за обратно т.е. да врти моторот лево јас ти наведов во подолните постови,а ти проба ли така??Зборам за ова
Delay_ms(25)
PORTB.7 = 1
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 0
Delay_ms(25) sleden cekor
PORTB.7 = 0
PORTB.6 = 1
PORTB.5 = 0
PORTB.4 = 0
Delay_ms(25) sleden cekor
PORTB.7 = 0
PORTB.6 = 0
PORTB.5 = 1
PORTB.4 = 0
Delay_ms(25) sleden cekor
PORTB.7 = 0
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 1
Delay_ms(25) sleden cekor
PORTB.7 = 1
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 0
Delay_ms(25)
-
пробав така не работи, како што го напишав јас без контрола со тастери си работи нормално
проблем е во контролата со тастерите не во движењето на моторот
пробав со готовите библиотеки за копчиња и со ним не работи
ќе се обратам деновиве до микроелектроника да видиме тие што ќе речеат :)
-
Девил заврши ли?Го направи ова чудо или се мачиш со тоа контролата на моторот?
-
не се ни обидов од последниот пат :)
имав нешто друга работа така да не стигнав :(