Stegmotorn Tvåfasdrivning Unipolär lindning

Relevanta dokument
Digital Termometer J10 B4 A4 GND GND GND B1 GND GND GND GND B3 A3 +5V +5V A3 +5V A2 +5V +5V A2. +5v B16 A16 UREG UREG B1 6 AC AC A1 6 A6 6

Datakommunikation med IR-ljus.

Introduktionsuppgift till enchipsdatorn.

Digital- och datorteknik

Elektricitet och magnetism. Elektromagneter

Programmera i teknik - kreativa projekt med Arduino

Introduktion till programmering och Python Grundkurs i programmering med Python

Programmering av. PADDY mini

Mekanisk solros, Digitala projekt(edi021) Kristoer Nordvall, Stefan Windfeldt, Inlämmnad: 4 december 2006

BDM12 Användarbeskrivning. Introduktion

Datorteknik 2 (AVR 2)

SNABB-GUIDE FÖR GOOGOL T1 PROGRAMMERING.

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

M7005 och IBR Användarhandbok

BILENS ELFÖRSÖRJNING. DEL 2: GENERATORN

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

web: fax: tel: kontor , Toby Edmundsson mobil: , Jan

Concept V2.6. Quantum. Programmering via modem

ABT Tel: Fax: Org nr CR Fastighetsteknik AB Östra Trädal Ytterby Sweden

Installationsanvisning - Kopplingen mellan GK96 och golf.se -

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

Instruktioner för uppdatering av enheter med ISP

KARMATIC PROFILER 2000 Manual

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager

FÄLTMÄTINSTRUKTION C.A 1510

Systemkonstruktion SERIEKOMMUNIKATION

Om du behöver hjälp. Telia Simka Bruksanvisning

EV3 Roboten. Sida 1 av 13

Förslag: En laddad partikel i ett magnetfält påverkas av kraften F = qvb, dvs B = F qv = 0.31 T.

Guide: Programmera Ryze Tello

Programmera Avant 5 med PC mjukvara

AVR 5. Styrning av trafikljus. Digitala system 15 p

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

M7005 Fischer/Weisser mätstyrningsserver M9003 ersatt med IBR enheter

Laboration Datorteknik TSIU02 2. I/O-programmering

Introduktionsuppgift till enchipsdatorn.

Roboten. Sida 1 av 11

RADIOMOTTAGARE FÖR STYRNING AV RGB-LYSDIODLIST GEMENSAM ANOD

Batteri. Lampa. Strömbrytare. Tungelement. Motstånd. Potentiometer. Fotomotstånd. Kondensator. Lysdiod. Transistor. Motor. Mikrofon.

Ipad i teknikundervisningen

X-Route Användarmanual Innehåll

Instruktion till. PigWin PocketPigs. Del 1 - Installation

Malmqvist, Daniel. Daniel Verhoeff Skickat: den 2 juni :22 Till: Från: Malmqvist, Daniel Ämne: RE: Brana Supporten

FireDTV. FireDTV-T Installationsguide. Boxers digitaltvutbud i Windows MCE Boxer / MCE Sida 1

Datorteknik TSIU02 Lab 2 Morsesändare v0.7

FÄLTMÄTINSTRUKTION TESTO 177-H1

ARCUS i praktiken. Praktikfall: Mätningar på trefasmotorer på bänk.

FÄLTMÄTINSTRUKTION TESTO 174H

Laboration 2 i Datorteknik- Assemblerprogrammering II

Manual Demoväska RFID. Manual Demoväska. Sara Svensson/Monika Lindgren/Fredrik Karlsson Version BnearIT AB 1(17)

WAGO IO System Service Seminar. Diagnostik

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.

LABORATION. Datorteknik Y

Dagens robot. Copyright Sagitta Pedagog AB

Laborationskort - ML4

Flerfunktionell Digitalkamera

Montering av Wisp628.

INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 3 INLEDNING... 4 ATT ANVÄNDA MOTORERNA... 9 LOOP (UPPREPANDE) FUNKTIONEN SKAPA EN EGEN KLOSS...

Cecilia Ingard. Boksidan

Bruksanvisning Bläckfisken USB

Vilken skillnad gör det var du placerar det? Prova båda.

