Fórum témák

» Több friss téma
Fórum » MikroPascal kérdések
 
Témaindító: bozsokiandras, idő: Máj 15, 2006
Témakörök:
Lapozás: OK   28 / 29
(#) progee hozzászólása Jan 24, 2018 /
 
Sziasztok!

HDD motor működtetésével kapcsolatban kértem segítséget az arra aktuális topicban, de mivel valószínűleg MikroPascal kód hiba állhat a sikertelenségem mögött, ezért ide is bemásolnál a topic hivatkozását:

HDD motor beüzemelése mikropascal kóddal

Az említett kód 16F628A PIC-hez, mely ULN2003-on keresztül vezérelné a motort:

  1. program HDD_motor;
  2. begin
  3.   delay_ms(100);
  4.   cmcon := 0x07;
  5.  
  6.   trisb := 0;       //B lábak kimenetek
  7.   portb := 0;       //Minden B láb kikapcsol
  8.  
  9.   while true do
  10.   begin
  11.     portb.1 := 1;  //1. tekercs be
  12.     portb.3 := 0;
  13.     delay_ms(100);
  14.    
  15.     portb.2 := 1;  //2.tekercs be
  16.     portb.1 := 0;
  17.     delay_ms(100);
  18.  
  19.     portb.3 := 1;  //3.tekercs be
  20.     portb.2 := 0;
  21.     delay_ms(100);        
  22.   end;
  23. end.
(#) GPeti1977 válasza progee hozzászólására (») Jan 24, 2018 /
 
Miért mit nem csinál? Ha nincs visszacsatolás a motor pozícióról (HALL, back EMF, enkóder) nem biztos hogy forogni fog.
(#) progee válasza GPeti1977 hozzászólására (») Jan 24, 2018 /
 
Nem forog. A hdd motorokon nincs visszacsatolás.

Csak átmásolom ide is a teljes leírást:

Idézet:
„4 kivezetéses HDD motort szeretnék beüzemelni.
Műszerrel kimértem a tekercsek közös pontját, majd egy ULN2003-as modulon keresztül próbálom meghajtani 16F628A PIC-el, melyen mikropascalban írt kód fut.

A kódot 4 tekercsesre módosítva, teszteltem a modulhoz kapott 4 tekercses léptetőmotoron, mely mind a valóságban, mind proteuson tesztelve működik (bár hozzáteszem eléggé lassan).
HDD motornál viszont csak lassú forgást, rángatódzást, ULN2003 melegedést sikerül elérnem.
A mikropascal kódot próbáltam sokféleképpen variálni, netes leírásokra támaszkodva.
(Egymás után léptetve a tekercseket, párosával léptetve a tekercseket, időzítéseken variálni, nyomógombbal csökkenteni az időközöket, ezzel gyorsítani folyamatában)

A motor lábainak bekötése úgy gondolom rendben van, mivel a közös pontot kimértem, 3 tekecsnél pedig nem lehet sorrendet téveszteni.
Vagy a modul gyenge a 12V-os motorhoz, vagy a kódban van a probléma...”


ULN2003 modul
A hozzászólás módosítva: Jan 24, 2018
(#) GPeti1977 válasza progee hozzászólására (») Jan 24, 2018 /
 
Kell hogy legyen, a back emf módszerrel a motor tekercseinek feszültsége leosztva komparátorokat kapcsolgat, ebből lehet tudni hol áll a forgórész és melyik tekercsre kell feszültséget kapcsolni.
(#) progee válasza GPeti1977 hozzászólására (») Jan 24, 2018 /
 
Akkor ez lényegesen bonyolultabb feladat mint ahogyan gondoltam.
Van bárkinek mikropascalban kódja ilyen vezérlésről?
(#) GPeti1977 válasza progee hozzászólására (») Jan 24, 2018 /
 
Nincsen de készítettem hasonlót, rakj fel rá 3 hall IC-t (nézz uána hogyan lesz 60 vagy 120 fokos elhelyezés felhúzóellenállás kell a táp felé kösd bemenetre, nézd meg az mc33035 ic hogyan forgatja a motort, a pdf jében van igazságtáblázat, de a kimeneteket nem kapcsolgatni kell hanem pwm-mel kell változtatni a kitöltést hogy tudd a fordulatszámot változtatni.
(#) progee válasza GPeti1977 hozzászólására (») Jan 24, 2018 /
 
Ez a project sem ma lesz készen
Hall szenzor nélkül is biztosan meg lehet oldani, mert a net tele van ilyen megoldásokkal, a PWM-ben viszont igazad lesz mert sok helyen említik, de egy kész áttekinthető megoldást nem találok.
Találtam viszont kész modult a feladatra kínában:

Hard Drive Controller
(#) GPeti1977 válasza progee hozzászólására (») Jan 24, 2018 /
 
Repülő modell "szabályzó", "ESC" néven is kapsz modellboltban, meg kell egy szervó teszter meghajtani, de ott már erős motort is kapsz.
(#) progee hozzászólása Feb 10, 2018 /
 
PIC kezdőknek topicban kértem segítséget egy 433MHz-es kapcsolással kapcsolatban.
Valószínűnek tartom, hogy szinkronizálási probléma van az adó és a vevő között.
Az alábbi áramkör került megépítésre: Manchester Code Library Demo
A probléma, hogy vezetékkel összekötve a két PIC-et rendben működik a program, viszont rádión, illetve a két PIC-et külön áramforrásról táplálva már csak hibakaraktereket kapok az LCD-n.
Szinkronizálási problémára gyanakszok.
Találkozott már valaki ezzel?
(#) Elektro.on válasza progee hozzászólására (») Feb 10, 2018 /
 
Szia!
Én is ki akarok próbálni egy ilyen modult. De azt olvastam az adatapján, hogy nem tud túl nagy adat sebességet. Én 2400 bps re emlékszem. Ja és a képen nem láttam rajta a 17cm körüli antennát.
A hozzászólás módosítva: Feb 10, 2018
(#) progee válasza Elektro.on hozzászólására (») Feb 10, 2018 /
 
Van rajta antenna. Kipróbáltam többféle netes leírást, és volt ahol feltekerték. Itt is épp úgy lett tesztelve, de azóta már kiegyenesítettem
Kisebbre kellene vennem a PIC sebességét?
(#) Elektro.on válasza progee hozzászólására (») Feb 10, 2018 /
 
Nem a PIC -ét, hanem a komunikáció sebeségét.
Még nem néztem meg, hogy a MikroPascal Manchasterex fügvényei miként működnek.
(#) jocc hozzászólása Okt 6, 2019 /
 
Sziasztok.

Leszedtem a mikroPascal for PIC legújabb fejlesztő környezetét.
Azt tapasztaltam, hogy a szögletes zárójel zárórészét, " ] " nem tudom írni.
Csak ebben a programban nem működik. Nem billentyű hiba.

Találkozott már valaki valami megoldással?
(#) SzilCsong hozzászólása Márc 2, 2021 /
 
Sziaszok

12F683-al próbálok egy nyomógombos bemenetet, de sehogy se reagál, nem érzékeli bemenetként, pedig be van állítva:
  1. trisio.4 :=1;  // nyomogomb
  2.  
  3.  
  4. if  gpio.4= 0 then
  5.  begin
  6.      gpio.2:=1;


Tehát a gpio 2 lenne a kimenet, a gpio4 pedig a bemenet.
nem történik reakció, bárhova kötöm a bemenetet.
(#) jefflynn válasza SzilCsong hozzászólására (») Márc 2, 2021 /
 
Alapból, reset után analógra áll be az összes portláb, ezért nem működik digitális bemenetként.
A hozzászólás módosítva: Márc 2, 2021
(#) SzilCsong válasza jefflynn hozzászólására (») Márc 2, 2021 /
 
Ezen kellene állítani?
  1. ansel:= 0;
  2.    CMCON0 := 7;
(#) jefflynn válasza SzilCsong hozzászólására (») Márc 2, 2021 /
 
Igen.
(#) SzilCsong válasza jefflynn hozzászólására (») Márc 2, 2021 /
 
Az a gáz, hogy nem találok rá példát, ezt is úgy halásztam össze.
Tudnál segíteni, hogy mit kellene módosítani?
(#) jefflynn válasza SzilCsong hozzászólására (») Márc 2, 2021 /
 
Valami hasonló:
  1. ansel:= 0;
  2. CMCON0 := 7;
  3. if  gpio.4= 0 then
  4.  begin
  5.      gpio.2:=1;
(#) SzilCsong válasza jefflynn hozzászólására (») Márc 3, 2021 /
 
Ez nem ugyanaz, amit én írtam?
De mindegy is, mert most épp tönkrement a pk2-m, úgy néz ki amnéziás lett a lelkem, (tegnap még jó volt)
(#) jefflynn válasza SzilCsong hozzászólására (») Márc 3, 2021 /
 
De igen, szerintem az úgy jó.
(#) Elektro.on válasza SzilCsong hozzászólására (») Márc 3, 2021 /
 
A MikroPaskal súgójában ott a példa. Szoftveres pergésmentesítéssel együtt.

Egyéb iránt, ugyan nem látom a kódod többi részét, de ha nem megszakításba teszed akkor pollingolni kéne a port figyelését.
A kódrészletedből csak annyi látszik, hogy egy adott pillanatban beolvassa az állapotát.
(#) SzilCsong válasza jefflynn hozzászólására (») Márc 3, 2021 /
 
Valamiért csak az adc_read működik, tehát csak nem vált át digitális bemenetbe.
De mindegy, jó lesz ez így nekem, most nem sok időm van ezen agyalni, ezzel oldom meg.
Köszi.
(#) SzilCsong válasza Elektro.on hozzászólására (») Márc 3, 2021 /
 
Természetesen végtelen ciklusba van foglalva:
  1. While true do
  2.  begin
(#) ha1drp válasza SzilCsong hozzászólására (») Márc 4, 2021 /
 
Reset után az összes láb bemenet (TRISIO = 0x3F)
Ha kimenetként akarod használni, ekkor törölni kell a lábhoz tartozó bitet itt:
  1. TRISIO.2 := 0;

míg a TRISIO.4 := 1 ; nem szükséges, ha csak nem előtte nem állítottad át.
Mi a helyzet a felhúzó ellenállással ?
(#) SzilCsong hozzászólása Márc 17, 2021 /
 
Hi Urak
Megakadtam egy bugyuta kérdéssel.
Pergésmentesítve akarok egy nyomógombot használni a Button függvénnyel.
  1. var nyomogomb : sbit at gpio.3;
  2. var gomb:  bit ;
  3. var nyomogomb_Direction :  sbit at gpio.3;
  4.  
  5. { Declarations section }
  6.  
  7. begin
  8.  gomb:=  not nyomogomb;
  9. //nyomogomb:= not nyomogomb;
  10.   { Main program }
  11.   trisio.2:=1;
  12.     trisio.0:=0;
  13.   gpio.0:=0;
  14.   CMCON0:=0x07;
  15. //adcon0:=0;      ///
  16. ansel:=0;
  17. while true do
  18.  begin
  19.  gomb:=  not nyomogomb;
  20.  if  Button(gpio,3, 255, 1) then            //255 ms-ig nyomva
  21.  gpio.0:=0 else gpio.0:=1;
  22.  end;
  23. end.


A "Button"-nál a fordító elakad " Identifier "Button" was not declared -----.mpas"

Ami azért furcsa, mert ez egy működő programrészletből másoltam ki, ott működik, itt nem... Furcsa , nincs valakinek ötlete?
(#) nedudgi válasza SzilCsong hozzászólására (») Márc 17, 2021 /
 
A másik programot kellene végigbogarászni, hol deklarálták a "Button"-t.
(#) SzilCsong válasza nedudgi hozzászólására (») Márc 17, 2021 /
 
Köszi a gyors választ, végignéztem és semmi eltérést nem látok, ugyanaz a pic. 12f683. minden ugyanaz.
(#) SzilCsong válasza nedudgi hozzászólására (») Márc 17, 2021 /
 
De egyébként lehet, hogy rosszul értem, de a Button az nem egy beépített függvény?!

"function Button(var port : byte; pin, time, active_state : byte) : byte;"

Akkor ezt nem is kellene deklarálni, de akkor egy új projectnél miért nem működik? Még a Project editor is ugyanolyan
(#) Elektro.on válasza SzilCsong hozzászólására (») Márc 17, 2021 /
 
Szia!

A MikroPascal súgójában minden részlet benne van. Azt olvasd át.
Következő: »»   28 / 29
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem