Digital pulsgivare. Lyxvarianten Optisk avkänning. Mekanisk avkänning. Lägsta 2st Optiska Läsgafflar. 2st Fjädrande kontakter Kontaktmönster

Relevanta dokument
Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Tillståndsmaskiner. 1 Konvertering mellan Mealy och Moore. Ola Dahl och Mattias Krysander Linköpings tekniska högskola, ISY, Datorteknik

ELEV- HANDLEDNING (Ansökan via webben)

Rallylydnad Nybörjarklass

Individuellt Mjukvaruutvecklingsprojekt

Regler för Standard/Mini-Sumo under Robot-SM 2011

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

4 nödsamtal. SOS-operatören trycker nu på en knapp för att få fram telefonnummer och adress till telefonen pojken ringer från.

Sveriges Trafikskolors Riksförbund Film om körkort för nysvenskar Speakertext - Svensk

David Wessman, Lund, 30 oktober 2014 Statistisk Termodynamik - Kapitel 5. Sammanfattning av Gunnar Ohléns bok Statistisk Termodynamik.

Sammanfattning på lättläst svenska

Lathund, procent med bråk, åk 8

Bruksanvisning - Spisvakt Prefi 2.3

4-6 Trianglar Namn:..

Två konstiga klockor

Webb-bidrag. Sök bidrag på webben Gäller från

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Kom-igång VictorReader Stratus 4 H som taltidningsspelare Ver

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Du ska nu skapa ett litet program som skriver ut Hello World.

Skriva B gammalt nationellt prov

Hel tjänstledighet för att prova annan anställning inom Göteborgs universitet.

Snabbhjälp till. Kristian. elevdata.se

Hur skapar man formula r

När jag har arbetat klart med det här området ska jag:

TIMREDOVISNINGSSYSTEM

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Tränarguide del 1. Mattelek.

Manual för Min sida 1/ rev

APEX Flex ProChip System

Predikan Lyssna! 1 maj 2016

Menys webbaserade kurser manual för kursdeltagare. Utbildningsplattform: Fronter

Träning i bevisföring

Säkerhet. De onda. Vilka är farorna?

Start. Mål. Rallylydnad Nybörjarklass. Mom nr Skylt Beskrivning

Ha det kul med att förmedla och utveckla ett knepigt område!

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Anva ndarhja lp IMYR -Myndighetsrapportering

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Skapa en rapport med snygg formatering, rubriker, sidnummer och innehållsförteckning

Kiwiböckerna metod och begrepp

FORTNOX SMÅFÖRETAGENS BÄSTA VÄN. Fortnox kom igång guide Praktisk bokföring. En guide för dig som vill komma igång med bokföring i Fortnox

Administration Excelimport

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

Snabbslumpade uppgifter från flera moment.

Ändra föreningsuppgifter i föreningsregistret i Interbook

Arbeta bäst där du är Dialect Unified Mi

Manual för BPSD registret. Version 6 /

Gissa det hemliga talet

433 MHZ Termometer Bruksanvisning

Repetitivt arbete ska minska

En grafisk guide till vår identitet

Bemanningsindikatorn Q1 2015

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

Föreläsning 5: Rekursion

Särskilt stöd i grundskolan

Vi skall skriva uppsats

Att komma igång. Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Hävarmen. Peter Kock

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

Förväntansdokument Bodals Skola F-9

Hemsida Arbetsrum. Skapa arbetsrumslista

ANVÄNDARHANDLEDNING FÖR

Vehicle Security System VSS3 - Vehicle original remote

Sammanfattning av kursdag 2, i Stra ngna s och Eskilstuna

Svensk Bruksanvisning

Notera att illustrationerna i denna broschyr är förenklade.

Statsbidrag för läxhjälp till huvudmän 2016

MANUAL TILL AVTALSMALL FÖR KIST- OCH URNTRANSPORTER

Kom-igång VictorReader Stratus 4 H som taltidningsspelare

Elektricitet och magnetism

Felanmälan eller Arbetsorder

Nr 109/2008 (sid 1 av 5) DagligaTENDENSer

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Lisa besöker pappa i fängelset.

BÅGSKYTTEFÖRBUNDET MEMBER OF SVERIGES RIKSIDROTTSFÖRBUND AND FÉDERATION INTERNATIONALE DE TIR A L ARC

Microprocessor / Microcontroller

Statistik Äldre hjälpsökande hos Brottsofferjouren

Mätning av effekter. Vad är elektrisk effekt? Vad är aktiv-, skenbar- reaktiv- medel- och direkteffekt samt effektfaktor?

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Företagsamhetsmätning Kronobergs län JOHAN KREICBERGS HÖSTEN 2010

85 % produkterna som annonseras. har köpt något de läst om i tidningen. ANNONSFAKTA & PRISLISTA 2016

Scoot Boot - frågor & svar

Systematiskt kvalitetsarbete

Föreläsning 1 i Elektronik ESS010

Utvärdering APL frågor till praktikant

Manual Gamla Akka-plattan

Assistenten instruktioner Starta assistenten

Axiell Arena. Samarbeta om bilder Regionbiblioteket i Kalmar län