USB till COM-port. Inlämningsuppgift 10b USB till COM-port. Här ska du: Installera en konverterare mellan gränssnitten USB och RS232 (COM-port).

Dataöverföring på Parallell- och serieform MOP 11/12 1

HANTERING AV MÄTDATA FRÅN SVAN 958

Datum Den första bilden i installationsprogrammet visar vilken version det är. Klicka på Nästa eller tryck Enter för att fortsätta.

Användarhandbok OE/OSSpeaker V.10.3

S3 DATOR DATIORINKREMENTALGIV

TSEA28 Datorteknik Y (och U)

Robotfotboll med Arduino

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Elektromekaniska energiomvandlare, speciellt likströmsmaskinen (relevanta delar av kap 7)

RADIOMOTTAGARE RGBW SOM STYR EN GEMENSAM ANOD FÖR LED-strip

Videoapparat SB4714W/2 & SB4701W/A. Installation och handhavande SB4714W/2

Instruktion för installation av etikettskrivare 2.31

Snabbguide Överföring av resultat till PC. systemsure Plus

Sammanfattning av likströmsläran

Modifieringsförslag till Moody Boost

Du har följande material: 1 Kopplingsdäck 2 LM339 4 komparatorer i vardera kapsel. ( ELFA art.nr datablad finns )

Föreläsningsanteckningar 3. Mikroprogrammering II

Koppla spänningsproben till spolen.

Kristina Grundström Erik Truedsson

MANUAL NETALERT FÖR IPHONE VERSION 1.1

Programmering eller Datalogiskt tänkande

Programmering i Scratch 2.0

Inmatningsprogrammet EventManager

Förpackningen innehåler

iloq P10S-programmeringsenhet Manual

Handbok FJÄRRSTYRT RELÄ Typ: RR120X/240X

Datainsamling över Internet

For more information please visit

Instruktion för installation av etikettskrivare 2.27

Anders Arvidsson ROBOTBESKRIVNING. Roboten på bilden är extrautrustad

Personsökare RX-300 Bruksanvisning

Maximanus. Tangenter med speciell betydelse på Maximanus. Uppkoppling

Omgivningstemperatur: -20 C till +50 C

ATU. Användarmanual. Larmöverföringsenhet Firmware Version

INSTALLATIONS MANUAL

Transkript:

Stegmotorn I den här uppgiften skall du styra en stegmotor från din PC. Du skall köra stegmotorn i en sekvens som du anger i PC-programmet med olika riktning, hastighet och antal steg. I en stegmotor har man en permanentmagnetiserad rotor och en flerfasig elektromagnetiskstator.(rotornärdenklumpsomsnurrarinutimotornochstatornärdetsomsitter på väggarna inuti motorn). Genom att successivt ändra strömriktningen genom de olika statorlindningarna kommer statorns resulterande magnetfält att vrida sig, och därmed dramedsigrotorn.rotornärjuiprincipenmagnetsomställerinsigefterdetomgivande magnetfältet(från statorn), på samma sätt som en kompassnål ställer in sig efter det omgivande jordmagnetiska fältet. Det finns i princip tre olika sätt att driva ström genom magnetlindningarna. Det första sättet kallas för enfasdrivning och då låter man det gå ström genom endast en lindning i taget. Det andra sättet är att driva ström genom två lindningar i taget, det kallas för tvåfas. Då blir det resulterande magnetfältet summan av fälten från två lindningar. Det tredje sättet slutligen innebär att man gör en kombination av dessa så att varannan gång driver man ström genom en lindning, och varannan genom två. Det kallas för halvsteg eftersom motorn bara vrider sig hälften så mycket för varje steg Tvåfasdrivning Vi ser ur figuren att när strömriktningen genom den ena spolen växlas, så vrider sig det resulterande magnetfältet 90 grader moturs. För att kunna växla strömmens riktning genom spolen skall den anslutas till omväxlande positiv och negativ spänning. Det kallas för bipolär(två polariteter) matning. Genom att dela upp statorn i flera poler kommer rotorn att vrida sig motsvarande mindre vinkel för varje steg. Normalt är att det går 200 steg på ett varv, men det finns stegmotorer med 500 och kanske ändå fler steg per varv. Vår lilla stegmotor har dock bara 20 steg på ett varv. Unipolär lindning 2003-09-01 Stegmotor-1 PN

