Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Ovládání krokových motorů přes AT89C2051 nefunguje

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
frenkie1988



Založen: Apr 14, 2010
Příspěvky: 1

PříspěvekZaslal: st duben 14 2010, 9:32    Předmět: Ovládání krokových motorů přes AT89C2051 nefunguje Citovat

Dobrý den. Mám menší problém. Zadání mé úlohy je ovládat dva krokové motory přes mikrokontrolér AT89C2051. Jedná se o polohovací zařízení na kameru. Mám 4 tlačítka na vstupu připojené na bránu P3 (leva - P3.3, prava - P3.2, nahoru - P3.1, dolu - 3.0). Je to zapojené tak, že na vstupu daného portu je vždy log.1, po stisku tlačítka se obvod uzavře přes indikační diodu a předřadný odpor 220ohm k zemi a na vstupu se objeví log.0. Tato část funguje. Problém ovšem nastává na výstupu. Pro zkoušku je nahrán program na střídání log.1 a 0 na jednotlivých bitech portu P3.

Projekt se skládá ze dvou plošných spojů. Jeden řídící (na obrázku vlevo od Atmel) a výkonovou část (vpravo od Atmel) a je to propojeno přes svorkovnice. Tento program oživí Atmel pouze na 6 z 8 bitů portů brány P3. Střídavě má vždy cca 2s log1 a 0. Kromě dvou P1.0 a P1.1. Ovšem když připojím výkonovou část s tranzistory, tak na výstupu je stále 0,6V. Kromě tedy zase té P1.1,P1.0.

Když byl nahrán program na řízení motorů tak na P1.4-P1.7 při držení tlačítka se napětí na výstupu pohybovalo vždy mezi 0,2 - 0,4V. Bylo viditelné okem na měřáku, tedy zpoždění by mělo být v pořádku. Při stisku myslím 2 tlačítek napětí také skákalo mezi 0,2 až 0,4 ale vždy se jednou vrátilo na 0 a podruhé na 0,6V asi.

Mám dva mikroprocesory. Jeden jsem zjistil že je asi vadný, ale zkoušel jsem to i s druhým novým a pořád to samé.

Krokové motory jsou použité z tiskáren HP deskjet 690c. s označením PM35L-048-HPD4. Má 5 vývodů, řízení unipolární, podle popisu výrobce napájen 24V DC.

Nemáte někdo nějakou radu kde by mohl být problém? Po pár debatách jsme usoudili jestli použité tranzistory nejsou pořád sepnuty k zemi a nebo je třeba nahradit Darlingtonovým zapojením (např. TIP122).


Předem děkuji za rady.


schéma zapojení:

[img=http://www.freeimagehosting.net/uploads/th.74f9cf2e47.jpg]


zde je program na řízení motorů, jestli je úplně dobře zatím netuším, nespínají ty tranzistory.

include REG51.INC

org 0
sjmp start


org 30h
start:
clr P3.7 ;rozsvícení diody napajájecí:

testovani_vstupu:

jnb P3.3,LEVA ;jump if not bit
jnb P3.2,PRAVA
jnb P3.1,NAHORU
jnb P3.0,DOLU

sjmp testovani_vstupu;

LEVA:
mov P1,#00000011b ;1,3 – L 2,4 - P
acall zpozdeni
mov P1,#00000110b
acall zpozdeni
mov P1,#00001100b
acall zpozdeni
mov P1,#00001001b
acall zpozdeni
sjmp testovani_vstupu

PRAVA:
mov P1,#00001001b
acall zpozdeni
mov P1,#00001100b
acall zpozdeni
mov P1,#00000110b
acall zpozdeni
mov P1,#00000011b
acall zpozdeni
sjmp testovani_vstupu

NAHORU:
mov P1,#00110000b
acall zpozdeni
mov P1,#01100000b
acall zpozdeni
mov P1,#11000000b
acall zpozdeni
mov P1,#10010000b
acall zpozdeni
sjmp testovani_vstupu

DOLU:
mov P1,#10010000b
acall zpozdeni
mov P1,#11000000b
acall zpozdeni
mov P1,#01100000b
acall zpozdeni
mov P1,#00110000b
acall zpozdeni
sjmp testovani_vstupu ;short jump – po projeti cyklu testuje zda je ještě „0“

zpozdeni: mov r3,#5
cek2: mov r2,#100
cek1: mov r1,#150
djnz r1,$
djnz r2,cek1
djnz r3,cek2

ret ;vyskočení z podprogramu
end ;ukončení programu[img][/img][img][/img]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st duben 14 2010, 9:47    Předmět: Citovat

P1.0 a P1.1 vyžadují externí pull-up odpory kvůli internímu komparátoru .

Měl bys nejspíš nějak definovat stav P1 po startu a po vyskočení z jednotlivých podprogramů.

_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Standa33



Založen: Nov 07, 2009
Příspěvky: 295

PříspěvekZaslal: st duben 14 2010, 10:14    Předmět: Citovat

Zkus na výstupy uP připojit jen (8x LED s odpory), zpozdeni nastav na cca 1s. Každý stav pak bude "vidět" po dobu 1s - otestuješ funkce programu.

Poté zapoj žárovky do kolektorů tran. - otestuješ zda správně spínají tranzistory.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.18 sekund