Virkade tofflor. Storlek & By: Pratamedrut. pratamedrut.se/blog/virkade tofflor 1

Tunadalskyrkan i advent Ep 2 Petr 1: Profetorden en lampa i mörkret

Datorövning 2 Statistik med Excel (Office 2007, svenska)

Lathund för validering av avhandlingar i LUCRIS

Manual HSB Webb brf

Transkript:

Digital pulsgivare Inkrementella pulsgivare, vinkel Mekanisk avkänning Lyxvarianten Optisk avkänning Lågpriskomponenten Lägsta 2st Optiska Läsgafflar 2st Fjädrande kontakter Kontaktmönster Hål/Spalt-skiva

Pulsgivaren Rotations-Pulsgivare (RPG) används ofta som digitala vinkelgivare i industrin, men de används numera även som inställningsrattar och vred i hemelektronik ( Jog up/down ). De senare typerna har mekaniska kontakter och masstillverkas till låga priser (det finns pulsgivare från c:a 20:-), så det finns all anledning att bekanta sig med givartypen. ett snäpp För varje snäpp med pulsgivarens axel så förflyttar man sig ett varv i tillståndsdiagrammet. Gray-kod: 00 01 11 10

Tillståndsdiagrammet Givarens fyra kontakttillstånd kan ritas upp i ett tillstånds-diagram. Mellan de fyra tillstånden finns det totalt 16 olika övergångar ( pilar i diagrammet ). De fyra diagonala tillstånden är egentligen "omöjliga" och kan bara uppstå av störningar, eller om man missat en avläsning. Man kan tillexempel räkna upp antalet snäpp (+1) var gång man gått från 00 01 i tillståndsdiagrammet, och ned (-1) vid 01 00.

( Digital interpolering ) Fyrfaldigt ökad upplösning är möjlig. -1-1 +1 +1 +1 +1-1 -1

( Referenspuls ) Inkrementala givare bygger på att man räknar och följer med alla förändringar. Man måste då veta var man befinner sig från början? Ett tredje givare Z ger en referenspuls en gång per varv.

( Binära konstanter ) Kompilatorn Cc5x tillåter binära konstanter (finns ej i ANSI-C). Man kan dessutom placera ut punkter för att markera vilka bitar som hör ihop och bildar grupper. Punkterna har ingen betydelse förutom att förtydliga koden. ex. old new 0b00.00 0 0b00.01 1 0b01.01 5 0b01.00 4 Så här kan man använda de binära konstanterna för att beteckna tillståndsövergångarna.

Räkna pulser Man lagrar det föregående tillståndet för att jämföra detta med det nuvarande tillståndet. Varje pil i tillståndsdiagrammet består av ett sådant tillståndspar old.new. Ett enkelt sätt att avläsa givaren är att räkna upp positionen vid pilen 00.01 och ned positionen vid pilen 01.00. Även om kontakten studsar blir "nettoresultatet" det rätta, eftersom man ju alltid måste gå den ena vägen en gång mer än den andra för att byta tillstånd.

while(1) { /* read encoder new value */ old_new.0 = A; old_new.1 = B; /* compare with old value */ if( old_new == 0b00.01 ) cnt--; if( old_new == 0b01.00 ) cnt++; /* replace old values with new values */ old_new.2 = old_new.0; old_new.3 = old_new.1; } /* this part takes long time! */ if(cnt!= oldcnt) /* print value if changed? */ printf("position: %d\r\n", cnt); oldcnt = cnt; /* update oldcnt */ snabbt 6 µs långsamt Pulser under printf() missas!

Interrupt? Medan processorn skriver ut positionen med printf() kan den inte samtidigt läsa av pulsgivaren då kan den missa pulser! Interrupt on change. PORTB har möjlighet att ge avbrott vid förändringar. Om det i stället är avbrottsrutinen som registrerar pulsgivaren så missar man inga pulser. printf() får nu inte använda bitbanging avbrotten skulle hacka sönder seriekommunikationen. printf() måste använda den självgående EUSART-enheten som inte störs av interrupt.

Polling och Interrupt Antag att Du sitter i en skön fåtölj och läser en bok. Plötsligt blir Du avbruten av att telefonen ringer, Du markerar med en blyertspenna var i boken Du befann dig och svarar. Under samtalet ringer det på dörrklockan och Du ber den Du talar med i telefonen med att dröja kvar medan Du går till dörren.

Interrupt När Du är färdig med ärendet vid dörren återupptar Du telefonsamtalet. När Du efter ett tag har talat färdigt i telefonen och avslutat telefonsamtalet kan Du återvända till fåtöljen och fortsätta med att läsa den goda boken - vid blyertsmärket.

Polling Om inte interrupt funnes vore man tvungen att rusa runt mellan dörren står någon där? telefonen någon där? och soffan. Det som kallas för polling.

Interruptmekanismer Global och Local Enable Vill Du inte bli störd kan Du sätta på dig öronproppar Du har då omöjliggjort interrupt, disable interrupt. Tar Du bort öronpropparna har Du åter möjliggjort interrupt, enable interrupt. Detta kallas för Global Enable. Du har även möjlighet på lokal nivå enabla/disabla interrupt, Local Enable. Du kan tex. disabla telefonen genom att dra ur jacket. Då hör Du fortfarande dörrklockan.