För att slippa växla strömriktning genom statorlindningen, men ändå kunna växla riktning på magnetfältet, utformar man lindningarna med ett mitturtag. Genom att ansluta mittuttaget till plus-polen på matningsspänningen och ansluta endera den ena änden eller den andra änden till minus, kan man ändå växla riktning på magnetfältet. Det kallas för unipolär (bara en polaritet) matnig, och det använder vi oss av för att det blir enklare.observera att om man ansluter bägge ändarna till minus blir det resulterande magnetfältet noll. Strömmen genom lindningarna styr man med transistorer som stängs helt eller öppnas helt. Man får därför en relativt liten effektutveckling i själva transistorn trots att den hanterar en stor effekt. Matar man inte in någon ström på basen på transistorn kommer den att vara helt stängd och inte leda någon ström. Om man däremot matar in tillräcklig ström på basen kommer transistorn att vara i stort sett en kortslutning och leda strömmen. Dioden över spolen är till för att ta upp den strömtransient som uppstår när transistorn stänger. Genom att lägga in hög eller låg spänning, dvs en låg eller hög TTL-nivå (0 eller 1) till basmotståndet kan vi således styra strömmen och därmed magnetfältet i motorn. I vilken sekvens skall vi mata ut höga och låga spänningar(dvs1-oroch0-or)tilldefyrastyrtransistorerna för att motorn skall stega halvsteg moturs i figuren? Vi antar att spolarna är lindade så att om en transistor öppnar och släpper igenom ström blir magnetfältet riktat ned norr mot den ledande transistorn. Fas 0 1 2 3 4 5 6 7 8 9 - - - - - - A0 1 A1 0 A2 0 A3 0 Fastabell för 2003-09-01 Stegmotor-2 PN

Stegmotorn sitter monterad på ett separat labkort och får sin kraftförsörjning från moderkortet som det ansluts direkt till. to PC 1 DS1813 VCC 2 RST G ND 3 R S23 2 Co mmunic ation B16 A16 7 2 A6 VDD A0 0. 1u 6 A7 A1 8 A8 A2 9 A9 A3 23 A15 28 A4 27 A5 RST A5 +5 V 21 A10 B0 20 A11 B1 0.1u 18 A12 B2 14 17 B15 B3 15 A14 B4 12 B14 Vc c 8 4 B5 11 A13 Out OSC1 B6 10 B13 5 B7 OSC2 16 B12 D0 19 B11 D1 7 24 B10 D2 1 D3 22 B9 26 B8 IRQ D4 25 B7 D5 14 B6 3 D6 13 B5 VSS D7 B4 A4 B4 B1 A4 A1 B1 A1 B3 B3 A3 A3 +5 V A2 A2 +5v +5v UREG UR EG AC AC A16 B16 A6 PA0 PA0 A7 PA1 PA1 A8 PA2 PA2 A9 PA3 PA3 A15 PA4 PA4 A5 PA5 PA5 A10 PB0 PB0 A11 PB1 PB1 A12 PB2 PB2 B15 PB3 PB3 A14 PB4 PB4 B14 PB5 PB5 A13 PB6 PB6 B13 PB7 PB7 B12 PD0 PD0 B11 PD1 PD1 B10 PD2 PD2 PD3 PD3 B9 B8 PD4 PD4 B7 PD5 PD5 B6 PD6 PD6 B5 PD7 PD7 MC68 HC9 08 J L3 B2 INT INT B2 1k GREEN 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 5V UL N2 00 3 1k 82 O h m STEGMOTOR 32 PI NJL 3 32PINJL3 Styrsignalerna till stegmotorn kommer från datorn via 4 bitar i A-porten. Det är så kopplat att basarna på de fyra drivtransistorerna (som sitter i en integrerad krets ULN2003 på stegmotorkortet) får sina signaler från A-portens bitar A0, A1, A2 och A3. För att få ut styrsignalerna till stegmotorn måste du alltså initiera porten och skicka ut de olika stegmotorfaserna via A-porten. Vi ser i tabellen att man genomlöper åtta magnetiseringstillstånd(faser) om och om igen när motorn roterar. Att stega åt vänster Fas 1 Fas 2 Fas 3 Fas 4 Fas 5 Fas 6 Fas 7 Fas 8 Att stega åt höger De åtta faserna kan vi sätta upp i en tabell. Att stega ett steg åt höger är då att gå ett steg ner i tabellen och att stega åt vänster är att gå ett steg uppåt i tabellen. När man nått botten av tabellen (resp. toppen) börjar man om från början (resp. slutet). Det kallas för wraparound.vi kan när som helst växla riktning på motorn genom att övergå till att stega åt motsatt håll i tabellen För att adressera sig i fastabellen är det lämpligt att använda adresseringsmoden indexerad adressering. Vid stegningen skall man börja med att ändra adressregistret och därefter skicka ut den nya fasen, så att adressregistret efter varje steg pekar på den sist utmatade fasen. Det är nödvändigt för man vet ju inte om man för nästa steg skall gå åt andra hållet i tabellen. Det kan ju komma en order om att börja stega åt motsatt håll. I programmet definierar vi de åtta faserna som stegmotorn har med hjälp av en define byte (DB) sats. 2003-09-01 Stegmotor-3 PN