PIC-processorns interrupt Logiknätet för interrupt hos 16F690 med 23 interruptkällor. GIE är Globalt Enable. T0IE, INTE, Lokalt Enable RBIE är lokala enable för timer0, intpinne, och portb interrupt. Lokalt Enable interrupt! Lokalt Enable Peripheral Enable Globalt Enable PEIE möjliggör lokalt enable för ytterligare 11 periferienheter, RABIE för 10.

Interruptflaggor TMR1IF TMR2IF CCP1IF CMIF TXIF RCIF EEIF T0IF INTF RBIF är namnen på några flaggor som indikerar olika interruptorsaker. Om det finns en orsak, och källan är lokalt enablad (om det är en periferienhet den även är perifert enablad) och globalt enable gäller då blir det Interrupt!

Interruptflaggor

Interruptrutin Vid interrupt körs Interruptrutinen. Den ligger på fix plats i början av programminnet. Måste ligga först. #pragma origin 4 interrupt int_server( void ) { int_save_registers /* interrupt routine */ int_restore_registers } Interruptrutinen startar alltid på adress 4! Makron för att spara register annars återlämnar interruptrutinen förvanskade resultat till huvudprogrammet! (Avsnitt 14.4 Context saving during interrupt.)

Context saving Interrupt! Kontexten är viktig, page, rambank Kungsgatan 4 Stockholm Kungsgatan 4 Avesta interrupt! Väntar på hamburgaren Blir besviken! Cc5x sparar det viktigaste och varnar om mer kan behöva sparas. (Avsnitt 14.4 Context saving during interrupt.)

Återställ interruptflaggan Interruptflaggorna visar vad som orsakat interruptet. I interruptrutinen kontrollerar man flaggorna och gör vad som behöver göras. Den interruptflagga som är 1 måste 0-ställas på slutet av interruptrutinen annars fortsätter interruptet för evigt!

Klaffskåp med blänkare Ett "klaffskåp med blänkare", en elektromekanisk signalanordning som förekom i början av 1900 talet i paradvåningar. Från trycknappar i de olika rummen kunde man kalla på serveringspersonalen eller hembiträdet. Ringklockan i klaffskåpet ringde och motsvarande "blänkare" för respektive rum föll ned. När uppdraget utförts tryckte betjäningen på knappen under "blänkaren" så att den återställdes. - Är det månne härifrån Microchip fått idén till sitt interrupt?

RPG Interruptprogrammet char old_new; /* global to store transitions */ int cnt; /* global to store RPG count */ #pragma origin 4 /* only place for interrupt routine */ interrupt int_server( void ) { } Interruptrutinen måste ligga först int_save_registers old_new.0 = PORTA.5; old_new.1 = PORTA.4; if( old_new == 0b00.01 ) cnt ++; if( old_new == 0b01.00 ) cnt --; old_new.2 = old_new.0; old_new.3 = old_new.1; RABIF = 0; /* Reset flag before leaving */ int_restore_registers körs varje gång något ändrar sig på PORTA till huvudprogrammet

main()-programmet void main( void) { init(); /* init ports */ RABIE = 1; /* local enable */ GIE = 1; /* global enable */ initserial(); /* init serial unit */ new_old = 0; cnt = 0; } main() och andra funktioner följer sedan från ISR while(1) { printf("position: %d\r\n", cnt ); delay10(100); /* print RPG-count every second */ } Interrupt on change porta Ingen puls missas i cnt, och värdet skrivs ut utan störningar varje sekund

RPG utan interrupt Lokala variabler i main().

RPG med interrupt Globala variabler utanför main().

Datormusen En datormus innehåller två pulsgivare, fast numera optiska. PIC16F690 har Interrupt on change för fyra PORTB-pinnar och 6 PORTApinnar vilket räcker till fem pulsgivare! - Så det kan mycket väl vara en PICprocessor som är chippet inuti musen!

Några andra användningsområden

Magnetisk sensor En platta genomflytes av en ström mellan två av sidorna. Strömbanorna blir parallella och laddningsfördelningen i skivan homogen. De två elektroderna (pilarna) ligger längs samma spänningslinje, och det blir ingen resulterande spänningsskillnad dem emellan.

Nu tvingar ett magnetfält laddningarna ur kurs. Strömbanorna böjer av, och laddningsfördelningen blir ojämn. Magnetisk sensor De två elektroderna (pilarna) ligger nu på olika spänningslinjer, och det uppkommer en spänningsskillnad. Ju starkare magnetfält, desto större spänning mellan pilarna!

Halleffekten En svag Hallspänning U H proportionell mot magnetfältets flödestäthet B, indikerar närvaron av magneten.

Hallswitch Strömregulator, Hallelement, förstärkare, Schmitt-trigger, drivsteg.

Hallgivare Unipolär/Bipolär

Några olika tillämpningsexempel

Hallswitchar över en utbredd magnettejp du får se något sådant vid laborationen...