Kommunikation med PC. Flash-systemets moderkort är bestyckat med kretsar som möjliggör kommunikation med en PC via ett s.k. seriellt gränssnitt, kallat RS-232. Kommunikationen sker mellan en av PC s.k. COM-portar och moderkortet. Den vanligaste användningen av denna kommunikation är vid programmeringen av enchipsdatorns Flash-minne, men vi kan också använda den för att låta PC och enchipsdatorn överföra kommandon och mätdata. Enchipsdatorn använder bit 4 i A-porten för denna kommunikation, och PC använder någon av sina COM-portar. Överföringen sker i 9600 Baud, dvs 9600 bitar per sekund. Eftersom varje tecken kräver totalt 11 bitar (inklusive en startbit och två stoppbitar) kan man överföra c:a 870 tecken per sekund. För att underlätta programmeringen av enchipsdatorn finns en biblioteksfil, kallad RS232.LIB, som innehåller rutiner för sändning och mottagning av tecken, och för sändning av en textsträng till PC. Eftersom enchipsdatorn använder samma bit i A-porten både för sändning och mottagning, kan man naturligtvis inte både sända och mottaga samtidigt. PC-programmet Om man är duktig på att programmera en PC kan man skriva egna program för PC som sänder kommandon och tar emot och visar mätdata från enchipsdatorn. Annars följer det med ett litet program som man kan köra i sin PC. Det är bara att kopiera in EXE-filen på lämpligt ställe i datorn och dubbelklicka på programnamnet så går programmet igång. Det finns inget som man behöver installera. Programmet har ett tabell-formulär i vilket man fyller i den sekvens man önskar att motorn skall köra. I tabellens första kolumn anger man riktningen: höger eller vänster.i denna kolums får man bara skriva H eller V. I mittenkolumnen anger man den hastighet man vill att motorn skall gå med, uttryckt i steg/sekund. I den tredje kolumnen anges antalet steg. Man behöver inte fylla i alla raderna i tabellen. Innan man kan kommunicera med enchipsdatorn måste man öppna kommunikationen. Det gör man genom att välja port och klicka på knappen Öppna. Om den angivna COM-porten finns och är ledig så tilldelas den till detta program av Windows och knappen Öppna avaktiveras. I stället aktiveras knapparna Stäng och Kör första raden och Kör kontinuerligt. När man klickar på Kör första raden sänds informationen på första raden i tabellen iväg till enchipsdatorn och PC ställer sig att vänta på kvittensen S. Under väntan på kvittensen visas texten Väntar på S på knappen. Om det aldrig kommer någon kvittens kan man avbryta väntan genom att klicka på knappen Avbryt. Klickar man på knappen Kör kontinuerligt sänder programmet rad efter rad ur tabellen, och när tabellen är tom eller tar slut, så börjar programmet om från början av tabellen. Man avbryter denna kontinuerliga körning genom att klicka samma knapp, 2003-09-01 Stegmotor-4 PN

som nu har bytt text till STOPP. Man kan också avbryta genom att klicka på knappen Avbryt. Innan man får avsluta programmet genom att klicka på korset längst upp i högra hörnet, måste man stänga kommunikationen med COM-porten, och därmed frigöra den för andra program. Det gör du genom att klicka på knappen Stäng. Uppgift: Stegmotorn skall utföra de steg som den får order om från programmet i PC. I PC-programmet kan man i en tabell ange riktning, hastighet och antal steg som stegmotorn skall utföra. Hastigheten anges i steg per sekund, men när informationen skickas över till enchipsdatorn räknar PC-programmet om hastigheten till väntetid i millisekunder per steg. D.v.s om man angett hastigheten 50 steg/sek så skickar PC-programmet över talet 020 millisekunder/steg. När stegmotorn gått det antal steg somdenfåttorderom,skickardenett S tillbakatillpc.pcskickardåövernästaorder med riktning, väntetid och antal steg. En order från PC till enchipsdatorn kan alltså se ut så här: H025275 och innebär att motorn skall gå åt höger (H) med hastigheten 40 steg/sekund (025), i 275 steg (275). Den information som PC-programmet skickar till enchipsdatorn kommer som en sträng med 7 st. ASCII-tecken, dvs som ett antal bokstäver efter varandra. Du måste därför göra om de textsträngar som anger väntetid och antal steg till binära tal, så att enchipsdatorn kan räkna med dem. Det gör du lämpligen med den bibliotesrutin som ligger i filen ASCII2BIN.LIB. För att få motorn att gå med önskad hastighet måste du skriva en vänterutin som skall anropas för varje steg som motorn tar. Ingångsparametern till vänterutinen är den väntetid som du fått från PC, och som ligger i 16-bits variabeln TID. Koden för vänterutinen skulle exempelvis kunna se ut så här: WAIT: STHX HXTEMP ;Mellanspara HX LDHX TID ;Hämta önskad väntetid i ms W0: CPHX #0 ;Klar? BNE W1 LDHX HXTEMP ;Återhämta HX RTS W1: LDA #246 ;Loop som tar 1 millisekund 1MS: DEC A ;tidsutfyllnad 2003-09-01 Stegmotor-5 PN

BNE 1MS ; 1 ms loopen AIX #$FF ;minska räknare med 1 BRA W0 ;..och loopa För att få ordentlig struktur på programmet bör du skriva subrutiner för att stega ett antal steg till höger resp. ett antal steg till vänster. Indexregistret använder vi till att peka in i fastabellen. Den måste därför initieras att peka på början av fastabellen i programmets början. Därefter ändras indexregistret bara av rutinerna som stegar åt höger och vänster. Om vi använder det registret till något annat måste dess innehåll räddas undan temporärt och därefter återställas. Det gör vi i vänterutinen där vi behöver använda indexregistret temporärt. Subrutinen för att köra motorn åt höger det antal steg som står i 16bits-variabeln STEP skulle kunna se ut så här: Right: LDHX STEP ;Hämta stegräknaren CPHX #0 ;Är den noll BEQ RUT ;... i så fall sluta AIX #$FF ;Minska med 1 STHX STEP ;Spara stegräknaren LDHX FASPEK ;Återhämta faspekaren MOV,X+,PORTA ;Lägg ut senaste mönster CPHX #FAS+8 ;Nått slutet av tabellen? BNE R1 LDHX #FAS ;Återladda från början R1: STHX FASPEK ;Spara faspekaren RUT: JSR WAIT ;Vänta lagom tid BRA Right ;... och loopa RTS Utgående från denna rutin som stegar åt höger får du själv skriva en rutin som stegar åt vänster. 2003-06-05 Stegmotor-6 PN

Initiera A-Porten Ladda faspekaren Läs i och spara riktningen Hämta väntetextens tre bytar och lagra dem Hämta antal steg och lagra dem Konvertera väntetexten till väntetal Konvertera antalet steg till tal Var det Höger Var det Vänster Kör åt höger Kör åt Vänster Kvittera ett "S" Flödesschema över stegmotorprogrammet 2003-06-05 Stegmotor-7 PN