<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="da">
	<id>https://www.htxarduino.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hnl</id>
	<title>HTX Arduino - Brugerbidrag [da]</title>
	<link rel="self" type="application/atom+xml" href="https://www.htxarduino.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hnl"/>
	<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php/Speciel:Bidrag/Hnl"/>
	<updated>2026-06-10T13:42:07Z</updated>
	<subtitle>Brugerbidrag</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Bit-opl%C3%B8sningens_betydning&amp;diff=5187</id>
		<title>Bit-opløsningens betydning</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Bit-opl%C3%B8sningens_betydning&amp;diff=5187"/>
		<updated>2022-11-25T12:37:20Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Redirect oprettet (Henrik)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[Analog_indgang#Bit-opløsningens_betydning]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=AD-konvertering&amp;diff=5186</id>
		<title>AD-konvertering</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=AD-konvertering&amp;diff=5186"/>
		<updated>2022-11-25T12:36:19Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Redirect oprettet (Henrik)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[Analog_indgang#AD-konvertering]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Mikrofonforst%C3%A6rker&amp;diff=5185</id>
		<title>Mikrofonforstærker</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Mikrofonforst%C3%A6rker&amp;diff=5185"/>
		<updated>2022-11-25T12:34:17Z</updated>

		<summary type="html">&lt;p&gt;Hnl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hvis man har et analogt inputsignal som spændingsmæssigt ikke er ret stort, kan man forstærke signalet op, inden man anvender signalet til f.eks. [[AD-konvertering]].&lt;br /&gt;
&lt;br /&gt;
Hvis man vil koble en mikrofon til en analog indgang på en mikroprocessor (f.eks. Arduino), for at måle lydniveauer, får man behov for en signalforstærker inden signalet AD-konverteres. En mikrofon giver kun et spændingsoutput på nogle få mV. AD-konverteren arbejder i et antal steps givet ud fra [[Bit-opløsningens betydning|antallet af bit som AD-konverteren arbejder med]]. Er det en 10 bit AD-konverter, deles spændingsområdet op i 1024 steps. Hvis spændingsområdet er på 5 V, repræsenterer hvert step en spænding på 4,89 mV. Hvis inputspændingen fra mikrofonen kun er nogle få mV, så udnyttes måske kun 50-100 ud af AD-konvertererens 1024 steps, hvorved opløsningen på lyden bliver meget lavt. Hvis man i stedet for forstærker mikrofonsignalet op inden AD-konverteren, så udnyttes flest mulige af de 1024 steps.&lt;br /&gt;
&lt;br /&gt;
En simpel forforstærker til en mikrofon ses på diagrammet nedenfor. Forstærkningsgraden stilles på potentiometer P1.&lt;br /&gt;
&lt;br /&gt;
[[fil:Audio_preamp-diagram.jpg|500px|Mikrofonforstærker]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Mikrofonforstærker&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Komponentliste==&lt;br /&gt;
R1  &amp;lt;math&amp;gt;10 k\Omega&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
R2  &amp;lt;math&amp;gt;10 k\Omega&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
R3  &amp;lt;math&amp;gt;1 k\Omega&amp;lt;/math&amp;gt;  &amp;lt;br /&amp;gt;&lt;br /&gt;
R4  &amp;lt;math&amp;gt;10 k\Omega&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
P1  &amp;lt;math&amp;gt;100 k\Omega, lin &amp;lt;/math&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
C1  &amp;lt;math&amp;gt;100 nF&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
C2  &amp;lt;math&amp;gt;4,7 \mu F / 16 V &amp;lt;/math&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
IC1	&amp;lt;math&amp;gt;LM358 &amp;lt;/math&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;br /&gt;
[[Kategori:PIC Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Digitalt_Output_p%C3%A5_Arduino&amp;diff=5184</id>
		<title>Digitalt Output på Arduino</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Digitalt_Output_p%C3%A5_Arduino&amp;diff=5184"/>
		<updated>2022-11-25T12:27:21Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Omdirigering til Input-output#Digitalt Output på Arduino oprettet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[Input-output#Digitalt Output på Arduino]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5183</id>
		<title>PWM</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5183"/>
		<updated>2022-11-25T12:26:44Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* PWM på Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puls Bredde Modulation (eller Puls Width Modulation - deraf PWM) er en måde at lave et signal der kan give en analog værdi ved hjælp af et digitalt output.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
Hvis man tilslutter en 12 V DC motor til en strømforsyning, og langsomt skruer op for spændingen, kan man se, at DC motorens rotationshastighed afhænger af hvor høj spændingen er. Når spændingen er 0 V roterer motorens aksel ikke, og når spændingen når 12 V, roterer DC motorens aksel med maksimal hastighed. Det ses dermed, at man kan regulere DC motorens rotationshastighed ud fra den analoge spænding den forsynes med.&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at regulere DC motoren fra mikroprocessoren, har man behov for at lave en variabel spænding. Da mikroprocessorens output arbejder digitalt, og vi har behov for en analog spænding vi kan variere, vil vi gøre brug af metoden der hedder &amp;lt;i&amp;gt;pulse width modulation&amp;lt;/i&amp;gt; (dvs. &amp;lt;i&amp;gt;puls bredde modulation&amp;lt;/i&amp;gt; eller bare PWM). PWM laver en variabel spænding ud fra digitale pulser.&lt;br /&gt;
&lt;br /&gt;
Hvis man sætter et outputben på mikroprocessoren høj, vil man på benet kunne måle en spænding på 5 V. Figuren herunder viser hvordan dette ser ud målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_01_max.png|500px|Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet sætter outputbenet lavt, vil man kunne måle en spænding på 0 V. Dette er vist herunder målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_02_min.png|500px|Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man skifter mellem høj og lav, og gør det f.eks. med en frekvens på 500 Hz (dvs. 500 perioder pr. sekund), og lader benet være højt 1 msek, og derefter lavt i 1 msek, så vil man kunne måle en spænding på 2,5 V på benet. Dette ses på figuren nedenfor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_03_half.png|500px|Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Er det i stedet for 0,5 msek benet er højt, og 1,5 msek benet er lavt (dvs. højt &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden, og lavt &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden), så bliver middelspændingen &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af de 5 V = 1,25 V. Dette ses på figuren herunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_04_quarter.png|500px|Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan altså bestemme middelspændingen på outputputtet ved at justere hvor lang tid benet henholdsvis er højt og lavt. For at man ikke oplever at spændingen ”hopper” op og ned, skal skiftene ske hurtigt. Hvis det for eksempel sker med en frekvens på 500 Hz (dvs. at en periode varer 2 msek), så opleves spændingen som værende konstant.&lt;br /&gt;
 &lt;br /&gt;
==Princippet - Er det OK dækket i ovenstående afsnit?==&lt;br /&gt;
Måden man gør det på er ved at sende et signal ud med en fast frekvens, hvor man så lader signalet være højt i en vis procentdel af tiden og lav i resten af tiden.&lt;br /&gt;
&lt;br /&gt;
Herunder er der illustreret 4 forskellige signaler på et PWM-output. Signalet kan helt i yderområderne være lavet hele tiden (0%) og højt hele tiden (100%).&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM-values.png|4 PWM signaler med forskellig værdi, fra 5% til 90%]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;4 PWM signaler med forskellig værdi, fra 5% til 90%&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På den måde kan man bestemme hvilken gennemsnits-spænding der kommer ud.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af PWM signalet==&lt;br /&gt;
Man kan anvende sit PWM signal til mange formål; alt fra at dæmpe lyset i en lysdiode til at justere rotationshastigheden for en DC motors aksel. Da PWM signalet reelt er et digital signal der skifter mellem 0 V og 5 V skal man overveje om dette firkantsignal uden videre kan anvendes til det ønskede formål; Er det en lysdiode der skal dæmpes ned, er det måske OK at den står og flimrer lidt, hvor imod det kan give problemer hvis PWM signalet skal anvendes som en konstant, præcis spænding i et målekredsløb. Gælder sidstnævnte, kan man tilføje en analog filtrering mellem PWM signalet og målekredsløbet (se afsnittet [[#Analog filtrering|Analog filtrering]]).&lt;br /&gt;
&lt;br /&gt;
Anvender man PWM signalet til en elmotor, så vil motorens inertimoment ved rotation fungere som filter, der glatter firkantsignalet ud. Inertimomentet kan beskrives som &amp;lt;i&amp;gt;trægheden&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;modviljen&amp;lt;/i&amp;gt; til at ændre på rotationsbevægelsen og afhænger bl.a. af massen af det der roterer (jo større masse, desto større inertimoment, og dermed større modvilje til at ændre rotationsbevægelsen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Analog filtrering===&lt;br /&gt;
For at signalet skal blive en fornuftig DC-spænding, så laves en analog filtrering af signalet med er RC-led som vist her:&lt;br /&gt;
&lt;br /&gt;
[[image:PWM-diagram.PNG]]&lt;br /&gt;
&lt;br /&gt;
==PWM på Arduino==&lt;br /&gt;
Et Arduino Uno board har seks porte der kan sættes op til at lave PWM; Det er portben 3, 5, 6, 9, 10 og 11, der er angivet med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|600px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge PWM udgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programkoden der skal til for at anvende PWM på et af de &#039;&#039;&#039;~&#039;&#039;&#039;-mærkede outputben er at skrive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  analogWrite(analogOutPin, outputValue);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;analogOutPin&#039;&#039;&#039; skal sættes til portbensnummeret. Benet skal være sat op til output (se [[Digitalt Output på Arduino]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;outputValue&#039;&#039;&#039; skal være af typen byte, så værdien ligger fra 0 til 255. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med konstant 2,5 V===&lt;br /&gt;
Ønsker man en konstant spænding på 2,5 V fra en af PWM portbenene, kan man skrive som følger. I eksemplet anvendes portben 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
  {&lt;br /&gt;
     pinMode(pwmPin, OUTPUT); &lt;br /&gt;
     analogWrite(pwmPin, 127);   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void loop()&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da 2,5 V er den halve spænding af Arduinoboardets 5 V spænding, sættes &#039;&#039;&#039;outputValue&#039;&#039;&#039; værdien til den halve værdi af maksimum, hvilket er 127.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med variabel spænding===&lt;br /&gt;
Hvis man ønsker at justere outputspændingen ud fra positionen på et potentiometer, kan man koble potentiometrets midterste ben til et analog input på Arduinoboardet, og de to andre ben til henholdsvis +5 V og GND; Dermed kan inputspændingen læses, og bruges til at justere outputspændingen på det ønskede portben.&lt;br /&gt;
&lt;br /&gt;
Bemærk, at Arduino Uno har en 10 bit ADC &amp;lt;b&amp;gt;(link til ADC)&amp;lt;/b&amp;gt;, og dermed arbejder med heltalsværdier mellem 0 og 1023, mens PWM på Arduino Uno er i 8 bit, og dermed heltalsværdier mellem 0 og 255. Det betyder, at når man læser et heltal der kan ligge mellem 0 og 1023, skal det konverteres ned i talrummet af heltal mellem 0 og 255. Til dette anvendes funktionen &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; er værdien der skal konverteres (her værdien læst fra potentiometret)&lt;br /&gt;
&#039;&#039;&#039;fromLow&#039;&#039;&#039; er den mindste værdi value kan antage (her 0)&lt;br /&gt;
&#039;&#039;&#039;fromHigh&#039;&#039;&#039; er den højeste værdi value kan antage (her 1023)&lt;br /&gt;
&#039;&#039;&#039;toLow&#039;&#039;&#039; er den laveste værdi der skal konverteres til (her 0)&lt;br /&gt;
&#039;&#039;&#039;toHigh&#039;&#039;&#039; er den højeste værdi der skal konverteres til (her 255)&lt;br /&gt;
&lt;br /&gt;
I eksemplet her anvendes portben 3 til PWM output, mens det analoge signal fra potentiometret læses fra analog port A0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
  const int aInput = A0;&lt;br /&gt;
&lt;br /&gt;
  int analogInputValue;&lt;br /&gt;
  int pwmValue;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
 {&lt;br /&gt;
    pinMode(pwmPin, OUTPUT); &lt;br /&gt;
    pinMode(aInput, INPUT);   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    analogInputValue = analogRead(aInput);&lt;br /&gt;
    pwmValue = map(analogInputValue, 0, 1023, 0, 255);&lt;br /&gt;
    analogWrite(pwmPin, pwmValue);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Strømtræk fra en PWM port på Arduinoboardet===&lt;br /&gt;
Da et Arduinoboard i følge specifikationerne&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt; maksimalt kan levere 20 mA fra en output port, kan man være nød til at anvende en transistor mellem portbenet på Arduinoboardet og den komponent der skal drives. Det kan f.eks. være en [[MOSFET transistor]]&lt;br /&gt;
&lt;br /&gt;
==PWM på PIC==&lt;br /&gt;
===Eksempel på output===&lt;br /&gt;
&lt;br /&gt;
Hvis man stiller CCPR1L / outputValue til 64, så kan man måle det viste:&lt;br /&gt;
&lt;br /&gt;
[[Image:osc-pwm-25.png]]&lt;br /&gt;
&lt;br /&gt;
Den nederste kurveform er et 5V output målt på P1A, hvor det er højt i ca. 0.26 ms ud af de i alt 1.02 ms som periodetiden er. Det er ca. 25 % af tiden, og som det kan ses på den blå kurve øverst, så ligger den udglattede udgangsspænding på ca. 25 % af de 5V (1.25V), men i praksis er spændingen lidt lavere, som her måles til 1.16V. Det skyldes at Forsyningspændingen ligger lidt under 5V.&lt;br /&gt;
&lt;br /&gt;
===Koden til PWM på PIC===&lt;br /&gt;
Alle [[PIC-type]]r kan i princippet lave PWM, men det gøres lettest i en PIC der kan det som indbygget standard.&lt;br /&gt;
&lt;br /&gt;
Til [[PIC16F684]] er der lavet et eksempel på [[Media:PWM.zip|PWM-kode]], der skitseres her.&lt;br /&gt;
&lt;br /&gt;
Der vælges at lave output på P1A, der er pin_C5, så denne skal indstilles til output.&lt;br /&gt;
&lt;br /&gt;
Herefter initialiseres CCP1CON registeret til kun lave output på P1A og at det er PWN der skal anvendes. Derefter sættes timer 2 op, så den fungerer - her er valgt 4 gange prescaler. Koden skrives som:&lt;br /&gt;
&lt;br /&gt;
 -- Initialisering af PWM&lt;br /&gt;
 CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
 T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
Registeret PR2 sættes til sin maksimale værdi, så der kommer maksimal opløsning på PWM-signalet&lt;br /&gt;
&lt;br /&gt;
 PR2 = 255&lt;br /&gt;
&lt;br /&gt;
Tilsammen giver disse to ting at frekvensen på PWM-signalet bliver ca. 1 kHz ved et oscillatorfrekvens på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
====Værdien der giver PWM outputtet====&lt;br /&gt;
Når det ovenstående er indstillet, så kan man blot skrive en værdi til CCPR1L på mellem 0 og 255, hvilket så giver værdien i forhold til de 255.&lt;br /&gt;
&lt;br /&gt;
Der ligger faktisk 2 bit ekstra i opløsning, som skal angives i de 2 lave bit af CCP1CON, så man kan angive totalt set en 10 bit værdi.&lt;br /&gt;
&lt;br /&gt;
===PWM til at danne forskellige frekvenser===&lt;br /&gt;
I stedet for at anvende PWM til at lave en tilnærmet DC-værdi med, så kan man også få PWM-udgangen til at danne en fast frekvens, hvor man så kan indstille duty-cycle til 50%.&lt;br /&gt;
&lt;br /&gt;
Ved at rette på periode-tiden kan man få udgangen til at lave forskellige frekvenser.&lt;br /&gt;
&lt;br /&gt;
En simpel måde at gøre det på er at sætte post- og pre-scaler til faste værdier, og så kun rette på PR2 og CCPR1L, som det er illustreret her ved hjælp af proceduren lyd, der tager periodetiden som parameter. Med denne initialisering kan der dannes frekvenser fra 1 kHz og opad.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
PR2 = 255&lt;br /&gt;
T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
-- Procedure der sætter en frekvens på PWM&lt;br /&gt;
-- 255 giver ca. 1 kHz&lt;br /&gt;
-- 128 giver ca. 2 kHz&lt;br /&gt;
procedure lyd (byte in periode) is&lt;br /&gt;
   PR2 = periode&lt;br /&gt;
   CCPR1L = periode / 2&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at dække et bredere frekvensområde, så skal man indstille både PR2, CCPR1L og T2CON, for at kunne danne frekvenserne præcist nok. Dette er illustreret i følgende kode (ikke testet):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
&lt;br /&gt;
-- Procedure der kan lave frekvenser fra 244 Hz til 20000 Hz ved en oscillatorfrekvens på 4MHz&lt;br /&gt;
-- Koden er tilpasser minimum frekvensen efter oscillatorfrekvensen&lt;br /&gt;
--   Oscillator    Minimum&lt;br /&gt;
--    4_000_000      244&lt;br /&gt;
--    8_000_000      488&lt;br /&gt;
--   20_000_000     1219&lt;br /&gt;
procedure tone(word in frekvens) is&lt;br /&gt;
   -- Perioden beregnes som PR2 = F_OSC / (4 * Frekvens * Prescaler) - 1&lt;br /&gt;
   -- Det skal bemærkes at post-scaleren ikke regnes med i dannelsen af frekvensen&lt;br /&gt;
   var dword periode = target_clock / 2 -- Gem den sidste halvering til afrunding&lt;br /&gt;
   if frekvens &amp;lt;= (target_clock / 16416) then     -- Så lave frekvenser understøttes ikke&lt;br /&gt;
      return&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 4104) then  -- Frekvenser der håndteres med prescaler 16&lt;br /&gt;
      T2Con = 0b0110&lt;br /&gt;
      periode = periode / 16&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 1026) then -- Frekvenser der håndteres med prescaler 4&lt;br /&gt;
      T2Con = 0b0101&lt;br /&gt;
      periode = periode / 4&lt;br /&gt;
   else                       -- Ved Prescaler = 1 rettes periodetiden ikke&lt;br /&gt;
      T2CON = 0b0100&lt;br /&gt;
   end if&lt;br /&gt;
&lt;br /&gt;
   periode = periode / frekvens -- Midlertidig beregning af perioden&lt;br /&gt;
   periode = (periode + 1) / 2  -- Division med afrunding i stedet for trunkering&lt;br /&gt;
   CCPR1L = byte(periode/2)     -- Lav ca. 50% dutycycle&lt;br /&gt;
   periode = periode - 1        -- Den sidste tilpasning efter formlen&lt;br /&gt;
   PR2 = byte(periode)&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test-koden og et regneark der illustrerer hvordan tonerne beregnes ligger i en [[Media:PWM-tone.zip|ZIP-fil]].&lt;br /&gt;
&lt;br /&gt;
Koden tester først om indstillingen kan laves ved den givne oscillatorfrekvens, og hvis den kan det, så indstilles prescaleren, så PR2 får størst mulig værdi, uden at der kommer overflow. Der forberedes også beregningen af periodetiden.&lt;br /&gt;
&lt;br /&gt;
Periodetiden beregnes ud fra frekvensen, og der tilpasses formlen for periodetiden. Endelig laves en afrunding af resultatet, i stedet for en normal truckering som man ellers gør i JAL divisioner. Dutycycle sættes til ca. 50% ved at sætte CCPR1L til halvdelen af PR2. &lt;br /&gt;
&lt;br /&gt;
Ved disse beregninger skulle frekvensen gerne ramme inden for +/- 1% på frekvenser fra 244 Hz til 20000 Hz ved oscillatorfrekvensen på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
===Andre PIC-typers PWM===&lt;br /&gt;
Der er ikke angivet hvordan koden skrives til andre PIC-typer, men princippet er nogenlunde det samme. Først skal man lave indstillingerne der angiver hvilke output der skal lave PWM, og så skal man sætte PIC&#039;en op så der er noget der angiver periodetiden, og noget der angiver hvor stor en del af periodetiden der skal være højt signal.&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{logik-begreber}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog]]&lt;br /&gt;
[[Kategori:Digital]]&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5182</id>
		<title>PWM</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5182"/>
		<updated>2022-11-25T12:08:42Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Anvendelse af PWM signalet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puls Bredde Modulation (eller Puls Width Modulation - deraf PWM) er en måde at lave et signal der kan give en analog værdi ved hjælp af et digitalt output.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
Hvis man tilslutter en 12 V DC motor til en strømforsyning, og langsomt skruer op for spændingen, kan man se, at DC motorens rotationshastighed afhænger af hvor høj spændingen er. Når spændingen er 0 V roterer motorens aksel ikke, og når spændingen når 12 V, roterer DC motorens aksel med maksimal hastighed. Det ses dermed, at man kan regulere DC motorens rotationshastighed ud fra den analoge spænding den forsynes med.&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at regulere DC motoren fra mikroprocessoren, har man behov for at lave en variabel spænding. Da mikroprocessorens output arbejder digitalt, og vi har behov for en analog spænding vi kan variere, vil vi gøre brug af metoden der hedder &amp;lt;i&amp;gt;pulse width modulation&amp;lt;/i&amp;gt; (dvs. &amp;lt;i&amp;gt;puls bredde modulation&amp;lt;/i&amp;gt; eller bare PWM). PWM laver en variabel spænding ud fra digitale pulser.&lt;br /&gt;
&lt;br /&gt;
Hvis man sætter et outputben på mikroprocessoren høj, vil man på benet kunne måle en spænding på 5 V. Figuren herunder viser hvordan dette ser ud målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_01_max.png|500px|Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet sætter outputbenet lavt, vil man kunne måle en spænding på 0 V. Dette er vist herunder målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_02_min.png|500px|Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man skifter mellem høj og lav, og gør det f.eks. med en frekvens på 500 Hz (dvs. 500 perioder pr. sekund), og lader benet være højt 1 msek, og derefter lavt i 1 msek, så vil man kunne måle en spænding på 2,5 V på benet. Dette ses på figuren nedenfor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_03_half.png|500px|Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Er det i stedet for 0,5 msek benet er højt, og 1,5 msek benet er lavt (dvs. højt &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden, og lavt &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden), så bliver middelspændingen &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af de 5 V = 1,25 V. Dette ses på figuren herunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_04_quarter.png|500px|Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan altså bestemme middelspændingen på outputputtet ved at justere hvor lang tid benet henholdsvis er højt og lavt. For at man ikke oplever at spændingen ”hopper” op og ned, skal skiftene ske hurtigt. Hvis det for eksempel sker med en frekvens på 500 Hz (dvs. at en periode varer 2 msek), så opleves spændingen som værende konstant.&lt;br /&gt;
 &lt;br /&gt;
==Princippet - Er det OK dækket i ovenstående afsnit?==&lt;br /&gt;
Måden man gør det på er ved at sende et signal ud med en fast frekvens, hvor man så lader signalet være højt i en vis procentdel af tiden og lav i resten af tiden.&lt;br /&gt;
&lt;br /&gt;
Herunder er der illustreret 4 forskellige signaler på et PWM-output. Signalet kan helt i yderområderne være lavet hele tiden (0%) og højt hele tiden (100%).&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM-values.png|4 PWM signaler med forskellig værdi, fra 5% til 90%]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;4 PWM signaler med forskellig værdi, fra 5% til 90%&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På den måde kan man bestemme hvilken gennemsnits-spænding der kommer ud.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af PWM signalet==&lt;br /&gt;
Man kan anvende sit PWM signal til mange formål; alt fra at dæmpe lyset i en lysdiode til at justere rotationshastigheden for en DC motors aksel. Da PWM signalet reelt er et digital signal der skifter mellem 0 V og 5 V skal man overveje om dette firkantsignal uden videre kan anvendes til det ønskede formål; Er det en lysdiode der skal dæmpes ned, er det måske OK at den står og flimrer lidt, hvor imod det kan give problemer hvis PWM signalet skal anvendes som en konstant, præcis spænding i et målekredsløb. Gælder sidstnævnte, kan man tilføje en analog filtrering mellem PWM signalet og målekredsløbet (se afsnittet [[#Analog filtrering|Analog filtrering]]).&lt;br /&gt;
&lt;br /&gt;
Anvender man PWM signalet til en elmotor, så vil motorens inertimoment ved rotation fungere som filter, der glatter firkantsignalet ud. Inertimomentet kan beskrives som &amp;lt;i&amp;gt;trægheden&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;modviljen&amp;lt;/i&amp;gt; til at ændre på rotationsbevægelsen og afhænger bl.a. af massen af det der roterer (jo større masse, desto større inertimoment, og dermed større modvilje til at ændre rotationsbevægelsen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Analog filtrering===&lt;br /&gt;
For at signalet skal blive en fornuftig DC-spænding, så laves en analog filtrering af signalet med er RC-led som vist her:&lt;br /&gt;
&lt;br /&gt;
[[image:PWM-diagram.PNG]]&lt;br /&gt;
&lt;br /&gt;
==PWM på Arduino==&lt;br /&gt;
Et Arduino Uno board har seks porte der kan sættes op til at lave PWM; Det er portben 3, 5, 6, 9, 10 og 11, der er angivet med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|600px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge PWM udgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programkoden der skal til for at anvende PWM på et af de &#039;&#039;&#039;~&#039;&#039;&#039;-mærkede outputben er at skrive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  analogWrite(analogOutPin, outputValue);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;analogOutPin&#039;&#039;&#039; skal sættes til portbensnummeret. Benet skal være sat op til output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;outputValue&#039;&#039;&#039; skal være af typen byte, så værdien ligger fra 0 til 255. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med konstant 2,5 V===&lt;br /&gt;
Ønsker man en konstant spænding på 2,5 V fra en af PWM portbenene, kan man skrive som følger. I eksemplet anvendes portben 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
  {&lt;br /&gt;
     pinMode(pwmPin, OUTPUT); &lt;br /&gt;
     analogWrite(pwmPin, 127);   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void loop()&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da 2,5 V er den halve spænding af Arduinoboardets 5 V spænding, sættes &#039;&#039;&#039;outputValue&#039;&#039;&#039; værdien til den halve værdi af maksimum, hvilket er 127.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med variabel spænding===&lt;br /&gt;
Hvis man ønsker at justere outputspændingen ud fra positionen på et potentiometer, kan man koble potentiometrets midterste ben til et analog input på Arduinoboardet, og de to andre ben til henholdsvis +5 V og GND; Dermed kan inputspændingen læses, og bruges til at justere outputspændingen på det ønskede portben.&lt;br /&gt;
&lt;br /&gt;
Bemærk, at Arduino Uno har en 10 bit ADC &amp;lt;b&amp;gt;(link til ADC)&amp;lt;/b&amp;gt;, og dermed arbejder med heltalsværdier mellem 0 og 1023, mens PWM på Arduino Uno er i 8 bit, og dermed heltalsværdier mellem 0 og 255. Det betyder, at når man læser et heltal der kan ligge mellem 0 og 1023, skal det konverteres ned i talrummet af heltal mellem 0 og 255. Til dette anvendes funktionen &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; er værdien der skal konverteres (her værdien læst fra potentiometret)&lt;br /&gt;
&#039;&#039;&#039;fromLow&#039;&#039;&#039; er den mindste værdi value kan antage (her 0)&lt;br /&gt;
&#039;&#039;&#039;fromHigh&#039;&#039;&#039; er den højeste værdi value kan antage (her 1023)&lt;br /&gt;
&#039;&#039;&#039;toLow&#039;&#039;&#039; er den laveste værdi der skal konverteres til (her 0)&lt;br /&gt;
&#039;&#039;&#039;toHigh&#039;&#039;&#039; er den højeste værdi der skal konverteres til (her 255)&lt;br /&gt;
&lt;br /&gt;
I eksemplet her anvendes portben 3 til PWM output, mens det analoge signal fra potentiometret læses fra analog port A0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
  const int aInput = A0;&lt;br /&gt;
&lt;br /&gt;
  int analogInputValue;&lt;br /&gt;
  int pwmValue;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
 {&lt;br /&gt;
    pinMode(pwmPin, OUTPUT); &lt;br /&gt;
    pinMode(aInput, INPUT);   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    analogInputValue = analogRead(aInput);&lt;br /&gt;
    pwmValue = map(analogInputValue, 0, 1023, 0, 255);&lt;br /&gt;
    analogWrite(pwmPin, pwmValue);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Strømtræk fra en PWM port på Arduinoboardet===&lt;br /&gt;
Da et Arduinoboard i følge specifikationerne&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt; maksimalt kan levere 20 mA fra en output port, kan man være nød til at anvende en transistor mellem portbenet på Arduinoboardet og den komponent der skal drives. Det kan f.eks. være en [[MOSFET transistor]]&lt;br /&gt;
&lt;br /&gt;
==PWM på PIC==&lt;br /&gt;
===Eksempel på output===&lt;br /&gt;
&lt;br /&gt;
Hvis man stiller CCPR1L / outputValue til 64, så kan man måle det viste:&lt;br /&gt;
&lt;br /&gt;
[[Image:osc-pwm-25.png]]&lt;br /&gt;
&lt;br /&gt;
Den nederste kurveform er et 5V output målt på P1A, hvor det er højt i ca. 0.26 ms ud af de i alt 1.02 ms som periodetiden er. Det er ca. 25 % af tiden, og som det kan ses på den blå kurve øverst, så ligger den udglattede udgangsspænding på ca. 25 % af de 5V (1.25V), men i praksis er spændingen lidt lavere, som her måles til 1.16V. Det skyldes at Forsyningspændingen ligger lidt under 5V.&lt;br /&gt;
&lt;br /&gt;
===Koden til PWM på PIC===&lt;br /&gt;
Alle [[PIC-type]]r kan i princippet lave PWM, men det gøres lettest i en PIC der kan det som indbygget standard.&lt;br /&gt;
&lt;br /&gt;
Til [[PIC16F684]] er der lavet et eksempel på [[Media:PWM.zip|PWM-kode]], der skitseres her.&lt;br /&gt;
&lt;br /&gt;
Der vælges at lave output på P1A, der er pin_C5, så denne skal indstilles til output.&lt;br /&gt;
&lt;br /&gt;
Herefter initialiseres CCP1CON registeret til kun lave output på P1A og at det er PWN der skal anvendes. Derefter sættes timer 2 op, så den fungerer - her er valgt 4 gange prescaler. Koden skrives som:&lt;br /&gt;
&lt;br /&gt;
 -- Initialisering af PWM&lt;br /&gt;
 CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
 T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
Registeret PR2 sættes til sin maksimale værdi, så der kommer maksimal opløsning på PWM-signalet&lt;br /&gt;
&lt;br /&gt;
 PR2 = 255&lt;br /&gt;
&lt;br /&gt;
Tilsammen giver disse to ting at frekvensen på PWM-signalet bliver ca. 1 kHz ved et oscillatorfrekvens på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
====Værdien der giver PWM outputtet====&lt;br /&gt;
Når det ovenstående er indstillet, så kan man blot skrive en værdi til CCPR1L på mellem 0 og 255, hvilket så giver værdien i forhold til de 255.&lt;br /&gt;
&lt;br /&gt;
Der ligger faktisk 2 bit ekstra i opløsning, som skal angives i de 2 lave bit af CCP1CON, så man kan angive totalt set en 10 bit værdi.&lt;br /&gt;
&lt;br /&gt;
===PWM til at danne forskellige frekvenser===&lt;br /&gt;
I stedet for at anvende PWM til at lave en tilnærmet DC-værdi med, så kan man også få PWM-udgangen til at danne en fast frekvens, hvor man så kan indstille duty-cycle til 50%.&lt;br /&gt;
&lt;br /&gt;
Ved at rette på periode-tiden kan man få udgangen til at lave forskellige frekvenser.&lt;br /&gt;
&lt;br /&gt;
En simpel måde at gøre det på er at sætte post- og pre-scaler til faste værdier, og så kun rette på PR2 og CCPR1L, som det er illustreret her ved hjælp af proceduren lyd, der tager periodetiden som parameter. Med denne initialisering kan der dannes frekvenser fra 1 kHz og opad.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
PR2 = 255&lt;br /&gt;
T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
-- Procedure der sætter en frekvens på PWM&lt;br /&gt;
-- 255 giver ca. 1 kHz&lt;br /&gt;
-- 128 giver ca. 2 kHz&lt;br /&gt;
procedure lyd (byte in periode) is&lt;br /&gt;
   PR2 = periode&lt;br /&gt;
   CCPR1L = periode / 2&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at dække et bredere frekvensområde, så skal man indstille både PR2, CCPR1L og T2CON, for at kunne danne frekvenserne præcist nok. Dette er illustreret i følgende kode (ikke testet):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
&lt;br /&gt;
-- Procedure der kan lave frekvenser fra 244 Hz til 20000 Hz ved en oscillatorfrekvens på 4MHz&lt;br /&gt;
-- Koden er tilpasser minimum frekvensen efter oscillatorfrekvensen&lt;br /&gt;
--   Oscillator    Minimum&lt;br /&gt;
--    4_000_000      244&lt;br /&gt;
--    8_000_000      488&lt;br /&gt;
--   20_000_000     1219&lt;br /&gt;
procedure tone(word in frekvens) is&lt;br /&gt;
   -- Perioden beregnes som PR2 = F_OSC / (4 * Frekvens * Prescaler) - 1&lt;br /&gt;
   -- Det skal bemærkes at post-scaleren ikke regnes med i dannelsen af frekvensen&lt;br /&gt;
   var dword periode = target_clock / 2 -- Gem den sidste halvering til afrunding&lt;br /&gt;
   if frekvens &amp;lt;= (target_clock / 16416) then     -- Så lave frekvenser understøttes ikke&lt;br /&gt;
      return&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 4104) then  -- Frekvenser der håndteres med prescaler 16&lt;br /&gt;
      T2Con = 0b0110&lt;br /&gt;
      periode = periode / 16&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 1026) then -- Frekvenser der håndteres med prescaler 4&lt;br /&gt;
      T2Con = 0b0101&lt;br /&gt;
      periode = periode / 4&lt;br /&gt;
   else                       -- Ved Prescaler = 1 rettes periodetiden ikke&lt;br /&gt;
      T2CON = 0b0100&lt;br /&gt;
   end if&lt;br /&gt;
&lt;br /&gt;
   periode = periode / frekvens -- Midlertidig beregning af perioden&lt;br /&gt;
   periode = (periode + 1) / 2  -- Division med afrunding i stedet for trunkering&lt;br /&gt;
   CCPR1L = byte(periode/2)     -- Lav ca. 50% dutycycle&lt;br /&gt;
   periode = periode - 1        -- Den sidste tilpasning efter formlen&lt;br /&gt;
   PR2 = byte(periode)&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test-koden og et regneark der illustrerer hvordan tonerne beregnes ligger i en [[Media:PWM-tone.zip|ZIP-fil]].&lt;br /&gt;
&lt;br /&gt;
Koden tester først om indstillingen kan laves ved den givne oscillatorfrekvens, og hvis den kan det, så indstilles prescaleren, så PR2 får størst mulig værdi, uden at der kommer overflow. Der forberedes også beregningen af periodetiden.&lt;br /&gt;
&lt;br /&gt;
Periodetiden beregnes ud fra frekvensen, og der tilpasses formlen for periodetiden. Endelig laves en afrunding af resultatet, i stedet for en normal truckering som man ellers gør i JAL divisioner. Dutycycle sættes til ca. 50% ved at sætte CCPR1L til halvdelen af PR2. &lt;br /&gt;
&lt;br /&gt;
Ved disse beregninger skulle frekvensen gerne ramme inden for +/- 1% på frekvenser fra 244 Hz til 20000 Hz ved oscillatorfrekvensen på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
===Andre PIC-typers PWM===&lt;br /&gt;
Der er ikke angivet hvordan koden skrives til andre PIC-typer, men princippet er nogenlunde det samme. Først skal man lave indstillingerne der angiver hvilke output der skal lave PWM, og så skal man sætte PIC&#039;en op så der er noget der angiver periodetiden, og noget der angiver hvor stor en del af periodetiden der skal være højt signal.&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{logik-begreber}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog]]&lt;br /&gt;
[[Kategori:Digital]]&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5181</id>
		<title>MOSFET transistor</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5181"/>
		<updated>2022-11-25T12:04:06Z</updated>

		<summary type="html">&lt;p&gt;Hnl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
[[Fil:MOSFET_TO220.png|210px|thumb|right]]&lt;br /&gt;
Når man vil forbinde sit Arduinoboard til ”omverdenen”, oplever man af og til, at Arduinoboardet ikke kan levere nok strøm til den komponent man vil tilkoble, eller der skal bruges en højere spænding end de 5 V som Arduinoboardet arbejder med. Hvad gør man så? Jo, så skal man have fat i en transistor…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I specifikationerne over Arduinoboardet kan man læse, at man højest kan trække 20 mA fra et portben på en Arduino&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt;. Det er den strømstyrke man normalt anvender til at få en lysdiode til at lyse. Men hvis man har behov for at trække en større strøm, kan man anvende en transistor, der fungerer som en ”omskifter” eller ”kontakt”, og som man kan &amp;lt;i&amp;gt;tænde&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;slukke&amp;lt;/i&amp;gt; via et portben på Arduinoen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan også komme ud for, at man skal kunne tænde og slukke for en komponent der arbejder på 12 V, og ikke de 5 V som Arduinoboardet gør. Det kan for eksempel være en DC motor eller en pumpe. Disse komponenter vil oftest også trække større strøm end de 20 mA et portben kan levere. Løsningen er igen en transistor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der findes flere slags transistorer; Der er den type der kaldes for ”småsignalstransistore”, som virker som strømforstærkere, men kun kan holde til strømme omkring de 100 mA. Disse transistortyper er beskrevet under [[Transistor]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En anden slags transistor er en MOSFET transistor; Den virker som en tænd og sluk kontakt, hvor man ved en lav spænding (og uendelig lille strømstyrke), kan styre en stor strøm på adskillelige ampere ved store spændinger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kort fortalt, så har MOSFET transistoren 3 ben: &amp;lt;i&amp;gt;Gate&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Drain&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;Source&amp;lt;/i&amp;gt;. Når spændingen på &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; overstiger ca. 3 V (i forhold til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;), så tænder transistoren, og strøm kan løbe fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;. Man kan se en MOSFET transistor som en styrbar kontakt, der kan styres med en spænding. Lidt som et relæ, men uden alt det mekaniske.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en [[#N-kanals MOSFET|N-kanals MOSFET transistor]] af typen FQP30N06. &lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_eldiagram.png|250px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at strømmen skal kunne løbe gennem MOSFET transistoren, skal ”Gaten” åbnes. Det gøres ved at have en spændingsforskel mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; der er afhængig af MOSFET modellen. Størrelsen af Gate-Source spændingen (&amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt;) styrer hvor stor en strøm der kan løbe gennem transistoren. Man kan finde en graf over sammenhængen mellem &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;I_{DS}&amp;lt;/math&amp;gt; i databladet for den MOSFET transistor man ønsker at benytte.&lt;br /&gt;
&lt;br /&gt;
I databladet&amp;lt;ref&amp;gt;[https://www.onsemi.com/download/data-sheet/pdf/fqp30n06l-d.pdf &amp;quot;FQP30N06L datablad&amp;quot;]&amp;lt;/ref&amp;gt; for en FQP30N06L N-kanals MOSFET ser vi grafen for &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; som vist nedenfor. Her ses det, at der kun skal en spændingsforskel på 3 V mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; for at kunne trække 10 A gennem MOSFET’en. Ud fra databladet kan det endvidere læses, at &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; maksimalt må komme op på 20 V.&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
En anden N-kanals MOSFET er IRF520, og sammenligner man dennes &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; i databladet&amp;lt;ref&amp;gt;[https://www.vishay.com/docs/91017/irf520.pdf &amp;quot;IRF520 datablad&amp;quot;]&amp;lt;/ref&amp;gt;, ses det, at hvis man ønsker man at kunne trække helt op til 10 A gennem denne, skal der være en spændingsforskel mellem Gate og Source på (mindst) 7,5 V. Det skal man tænke over, når man vælger &amp;lt;i&amp;gt;hvad&amp;lt;/i&amp;gt; der skal tænde for MOSFET transistoren (f.eks. et Arduinoboard der leverer en spænding på 5 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_IRF520-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==N-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en N-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_N-ch.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]        [[Fil:MOSFET_N-ch_current.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en N-kanals MOSFET skal løbe fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; på N-kanals MOSFET forbindes til minus (GND på Arduino), mens komponenten der skal styres af MOSFET&#039;en forbindes mellem Vcc (forsyningsspænding) og &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt;. En sådan opstilling ses på [[MOSFET_transistor#MOSFET styrer DC motor|MOSFET styrer DC motor]]. &lt;br /&gt;
&lt;br /&gt;
N-kanals MOSFET åbner for strømgennemgang fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;, når spændingen mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;/b&amp;gt;Source&amp;lt;/b&amp;gt; når den for den pågældende transistors minimumsspændning, og afhængig af spændingen mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; bestemmes den maksimale strøm der tillades fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==P-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en P-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_P-ch.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]        [[Fil:MOSFET_P-ch_current.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for P-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en P-kanals MOSFET skal løbe fra Source til Drain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; på P-kanals MOSFET forbindes til Vcc (forsyningsspændingen), mens komponenten der skal styres af MOSFET&#039;en forbindes mellem &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; og minus (GND på Arduino). En sådan opstilling ses som en del af [[H-broen opbygget med 4 MOSFET]].&lt;br /&gt;
&lt;br /&gt;
P-kanals MOSFET åbner for strømgennemgang fra &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt;, når spændingen mellem Gate og Source når den for den pågældende transistors minimumsspændning, og afhængig af spændingen mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; bestemmes den maksimale strøm der tillades fra &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt;. Da spændingsoutputtet fra en port på Arduinoboardet er 5 V i forhold til GND, og ikke 5 V i forhold til Vcc på den forsyning der driver den komponent man ønsker at styre med MOSFETen, har man ofte behov for at bygge et signaltilpasningskredsløb der skal sidde mellem porten på mikroprocessoren, og &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; på P-kanals MOSFETen. Et sådant signaltilpasningskredsløb er vist til [[H-broen opbygget med 4 MOSFET]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MOSFET styrer DC motor==&lt;br /&gt;
[[Fil:MOSFET_DC-motor.png|300px|thumb|right]]&lt;br /&gt;
På el-diagrammet til højre er der anvendt en MOSFET transistor til at tænde og slukke for en DC motor. Der er anvendt en FQP30N06L [[MOSFET_transistor#N-kanals_MOSFET|N-kanals MOSFET transistor]]. Når spændingen ved &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; (G) er mellem 3-5 V vil MOSFET transistoren åbne, og der løber strøm fra til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; (D) til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; (S), og dermed kan der løbe en strøm gennem DC motoren. Herved roterer DC motorens aksel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dioden, D1, der på el-diagrammet ses parallelforbundet med motoren, er en sikkerhedsdiode. Motoren indeholder jo en spole, og en spole bliver til en elektromagnet når man sender strøm gennem den. Når man afbryder strømmen til spolen, vil spolen selv forsøge at opretholde sit magnetfelt, og det sker ved at spolen danner en stor spænding med modsat polaritet end da strømmen løb gennem spolen. Denne spænding kan blive meget stor (afhænger af spolen og strømstyrken anvendt), men kortvarigt flere 100 V! For at forhindre dette, sættes dioden på, så når den store spænding opstår, vil strømmen løbe fra – på motoren gennem dioden D1 og til + på motoren, og dermed aflade sig selv. Alternativt ville strømmen løbe ned mod transistoren Q1, og den høje spænding ville kunne ødelægge denne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Komponenter]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Hardware Teknologi]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=H-broen_opbygget_med_4_MOSFET&amp;diff=5180</id>
		<title>H-broen opbygget med 4 MOSFET</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=H-broen_opbygget_med_4_MOSFET&amp;diff=5180"/>
		<updated>2022-11-25T11:31:47Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Redirect oprettet (Henrik)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[H-bro#H-bro_med_4_MOSFET]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5179</id>
		<title>MOSFET transistor</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5179"/>
		<updated>2022-11-25T11:31:12Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* P-kanals MOSFET */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
[[Fil:MOSFET_TO220.png|210px|thumb|right]]&lt;br /&gt;
Når man vil forbinde sit Arduinoboard til ”omverdenen”, oplever man af og til, at Arduinoboardet ikke kan levere nok strøm til den komponent man vil tilkoble, eller der skal bruges en højere spænding end de 5 V som Arduinoboardet arbejder med. Hvad gør man så? Jo, så skal man have fat i en transistor…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I specifikationerne over Arduinoboardet kan man læse, at man højest kan trække 20 mA fra et portben på en Arduino&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt;. Det er den strømstyrke man normalt anvender til at få en lysdiode til at lyse. Men hvis man har behov for at trække en større strøm, kan man anvende en transistor, der fungerer som en ”omskifter” eller ”kontakt”, og som man kan &amp;lt;i&amp;gt;tænde&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;slukke&amp;lt;/i&amp;gt; via et portben på Arduinoen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan også komme ud for, at man skal kunne tænde og slukke for en komponent der arbejder på 12 V, og ikke de 5 V som Arduinoboardet gør. Det kan for eksempel være en DC motor eller en pumpe. Disse komponenter vil oftest også trække større strøm end de 20 mA et portben kan levere. Løsningen er igen en transistor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der findes flere slags transistorer; Der er den type der kaldes for ”småsignalstransistore”, som virker som strømforstærkere, men kun kan holde til strømme omkring de 100 mA. Disse transistortyper er beskrevet under [[Transistor]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En anden slags transistor er en MOSFET transistor; Den virker som en tænd og sluk kontakt, hvor man ved en lav spænding (og uendelig lille strømstyrke), kan styre en stor strøm på adskillelige ampere ved store spændinger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kort fortalt, så har MOSFET transistoren 3 ben: &amp;lt;i&amp;gt;Gate&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Drain&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;Source&amp;lt;/i&amp;gt;. Når spændingen på &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; overstiger ca. 3 V (i forhold til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;), så tænder transistoren, og strøm kan løbe fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;. Man kan se en MOSFET transistor som en styrbar kontakt, der kan styres med en spænding. Lidt som et relæ, men uden alt det mekaniske.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en [[#N-kanals MOSFET|N-kanals MOSFET transistor]] af typen FQP30N06. &lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_eldiagram.png|250px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at strømmen skal kunne løbe gennem MOSFET transistoren, skal ”Gaten” åbnes. Det gøres ved at have en spændingsforskel mellem Gate og Source der er afhængig af MOSFET modellen. Størrelsen af Gate-Source spændingen (&amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt;) styrer hvor stor en strøm der kan løbe gennem transistoren. Man kan finde en graf over sammenhængen mellem &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;I_{DS}&amp;lt;/math&amp;gt; i databladet for den MOSFET transistor man ønsker at benytte.&lt;br /&gt;
&lt;br /&gt;
I databladet&amp;lt;ref&amp;gt;[https://www.onsemi.com/download/data-sheet/pdf/fqp30n06l-d.pdf &amp;quot;FQP30N06L datablad&amp;quot;]&amp;lt;/ref&amp;gt; for en FQP30N06L N-kanals MOSFET ser vi grafen for &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; som vist nedenfor. Her ses det, at der kun skal en spændingsforskel på 3 V mellem Gate og Source for at kunne trække 10 A gennem MOSFET’en. Ud fra databladet kan det endvidere læses, at &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; maksimalt må komme op på 20 V.&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
En anden N-kanals MOSFET er IRF520, og sammenligner man dennes &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; i databladet&amp;lt;ref&amp;gt;[https://www.vishay.com/docs/91017/irf520.pdf &amp;quot;IRF520 datablad&amp;quot;]&amp;lt;/ref&amp;gt;, ses det, at hvis man ønsker man at kunne trække helt op til 10 A gennem denne, skal der være en spændingsforskel mellem Gate og Source på (mindst) 7,5 V. Det skal man tænke over, når man vælger &amp;lt;i&amp;gt;hvad&amp;lt;/i&amp;gt; der skal tænde for MOSFET transistoren (f.eks. et Arduinoboard der leverer en spænding på 5 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_IRF520-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==N-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en N-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_N-ch.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]        [[Fil:MOSFET_N-ch_current.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en N-kanals MOSFET skal løbe fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
Source på N-kanals MOSFET forbindes til minus (GND på Arduino), mens komponenten der skal styres af MOSFET&#039;en forbindes mellem Vcc (forsyningsspænding) og Drain. En sådan opstilling ses på [[MOSFET_transistor#MOSFET styrer DC motor|MOSFET styrer DC motor]]. &lt;br /&gt;
&lt;br /&gt;
N-kanals MOSFET åbner for strømgennemgang fra Drain til Source, når spændingen mellem Gate og Source når den for den pågældende transistors minimumsspændning, og afhængig af spændingen mellem Gate og Source bestemmes den maksimale strøm der tillades fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
==P-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en P-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_P-ch.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]        [[Fil:MOSFET_P-ch_current.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for P-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en P-kanals MOSFET skal løbe fra Source til Drain.&lt;br /&gt;
&lt;br /&gt;
Source på P-kanals MOSFET forbindes til Vcc (forsyningsspændingen), mens komponenten der skal styres af MOSFET&#039;en forbindes mellem Drain og minus (GND på Arduino). En sådan opstilling ses som en del af [[H-broen opbygget med 4 MOSFET]].&lt;br /&gt;
&lt;br /&gt;
P-kanals MOSFET åbner for strømgennemgang fra Source til Drain, når spændingen mellem Gate og Source når den for den pågældende transistors minimumsspændning, og afhængig af spændingen mellem Gate og Source bestemmes den maksimale strøm der tillades fra Source til Drain. Da spændingsoutputtet fra en port på Arduinoboardet er 5 V i forhold til GND, og ikke 5 V i forhold til Vcc på den forsyning der driver den komponent man ønsker at styre med MOSFETen, har man ofte behov for at bygge et signaltilpasningskredsløb der skal sidde mellem porten på mikroprocessoren, og Gate på P-kanals MOSFETen. Et sådant signaltilpasningskredsløb er vist til [[H-broen opbygget med 4 MOSFET]].&lt;br /&gt;
&lt;br /&gt;
==MOSFET styrer DC motor==&lt;br /&gt;
[[Fil:MOSFET_DC-motor.png|300px|thumb|right]]&lt;br /&gt;
På el-diagrammet til højre er der anvendt en MOSFET transistor til at tænde og slukke for en DC motor. Der er anvendt en FQP30N06L [[MOSFET_transistor#N-kanals_MOSFET|N-kanals MOSFET transistor]]. Når spændingen ved &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; (G) er mellem 3-5 V vil MOSFET transistoren åbne, og der løber strøm fra til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; (D) til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; (S), og dermed kan der løbe en strøm gennem DC motoren. Herved roterer DC motorens aksel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dioden, D1, der på el-diagrammet ses parallelforbundet med motoren, er en sikkerhedsdiode. Motoren indeholder jo en spole, og en spole bliver til en elektromagnet når man sender strøm gennem den. Når man afbryder strømmen til spolen, vil spolen selv forsøge at opretholde sit magnetfelt, og det sker ved at spolen danner en stor spænding med modsat polaritet end da strømmen løb gennem spolen. Denne spænding kan blive meget stor (afhænger af spolen og strømstyrken anvendt), men kortvarigt flere 100 V! For at forhindre dette, sættes dioden på, så når den store spænding opstår, vil strømmen løbe fra – på motoren gennem dioden D1 og til + på motoren, og dermed aflade sig selv. Alternativt ville strømmen løbe ned mod transistoren Q1, og den høje spænding ville kunne ødelægge denne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Komponenter]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Hardware Teknologi]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5178</id>
		<title>MOSFET transistor</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5178"/>
		<updated>2022-11-25T11:23:19Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* N-kanals MOSFET */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
[[Fil:MOSFET_TO220.png|210px|thumb|right]]&lt;br /&gt;
Når man vil forbinde sit Arduinoboard til ”omverdenen”, oplever man af og til, at Arduinoboardet ikke kan levere nok strøm til den komponent man vil tilkoble, eller der skal bruges en højere spænding end de 5 V som Arduinoboardet arbejder med. Hvad gør man så? Jo, så skal man have fat i en transistor…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I specifikationerne over Arduinoboardet kan man læse, at man højest kan trække 20 mA fra et portben på en Arduino&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt;. Det er den strømstyrke man normalt anvender til at få en lysdiode til at lyse. Men hvis man har behov for at trække en større strøm, kan man anvende en transistor, der fungerer som en ”omskifter” eller ”kontakt”, og som man kan &amp;lt;i&amp;gt;tænde&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;slukke&amp;lt;/i&amp;gt; via et portben på Arduinoen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan også komme ud for, at man skal kunne tænde og slukke for en komponent der arbejder på 12 V, og ikke de 5 V som Arduinoboardet gør. Det kan for eksempel være en DC motor eller en pumpe. Disse komponenter vil oftest også trække større strøm end de 20 mA et portben kan levere. Løsningen er igen en transistor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der findes flere slags transistorer; Der er den type der kaldes for ”småsignalstransistore”, som virker som strømforstærkere, men kun kan holde til strømme omkring de 100 mA. Disse transistortyper er beskrevet under [[Transistor]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En anden slags transistor er en MOSFET transistor; Den virker som en tænd og sluk kontakt, hvor man ved en lav spænding (og uendelig lille strømstyrke), kan styre en stor strøm på adskillelige ampere ved store spændinger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kort fortalt, så har MOSFET transistoren 3 ben: &amp;lt;i&amp;gt;Gate&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Drain&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;Source&amp;lt;/i&amp;gt;. Når spændingen på &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; overstiger ca. 3 V (i forhold til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;), så tænder transistoren, og strøm kan løbe fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;. Man kan se en MOSFET transistor som en styrbar kontakt, der kan styres med en spænding. Lidt som et relæ, men uden alt det mekaniske.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en [[#N-kanals MOSFET|N-kanals MOSFET transistor]] af typen FQP30N06. &lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_eldiagram.png|250px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at strømmen skal kunne løbe gennem MOSFET transistoren, skal ”Gaten” åbnes. Det gøres ved at have en spændingsforskel mellem Gate og Source der er afhængig af MOSFET modellen. Størrelsen af Gate-Source spændingen (&amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt;) styrer hvor stor en strøm der kan løbe gennem transistoren. Man kan finde en graf over sammenhængen mellem &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;I_{DS}&amp;lt;/math&amp;gt; i databladet for den MOSFET transistor man ønsker at benytte.&lt;br /&gt;
&lt;br /&gt;
I databladet&amp;lt;ref&amp;gt;[https://www.onsemi.com/download/data-sheet/pdf/fqp30n06l-d.pdf &amp;quot;FQP30N06L datablad&amp;quot;]&amp;lt;/ref&amp;gt; for en FQP30N06L N-kanals MOSFET ser vi grafen for &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; som vist nedenfor. Her ses det, at der kun skal en spændingsforskel på 3 V mellem Gate og Source for at kunne trække 10 A gennem MOSFET’en. Ud fra databladet kan det endvidere læses, at &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; maksimalt må komme op på 20 V.&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
En anden N-kanals MOSFET er IRF520, og sammenligner man dennes &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; i databladet&amp;lt;ref&amp;gt;[https://www.vishay.com/docs/91017/irf520.pdf &amp;quot;IRF520 datablad&amp;quot;]&amp;lt;/ref&amp;gt;, ses det, at hvis man ønsker man at kunne trække helt op til 10 A gennem denne, skal der være en spændingsforskel mellem Gate og Source på (mindst) 7,5 V. Det skal man tænke over, når man vælger &amp;lt;i&amp;gt;hvad&amp;lt;/i&amp;gt; der skal tænde for MOSFET transistoren (f.eks. et Arduinoboard der leverer en spænding på 5 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_IRF520-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==N-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en N-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_N-ch.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]        [[Fil:MOSFET_N-ch_current.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en N-kanals MOSFET skal løbe fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
Source på N-kanals MOSFET forbindes til minus (GND på Arduino), mens komponenten der skal styres af MOSFET&#039;en forbindes mellem Vcc (forsyningsspænding) og Drain. En sådan opstilling ses på [[MOSFET_transistor#MOSFET styrer DC motor|MOSFET styrer DC motor]]. &lt;br /&gt;
&lt;br /&gt;
N-kanals MOSFET åbner for strømgennemgang fra Drain til Source, når spændingen mellem Gate og Source når den for den pågældende transistors minimumsspændning, og afhængig af spændingen mellem Gate og Source bestemmes den maksimale strøm der tillades fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
==P-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en P-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_P-ch.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]        [[Fil:MOSFET_P-ch_current.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for P-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en P-kanals MOSFET skal løbe fra Source til Drain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MOSFET styrer DC motor==&lt;br /&gt;
[[Fil:MOSFET_DC-motor.png|300px|thumb|right]]&lt;br /&gt;
På el-diagrammet til højre er der anvendt en MOSFET transistor til at tænde og slukke for en DC motor. Der er anvendt en FQP30N06L [[MOSFET_transistor#N-kanals_MOSFET|N-kanals MOSFET transistor]]. Når spændingen ved &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; (G) er mellem 3-5 V vil MOSFET transistoren åbne, og der løber strøm fra til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; (D) til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; (S), og dermed kan der løbe en strøm gennem DC motoren. Herved roterer DC motorens aksel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dioden, D1, der på el-diagrammet ses parallelforbundet med motoren, er en sikkerhedsdiode. Motoren indeholder jo en spole, og en spole bliver til en elektromagnet når man sender strøm gennem den. Når man afbryder strømmen til spolen, vil spolen selv forsøge at opretholde sit magnetfelt, og det sker ved at spolen danner en stor spænding med modsat polaritet end da strømmen løb gennem spolen. Denne spænding kan blive meget stor (afhænger af spolen og strømstyrken anvendt), men kortvarigt flere 100 V! For at forhindre dette, sættes dioden på, så når den store spænding opstår, vil strømmen løbe fra – på motoren gennem dioden D1 og til + på motoren, og dermed aflade sig selv. Alternativt ville strømmen løbe ned mod transistoren Q1, og den høje spænding ville kunne ødelægge denne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Komponenter]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Hardware Teknologi]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=H-bro&amp;diff=5177</id>
		<title>H-bro</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=H-bro&amp;diff=5177"/>
		<updated>2022-11-25T10:41:59Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* H-bro med 4 MOSFET */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[fil:h-bro-struktur.png|Strukturelt princip af en H-Bro&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/H_bridge H-Bro struktur] fra Wikipedia&amp;lt;/ref&amp;gt;|300px|right|thumb]]&lt;br /&gt;
En H-bro er en konstruktion der muliggør at man kan drive en eller anden belastning både i positiv og i negativ retning.&lt;br /&gt;
&lt;br /&gt;
Dette anvendes til en [[DC-motor]] når den skal kunne køre begge veje, og det kan anvendes til en bi-polar [[Stepmotor]], hvor man skal kunne sætte spænding på i begge retninger for at vende magnetfeltet.&lt;br /&gt;
&lt;br /&gt;
Man kan lave en H-bro konstruktion på forskellig vis, enten med diskrete komponenter eller med en færdig kreds.&lt;br /&gt;
&lt;br /&gt;
==Generel Styring af H-broen==&lt;br /&gt;
Når man konstruerer styringen til en H-Bro, så skal man tage højde for at den kan styres, så forsyningen kortslutter, hvilket er ret uheldigt og absolut ikke hensigtsmæssigt i en konstruktion.&lt;br /&gt;
&lt;br /&gt;
Hvis man betragter de 4 kontakter i H-broen, så er der 16 forskellige kombinationer af hvordan de kan tændes. Dette er skitseret i nedenstående tabel:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! S1&lt;br /&gt;
! S2&lt;br /&gt;
! S3&lt;br /&gt;
! S4&lt;br /&gt;
! &#039;&#039;&#039;Resultat&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den ene vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Motor bremses&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Motor bremses&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Det siger sig selv, at man skal undgå de sidste 7 muligheder, ad det er yderst uheldigt.&lt;br /&gt;
&lt;br /&gt;
Man kan bruge de 2 muligheder for at bremse motoren. Det forudsætter dog at kontakterne kan lede strøm i begge retninger, hvilket ikke er tilfældet med bipolare transistorer.&lt;br /&gt;
&lt;br /&gt;
===Software biblioteker til stepmotoren===&lt;br /&gt;
Som standard kan man anvende Stepper&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Reference/Stepper Arduino Stepper]&amp;lt;/ref&amp;gt; biblioteket, som er standard installeret sammen med Arduino softwaren.&lt;br /&gt;
&lt;br /&gt;
Standard biblioteket til stepmotoren har det problem, at softwaren blokerer programafvikling, mens man stepper - dette kan være ret uheldigt i forbindelse med betjening og kommunikation, eller generelt det at få flere ting til at ske &amp;quot;samtidigt&amp;quot;&amp;lt;ref&amp;gt;[http://www.htx-arduino.dk/index.php?title=Tid_og_Samtidighed_i_Software#Polling Polling princippet]&amp;lt;/ref&amp;gt; i softwaren.&lt;br /&gt;
&lt;br /&gt;
Der er udviklet et bibliotek på github&amp;lt;ref&amp;gt;[https://github.com/reven/Unistep2 Unistep2 library from GitHub]&amp;lt;/ref&amp;gt; - Unistep2.&lt;br /&gt;
&lt;br /&gt;
Her på wikien er der forklaret et [[Stepper med Accelleration|andet bibliotek til steppermotoren]], som både understøtter samtidighed og accelleration.&lt;br /&gt;
&lt;br /&gt;
==H-Bro konstruktioner==&lt;br /&gt;
Man kan konstruere en H-Bro på forskellige måder, alt efter hvad man ønsker med konstruktionen.&lt;br /&gt;
&lt;br /&gt;
===Relæ-konstruktion===&lt;br /&gt;
Med relæer er det ganske simpelt, der kan man anvende 2 stk skifterelæer, hvor de kobles på følgende måde:&lt;br /&gt;
&lt;br /&gt;
[[fil:h-bro-relay.png|H-Bro styring med 2 relæer|300px]]&amp;lt;br /&amp;gt;&#039;&#039;H-Bro styring med 2 relæer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fordelen ved denne styring er at den er simpel at realisere, og at den ikke giver mulighed for kortslutning af forsyningen.&lt;br /&gt;
&lt;br /&gt;
Hvis et af relæerne er tændt, så vil motoren køre, og hvis begge eller ingen af dem er tændt, så vil motoren blive kortsluttet. Denne konstruktion er altså god, hvis man gerne vil kunne bremse motoren.&lt;br /&gt;
&lt;br /&gt;
Konstruktionen kan også laves med ét relæ der indeholder begge skiftesæt, så vil man kun kunne skifte retning på motoren, og altså ikke slukke den - ønsker man at kunne slukke motoren, så kan man sætte et ekstra relæ ind der afbryder forsyningen. På denne måde vil man kunne lave det sådan at motoren går i friløb når den slukkes.&lt;br /&gt;
&lt;br /&gt;
===Konstruktion med Bipolare transistorer===&lt;br /&gt;
Teknikken i en H-Bro med bipolare transistorer et at anvende to NPN-transistorer i bunden mod stel og to PNP-transistorer i toppen op mod forsyningen. For at disse transistorer skal kunne håndtere strømmen, så vil man normalt anvende krafttransistorer til formålet.&lt;br /&gt;
&lt;br /&gt;
Den grundlæggende del af konstruktionen kunne være som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-bro-bipolare.png|Den grundlæggende opsætning af bipolare transistorer til en H-Bro|400px]]&amp;lt;br /&amp;gt;&#039;&#039;Den grundlæggende opsætning af bipolare transistorer til en H-Bro&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Her kommer den ulempe, at specielt PNP-transistorerne bliver lidt svære at styre, hvis konstruktionen skal fungere med mere end 5V forsyning. Man skal slukke PNP-transistorerne med et højt signal, men ikke bare 5V - signalet skal gerne op på forsyningen til H-broen.&lt;br /&gt;
&lt;br /&gt;
For at løse dette problem, så anvender man gerne flere transistorer.&lt;br /&gt;
&lt;br /&gt;
Et bud på en konstruktion kunne være:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-bro.gif|Realisering med mange modstande, for at sikre at transistorerne slukker]]&amp;lt;br /&amp;gt;&#039;&#039;Realisering med mange modstande, for at sikre at transistorerne slukker&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at reducere konstruktionen lidt kan den laves så nogle transistorer får lidt dobbelt funktion.&lt;br /&gt;
&lt;br /&gt;
Ud over dette er der bygget ind i konstruktionen at begge diagonale transistorer tændes af en indgang, og endelig er der realiseret en beskyttelse, så man ikke kan tænde begge sæt transistorer, og dermed kan man ikke få broen til at kortslutte forsyningen. Kredsløbet kan se ud som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-diagram.png|H-Bro diagram med indbygget beskyttelse|600px]]&amp;lt;br /&amp;gt;&#039;&#039;H-Bro diagram med indbygget beskyttelse&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ud fra de to indgange reagerer styringen som følger:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! X1-1&lt;br /&gt;
! X1-2&lt;br /&gt;
! &#039;&#039;&#039;Resultat&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den ene vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb (broen slukket)&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Beskyttelse - roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Konstruktionen er vist med anslåede værdier, men skal dimensioneres ud fra forsyningsspænding og hvilken motor der skal drives.&lt;br /&gt;
&lt;br /&gt;
* Motoren vælges ud fra hvor meget den skal trække, samt de mekaniske egenskaber. Den ønskede driftspænding (her angivet som 9V) vælges og der findes en startstrøm for motoren.&lt;br /&gt;
* Der vælges to krafttransistorer i NPN (Q2 og Q4) og PNP (Q1 og Q3), der kan holde til strømmen og spændingen der kræves af motoren (dimensioner efter startstrømmen).&lt;br /&gt;
* Der vælges dioder (D1 til D4) der kan holde til samme strøm som krafttransistorerne.&lt;br /&gt;
* Basisstrømmen for Q1 og Q2 findes ved startstrømmen, ud fra transistorernes H&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt;.&lt;br /&gt;
* De to modstande R1 og R2 dimensioneres ud fra basisstrømmen på den transistor der skal have mest. Spændingen er forsyningen minus de spændingsfald der er over BE-strækningerne på transistorerne og CE på hhv. Q5 og Q6.&lt;br /&gt;
* Der vælges en transistortype til Q5 og Q6 der kan holde til den basisstrøm Q1 og Q2 trækker. Ud fra denne transistors H&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt; beregnes så basisstrømmen til Q6.&lt;br /&gt;
* Modstanden R3 beregnes ud fra denne strøm, samt styrespændingen fratrukket de to BE spændingsfald på Q6 og Q4.&lt;br /&gt;
* Der vælges en transistor Q7 som kan trække strømmen fra R3 til stel - sikkert bare samme type som Q5 og Q6.&lt;br /&gt;
* R5 dimensioneres ud fra spændingen over den og basisstrømmen der kræves til Q7.&lt;br /&gt;
* R4 dimensioneres ud fra basisstrømmen i Q5 og strømmen i R5 sammen med spændingen over modstanden.&lt;br /&gt;
* Generelt for alle modstande, så rundes der ned på deres størrelse så man sikrer at transistorerne tænder helt.&lt;br /&gt;
&lt;br /&gt;
Med de anslåede værdier er der vist en simulering herunder. De grønne kurver er spændinger mens de gule kurver er strømme.&lt;br /&gt;
&lt;br /&gt;
Simuleringen kan hentes [http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+50+5+43%0Av+288+384+288+112+0+0+40+5+0+0+0.5%0At+16+336+48+336+0+1+-4.9129327629457595+-0.07733504049299231+100%0At+48+368+80+368+0+1+-4.298583681882915+0.07733504119297265+20%0At+208+368+176+368+0+1+0.565549206082018+0.7007660085523107+20%0At+240+336+208+336+0+1+0.5620930011423408+0.6267605299473932+100%0At+272+368+240+368+0+1+-1.327526536699629+1.8000750215199826e-9+100%0At+48+144+80+144+0+-1+-0.07656691793376158+-0.700648194857874+20%0At+208+144+176+144+0+-1+4.777715961225545+-0.08706723630416224+20%0Ar+96+176+160+176+0+30%0Ar+96+208+160+208+0+500%0Ar+96+240+160+240+0+500%0Ar+0+336+-64+336+0+7000%0Ar+-64+288+0+288+0+10000%0Ar+96+416+160+416+0+22000%0Ag+208+384+208+400+0%0Aw+240+384+208+384+0%0Aw+208+384+176+384+0%0Aw+176+384+80+384+0%0Aw+48+368+48+352+0%0Aw+80+352+80+176+0%0Aw+96+176+80+176+0%0Aw+80+160+80+176+0%0Aw+208+368+208+352+0%0Aw+176+352+176+176+0%0Aw+160+176+176+176+0%0Aw+176+160+176+176+0%0Aw+160+240+208+240+0%0Aw+208+240+208+320+0%0Aw+240+336+240+352+0%0Aw+48+320+48+208+0%0Aw+48+208+96+208+0%0Aw+48+144+32+144+0%0Aw+32+144+32+240+0%0Aw+32+240+96+240+0%0Aw+240+384+288+384+0%0Aw+288+112+176+112+0%0Aw+176+112+176+128+0%0Aw+176+112+80+112+0%0Aw+80+128+80+112+0%0Aw+160+208+208+208+0%0Aw+208+144+208+208+0%0Aw+16+336+0+336+0%0Aw+0+288+240+288+0%0Aw+240+288+240+336+0%0Aw+272+368+272+416+0%0Aw+272+416+160+416+0%0Aw+96+416+16+416+0%0Aw+16+336+16+416+0%0Av+-80+384+-80+336+0+2+8+2.5+2.5+3.141592653589793+0.5%0Av+-160+384+-160+288+0+2+4+2.5+2.5+3.141592653589793+0.5%0Aw+-160+288+-64+288+2%0Aw+-80+336+-64+336+2%0Aw+80+384+-80+384+0%0Aw+-80+384+-160+384+0%0Ao+50+64+0+4103+5+0.00078125+0+2+50+3%0Ao+51+64+0+4103+5+0.00078125+0+2+51+3%0Ao+8+64+0+4103+5+0.2+0+2+8+3%0A på dette link].&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-simulering.png|500px|Simulering af H-Broen, lavet med anslåede værdier]]&amp;lt;br /&amp;gt;&#039;&#039;Simulering af H-Broen, lavet med anslåede værdier&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
De 3 viste signaler er de to input-signaler og spændingen over den modstand der skal symbolisere motoren.&lt;br /&gt;
&lt;br /&gt;
Som det kan ses på simuleringen så gennemløbes de 4 faser korrekt:&lt;br /&gt;
# Begge input er slukkede og som forventet løber der ingen strøm i motoren&lt;br /&gt;
# Input 2 er tændt og som forventet løber der en strøm i motoren (spændingen kan måles til ca. 4,25V)&lt;br /&gt;
# Input 1 er tændt (input 2 slukket) og som forventet løber strømmen den anden vej i motoren (en spænding på ca. 4,24V)&lt;br /&gt;
# Begge input er slukket og her træder sikringen ind, der løber lidt større strøm fra input 1 fordi basis på Q6 trækkes lav og der løber strøm i motoren som ved input 2 tændt (igen en spænding på ca. 4,25V)&lt;br /&gt;
&lt;br /&gt;
For at kontrollere at der ikke i skiftet kan ske en kortslutning af forsyningen, så ændres kredsløbet, så der er konstant 5V på input 1 og en sweepet spænding på input 2, der løber fra 0V til 5V og tilbage igen.&lt;br /&gt;
&lt;br /&gt;
Denne simulering kan hentes [http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+50+5+43%0Av+288+384+288+112+0+0+40+5+0+0+0.5%0At+16+336+48+336+0+1+-4.2093565289498205+0.21288760056943956+100%0At+48+368+80+368+0+1+-4.085914716425955+0.2890009007586427+20%0At+208+368+176+368+0+1+0.5628733689810032+0.7007326668699203+20%0At+240+336+208+336+0+1+0.5587407117147083+0.626500832999997+100%0At+272+368+240+368+0+1+-0.8335524578385181+0.49368104203139934+100%0At+48+144+80+144+0+-1+-0.07554231283368207+-0.7006266956490848+20%0At+208+144+176+144+0+-1+4.573385979493806+-0.2887547226172771+20%0Ar+96+176+160+176+0+30%0Ar+96+208+160+208+0+500%0Ar+96+240+160+240+0+500%0Ar+0+336+-64+336+0+7000%0Ar+-64+288+0+288+0+10000%0Ar+96+416+160+416+0+22000%0Ag+208+384+208+400+0%0Aw+240+384+208+384+0%0Aw+208+384+176+384+0%0Aw+176+384+80+384+0%0Aw+48+368+48+352+0%0Aw+80+352+80+176+0%0Aw+96+176+80+176+0%0Aw+80+160+80+176+0%0Aw+208+368+208+352+0%0Aw+176+352+176+176+0%0Aw+160+176+176+176+0%0Aw+176+160+176+176+0%0Aw+160+240+208+240+0%0Aw+208+240+208+320+0%0Aw+240+336+240+352+0%0Aw+48+320+48+208+0%0Aw+48+208+96+208+0%0Aw+48+144+32+144+0%0Aw+32+144+32+240+0%0Aw+32+240+96+240+0%0Aw+240+384+288+384+0%0Aw+288+112+176+112+0%0Aw+176+112+176+128+0%0Aw+176+112+80+112+0%0Aw+80+128+80+112+0%0Aw+160+208+208+208+0%0Aw+208+144+208+208+0%0Aw+16+336+0+336+0%0Aw+0+288+240+288+0%0Aw+240+288+240+336+0%0Aw+272+368+272+416+0%0Aw+272+416+160+416+0%0Aw+96+416+16+416+0%0Aw+16+336+16+416+0%0Aw+-160+288+-64+288+2%0Aw+-80+336+-64+336+2%0Aw+80+384+-80+384+0%0Aw+-80+384+-160+384+0%0Av+-160+384+-160+288+0+0+40+5+0+0+0.5%0Av+-80+384+-80+336+0+3+5+2.5+2.5+0+0.5%0Ao+48+64+0+4103+5+0.00078125+0+2+48+3%0Ao+49+64+0+4103+5+0.00078125+0+2+49+3%0Ao+8+64+0+4103+5+0.2+0+2+8+3%0A på dette link]&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-sweep.png|500px|Simulering af H-Broen, med sweep på det ene input]]&amp;lt;br /&amp;gt;&#039;&#039;Simulering af H-Broen, med sweep på det ene input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Som det kan ses på simuleringen, så opfører kredsløbet sig meget fornuftigt.&lt;br /&gt;
&lt;br /&gt;
Med lav inputspænding på input 2 og 5V på input 1, så er motoren tændt i den ene retning.&lt;br /&gt;
&lt;br /&gt;
Når spændingen vokser på input 2 sker der først det at motoren slukkes (når Q7 tændes) og efterhånden som Q5 og Q3 tændes, så tændes motoren i den anden retning, altså ingen tegn på kortslutning.&lt;br /&gt;
&lt;br /&gt;
===Konstruktioner med MOSFET transistorer===&lt;br /&gt;
Umiddelbart er [[MOSFET transistor|MOSFET transistorer]] nemme at styre og de har gode egenskaber til at tænde forbindelsen og dermed fungere enkelt som et relæ.&lt;br /&gt;
&lt;br /&gt;
Vi har bare ikke så mange typer på Holstebro HTX, så derfor vises kun et eksempel med denne type.&lt;br /&gt;
&lt;br /&gt;
Den tekniske årsag til at [[MOSFET transistor|MOSFET]] ikke er så nemme at arbejde med til en H-Bro er nemlig det at der kræves noget der kan trække op mod forsyningen (som en PNP-transistor). Her er den tilsvarende en [[P-kanals MOSFET|P-channel MOSFET]], men de har bare den ulempe, at de ikke er så gode til at tænde for strømmen som en [[N-kanals MOSFET|N-channel]]. (de har større indre modstand). Det er der dog efterhånden udviklet, så det er mere realistisk at anvende den type.&lt;br /&gt;
&lt;br /&gt;
Der så en anden ulempe, som man må tage højde for, nemlig det at der er en lille forsinkelse i kredsløbet, hvilket gør at man er nødt til at lægge en lille forsinkelse ind, hvis man vil bruge et signal til at styre H-Broen med, i stedet for selv at sikre i softwaren at der ikke sker kortslutning ved at slukke for det ene sæt inden man tænder det andet. Det giver en enklere elektrisk styring, så man kunne lave H-broen som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Simpel.png|600px|Simpel H-Bro styret af 2 signaler, hvor man selv har ansvaret for at der ikke korsluttes forsyningen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Simpel H-Bro styret af 2 signaler, hvor man selv har ansvaret for at der ikke korsluttes forsyningen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Med 2 sæt af denne H-Bro vil det være enkelt at kunne styre en stepmotor, og det vil gøre det simpelt at komme til at køre half-steps, hvilket automatisk vil lave den sikring at man slukker den ene retning inden den anden tændes, da man lige netop arbejde med at slukke den ene vikling for at lave half-step.&lt;br /&gt;
&lt;br /&gt;
Simuleringen er vist med to generatorer faseforskudt, og den viser at opstillingen fungerer som ønsket. Diagram med simulering kan findes på [http://www.falstad.com/circuit/circuitjs.html?cct=$+0+0.000005+5.023272298708815+50+5+50%0AR+128+384+96+384+0+2+40+2.5+2.5+0+0.75%0Aw+128+448+144+448+0%0Af+240+304+288+304+1+1.5+0.02%0Af+336+304+384+304+1+1.5+0.02%0Af+240+416+288+416+0+1.5+0.02%0Af+336+416+384+416+0+1.5+0.02%0Ag+384+448+384+464+0%0Av+432+432+432+336+0+0+40+5+0+0+0.5%0Ar+304+368+368+368+0+80%0Aw+160+336+336+336+0%0Aw+336+336+336+304+0%0Aw+336+384+336+416+0%0Aw+144+448+144+368+0%0Aw+288+432+288+448+0%0Aw+288+448+384+448+0%0Aw+384+432+384+448+0%0Aw+384+400+384+368+0%0Aw+368+368+384+368+0%0Aw+384+320+384+368+0%0Aw+288+400+288+368+0%0Aw+288+368+304+368+0%0Aw+288+320+288+368+0%0Aw+288+288+288+272+0%0Aw+288+272+384+272+0%0Aw+384+272+384+288+0%0Aw+384+272+432+272+0%0Aw+432+432+432+448+0%0Aw+384+448+432+448+0%0AI+160+416+240+416+0+0.5+5%0AI+176+368+256+368+0+0.5+5%0Aw+144+304+240+304+0%0Aw+160+336+160+384+0%0Aw+160+384+128+384+0%0Aw+144+368+144+304+0%0Aw+256+384+336+384+0%0Aw+160+384+160+416+0%0Aw+144+368+176+368+0%0Aw+256+368+256+384+0%0Aw+432+336+432+272+0%0Ax+439+373+468+376+4+24+5V%0AR+128+448+96+448+0+2+40+2.5+2.5+3.141592653589793+0.75%0Ao+0+8+0+4103+5+0.00009765625+0+2+0+3%0Ao+8+8+0+4103+5+0.05+0+2+8+3%0A dette link til falsted.com]&lt;br /&gt;
====Styring med kun fremad og bak====&lt;br /&gt;
Hvis man vil styre en motor/vikling, med et signal, så er der her en kredsløbsmulighed, hvor der indføres en forsinkelse ved hjælp af et RC-led og noget logik som vist her:&lt;br /&gt;
&lt;br /&gt;
[[fil:FET-H-Bro.png|800px|H-Bro til styring med et signal pr. motor/vikling med sikring af skiftetidspunktet - vist med simulering]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;H-Bro til styring med et signal pr. motor/vikling med sikring af skiftetidspunktet - vist med simulering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Diagram med simulering kan ses og eksperimenteres med på [http://www.falstad.com/circuit/circuitjs.html?cct=$+0+0.000005+5.023272298708815+50+5+50%0A151+256+288+336+288+0+2+0+12%0A151+256+352+336+352+0+2+12+12%0AR+-160+288+-192+288+0+2+40+2.5+2.5+0+0.5%0Aw+0+336+0+368+0%0Aw+0+368+256+368+0%0Aw+160+208+176+208+0%0Ar+0+208+0+272+0+100000%0Aw+0+208+96+208+0%0Ac+96+208+96+272+0+1e-8+2.6179796029120896%0Ag+96+272+96+288+0%0Aw+240+208+240+336+0%0Aw+256+336+240+336+0%0Aw+64+272+64+304+0%0Aw+64+304+256+304+0%0Aw+256+272+176+272+0%0Aw+176+208+176+272+0%0Aw+336+352+352+352+0%0Af+448+208+496+208+1+1.5+0.02%0Af+544+208+592+208+1+1.5+0.02%0Af+448+320+496+320+0+1.5+0.02%0Af+544+320+592+320+0+1.5+0.02%0Ag+592+352+592+368+0%0Av+640+336+640+240+0+0+40+12+0+0+0.5%0Ar+512+272+576+272+0+80%0Aw+368+240+544+240+0%0Aw+544+240+544+208+0%0Aw+544+288+544+320+0%0Aw+352+352+352+272+0%0Aw+496+336+496+352+0%0Aw+496+352+592+352+0%0Aw+592+336+592+352+0%0Aw+592+304+592+272+0%0Aw+576+272+592+272+0%0Aw+592+224+592+272+0%0Aw+496+304+496+272+0%0Aw+496+272+512+272+0%0Aw+496+224+496+272+0%0Aw+496+192+496+176+0%0Aw+496+176+592+176+0%0Aw+592+176+592+192+0%0Aw+592+176+640+176+0%0Aw+640+336+640+352+0%0Aw+592+352+640+352+0%0Aw+0+272+0+336+0%0Ar+-160+288+-96+288+0+100000%0At+-96+288+-64+288+0+1+-11.999999986680002+1.119999995424623e-8+100%0Ag+-64+304+-64+336+0%0Ar+-64+272+-64+208+0+10000%0Aw+496+176+-64+176+0%0Aw+-64+176+-64+208+0%0AI+368+320+448+320+0+0.5+12%0AI+384+272+464+272+0+0.5+12%0AI+-64+272+0+272+0+0.5+12%0AI+0+272+64+272+0+0.5+12%0AI+96+208+160+208+0+0.5+12%0AI+176+208+240+208+0+0.5+12%0Aw+352+208+448+208+0%0Aw+368+240+368+288+0%0Aw+368+288+336+288+0%0Aw+352+272+352+208+0%0Aw+464+288+544+288+0%0Aw+368+288+368+320+0%0Aw+352+272+384+272+0%0Aw+464+272+464+288+0%0Aw+640+240+640+176+0%0Ax+647+277+689+280+4+24+12V%0Ao+2+8+0+4103+5+0.00009765625+0+2+2+3%0Ao+23+8+0+4103+20+0.2+0+2+23+3%0A dette link til falsted.com]&lt;br /&gt;
&lt;br /&gt;
Signalet kommer fra firkantgeneratoren, og er ment som et 3,3V eller et 5V signal fra en mikrocontroller som Arduino.&lt;br /&gt;
&lt;br /&gt;
Den første transistor er en almindelig lille NPN som BC547, der sidder der for at konvertere op på en højere spænding.&lt;br /&gt;
&lt;br /&gt;
Inverteren efter er for at sikre at signalet er pænt firkantet.&lt;br /&gt;
&lt;br /&gt;
RC-leddet med 100k og 10nF er det der laver forsinkelsen til at transistorerne kan nå at slukke, inden de andre tænder, samt for at sikre at forsinkelser i de anvendte gates ikke har samme effekt. Tiden her er sat meget høj, for at det kan slå igennem i simuleringen. Hvis det skal anvendes til en stepmotor der arbejder hurtigt, så vil denne forsinkelse ødelægge signalerne, og måske endda have den modsatte virkning, så det anbefales kraftigt at forsinkelsen tilpasses den anvendelse der er tiltænkt.&lt;br /&gt;
&lt;br /&gt;
De resterende invertere og de to NAND-gates er logikken der etablerer signalerne med forsinkelserne lavet af RC-leddet. Disse gates forsynes med 12V (derfor skal det nok være almindelige C-MOS kredse fra fx. 40-serien, som fx 4069 og 4011).&lt;br /&gt;
&lt;br /&gt;
De 4 MOSFET transistorer er blot til simulering. Der skal vælges nogen passende typer som fx IRF530 som N-channel og IRF9540 som P-channel. Simuleringen giver blot en indikation om at det virker. Kredsløbet skal tilpasses de rigtige MOSFET og de gate-typer man vælger at anvende.&lt;br /&gt;
&lt;br /&gt;
Ideen med at anvende en højere spænding er at man kan drive mere med den høje spænding, men også at de foreslåede MOSFET fungerer bedre når de kommer op på min. 10V GS-spænding, da de tænder mere effektivt til høje strømme - igen er det overvejelser man skal gøre sig til den enkelte anvendelse.&lt;br /&gt;
&lt;br /&gt;
Modstanden på 80 ohm er blot en simulering af en motor/vikling eller hvad man har tænkt sig at drive.&lt;br /&gt;
&lt;br /&gt;
I opstillingen skal der desuden tilføjes 4 klamping-dioder, hvis man skal arbejde med en induktiv belastning.&lt;br /&gt;
&lt;br /&gt;
====Styring med mulighed for at slukke viklingen====&lt;br /&gt;
Hvis ens styringsbehov ikke kun er frem og tilbage, som det kan være ved en stepmotor, men at man også skal have muligheden for at kunne slukke for viklingen, så skal der indføres et ekstra signal til at slukke, samt logik til at slukke alle MOSFET.&lt;br /&gt;
&lt;br /&gt;
For at avende de samme gates er der lavet følgende opstilling:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Enable.png|800px|Styring af H-broen med muligheden for at slukke for belastningen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Styring af H-broen med muligheden for at slukke for belastningen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der skal et højt signal ind på den ekstra transistor (igen bare 3,3V eller 5V signal) for at viklingen tændes, og så vender opstillingen strømmen i belastningen med den nødvendige pause.&lt;br /&gt;
&lt;br /&gt;
Det skal bemærkes at alle simuleringer er lavet med ret lav hastighed, og at det kun skal illustrere principperne i logikken og det at tænde MOSFET&#039;erne forskudt. Årsagen er at simuleringen ikke tager højde for de praktiske forhold i komponenterne (kapaciteter, udgangsstrømme osv.)&lt;br /&gt;
&lt;br /&gt;
====Praktisk test af kredsløbet====&lt;br /&gt;
Som det kan ses i diagrammet herunder er der ændret i komponentstørrelserne, og der er sat navne på MOSFET&#039;erne samt placeret klampingdioder, så der kan drives en induktiv belastning:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Test.png|1000px|Diagram med praktiske størrelser til normal brug af H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Diagram med praktiske størrelser til normal brug af H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Forsinkelsen er dimensioneret til ca. 2us, da både gates og MOSFET har delay og turnoff-tider på 50-100ns, så for en sikkerheds skyld sættes tiden 20 gange så stor.&lt;br /&gt;
&lt;br /&gt;
Ved testen viste målinger at det ikke bare er for lidt ekstra sikkerhed at der skal 2us til. Den værste faktor er at drive kapaciteten i gaten på MOSFET&#039;erne, som det kommenteres under målingerne.&lt;br /&gt;
&lt;br /&gt;
En anden erfaring der kom ved målingerne er at transistoren BC547&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/BC547.pdf BC547 Småsignaltransistor] Datablad&amp;lt;/ref&amp;gt; skal drives ret hårdt for at kunne følge med til skiftetiderne.&lt;br /&gt;
&lt;br /&gt;
Der er anvendt IRF530&amp;lt;ref name=&amp;quot;irf530&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/IRF530.pdf IRF530 N-Channel MOSFET] Datablad&amp;lt;/ref&amp;gt; som N-channel og IRF9540&amp;lt;ref name=&amp;quot;irf9540&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/IRF9540.pdf IRF9540 P-Channel MOSFET] Datablad&amp;lt;/ref&amp;gt; som P-channel. Med netop disse to MOSFET, så er klampingdioderne faktisk overflødige, da begge MOSFET har den indbygget. De er beholdt i diagrammet, for at gøre opmærksom på at de er vigtige.&lt;br /&gt;
&lt;br /&gt;
Til de logiske komponenter anvendes standard CMOS kredse fra 4000-serien, da de kan forsynes med op til 15V, og derfor har et bredt anvendelsesområde. Der er anvendt CD4069&amp;lt;ref name=&amp;quot;CD4069&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/CD4069.pdf CD4069 CMOS Inverter] Datablad&amp;lt;/ref&amp;gt; som inverter og CD4011&amp;lt;ref name=&amp;quot;CD4011&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/CD4011.pdf CD4011 CMOS NAND-gate] Datablad&amp;lt;/ref&amp;gt; som [[NAND-gate]].&lt;br /&gt;
&lt;br /&gt;
Belastningen af H-Broen er lavet med 4 stk 1,2 ohm 10W, så den samlede belastning ligger omkring 5 ohm.&lt;br /&gt;
&lt;br /&gt;
Over forsyningen er der placeret to kondensatorer, en 4700uF og en 100nF. De skal placeres tæt på MOSFET&#039;erne, da funktionen er at levere strøm hurtigt. Grunden til at anvende to forskellige typer er at den store har kapaciteten til at lever meget strøm, men er ikke god til at gøre det meget hurtigt, den lille har det omvendt.&lt;br /&gt;
&lt;br /&gt;
Målingerne herunder er alle foretaget med et firkant-signal på 50 kHz, og hvor ikke andet er bemærket er forsyningen ca. 12 V (der er ret meget tab i tilledninger og fumlebræt på grund af store strømme). Da oscilloscopet kun har 2 kanaler er en del billeder klippet sammen i [[Photoshop]] for at tydeliggøre sammenhængene.&lt;br /&gt;
&lt;br /&gt;
Første måling herunder er en visning af forholdene omkring transistoren og formning af signalerne:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-trans.png|600px|Målinger på input-transistoren Q1 i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på input-transistoren Q1 i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den nederste blå input-kurve er spændingen der kommer ind fra tonegeneratoren, som det ses er spændingen ikke helt oppe på 5V, det skyldes at tonegeneratoren har 600 ohm i udgangen, og at de 3,3 k ohm belaster spændingen ned omkring 4V. Dette har ikke væsentlig betydning.&lt;br /&gt;
&lt;br /&gt;
Den øverste røde kurve er målt på collector af Q1 ved R2, og som forventet inverteres signalet og får en amplitude på ca. 12V. En lidt uventet ting er at der kommer en forsinkelse på ca. 2us når signalet går højt. Denne forsinkelse skyldes at transistorens kapacitet på BE skal aflades gennem de 3,3k ohm, og det tager ca den tid, hvilket forsinker transistoren i at slukke. Det får ikke den store betydning i resten af kredsløbet, andet end at der arbejdes med tider på 8us og 12us i stedet for symmetrisk 10us og 10us. Havde vi målt på 500 kHz, så ville det have ødelagt signalet totalt.&lt;br /&gt;
&lt;br /&gt;
Den næste røde kurve er efter inverteringen af collector-signalet, og det ser ud helt som forventet - rent og firkantet uden synlige forsinkelser og i den forventede fase. Dette signal bruges som reference for resten af målingerne.&lt;br /&gt;
&lt;br /&gt;
En ting der er værd at bemærke er at de høje 12V signaler har nogle udsving - de stammer fra tidspunkter hvor MOSFET&#039;erne tænder og slukker, og dermed ændrer belastning af forsyningen, og da opstillingen er lavet på fumlebræt og der er ledninger hen til fumlebrættet, så vil der uvægerligt være spændingsfald på disse ledninger. Det er stabiliseret en del med kondensatorer over forsyningen, men det slår stadig igennem, som det kan ses på alle målingerne. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anden sæt målinger viser indførslen af forsinkelsen:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-delay.png|600px|Målinger på forsinkelsen i H-Broen etableret med R3 og C1]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på forsinkelsen i H-Broen etableret med R3 og C1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den nederste blå kurve er den der anvendes som reference gennem de følgende målinger. Det er udgangen af IC1A, der tidsmæssigt sætter referencen for hvad der sker videre i kredsløbet.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve er målt på kondensatoren C1 ved indgangen af IC1C, og viser op og afladningskurven for RC-leddet dannet af R3 og C1. Op og afladning ser ud som forventet.&lt;br /&gt;
&lt;br /&gt;
Den næste kurve skulle være digitaliseringen af det forsinkede signal, men det ses her at der er betydelige afrundinger på kurven. Dette skyldes at inverteren ikke digitaliserer 100%, men blot laver en forstærkning af det indkomne signal så inputtet i de logisk veldefinerede områder giver et rent output, mens det udefinerede område fra 30-70% af forsyningen ikke giver et sikkert logisk output&amp;lt;ref name=&amp;quot;CD4069&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. Dette har dog ingen praktisk betydning, da dette output blot føres videre til andre logiske kredse, og ikke tænder eller slukker for MOSFET&#039;erne. Signalet på udgangen passerer pænt hurtigt igennem det udefinerede område, og giver ikke nogen problemer. Havde det givet problemer kunne man anvende en inverterende schmitt-trigger med en hysterese som CD40106, så ville problemet være elimineret.&lt;br /&gt;
&lt;br /&gt;
Der ses at den ønskede forsinkelse på 2us ikke er helt opfyldt, men at det ligger tæt nok på med ca. 1,7us til 1,8us til at kunne anvendes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tredje sæt målinger viser hvordan de sidste signaler, der dannes til at skabe styresignalerne, ser ud:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-inv.png|600px|Målinger på inverteret indgangssignal og ikke inverteret forsinket indgangssignal]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på inverteret indgangssignal og ikke inverteret forsinket indgangssignal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vi har igen samme referencesignal på den nederste blå kurve.&lt;br /&gt;
&lt;br /&gt;
Øverst i det tredje sæt målinger er der vist inverteringen af reference-signalet. Det ser ud helt som forventet.&lt;br /&gt;
&lt;br /&gt;
Den nederste røde kurve viser det forsinkede signal i ikke inverteret fase, og det har igen de samme forsinkelser samt at det kan ses at det er rette meget pænt op på stige- og falde-tiderne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fjerde sæt målinger viser de signaler der faktisk driver de to P-Channel MOSFET&#039;er og de to N-Channel MOSFET&#039;er:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-driver.png|600px|Målinger på Gate-signalerne til MOSFET&#039;erne i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på Gate-signalerne til MOSFET&#039;erne i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Igen har vi det samme blå referencesignal nederst.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve på udgangen af IC2B er dannet af referencesignalet og det ikke inverterede, forsinkede signal, således at de trækker lavt efter de ca. 2us forsinkelse og går højt igen lige når referencesignalet går lavt, så MOSFET&#039;erne tænder forsinket og slukker u-forsinket. Dette er med til at skabe et tidsrum hvor alle MOSFET&#039;er i broen er slukket. Man kan også ses på signalet hvorfor denne forsinkelse er så vigtig, nemlig at skiftet bliver forsinket ved at udgangen ikke kan drive den kapacitet der sidder i gaten af MOSFET&#039;en hurtigere ON / OFF, der godt nok gør at MOSFET&#039;en er ret hurtig til at begynde at tænde, men at den tager et stykke tid om at slukke. Størrelsen på kapaciteten ind på gaten på en IRF9540 kan ses herunder som 1400 pF, hvilket forklarer det langsomme skift på næsten 2us på udgangen af NAND-gaten.&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-C-9540.png|1000px|Kapacitetsværdierne på en IRF9540 fra databladet]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Kapacitetsværdierne på en IRF9540 fra databladet&amp;lt;ref name=&amp;quot;irf9540&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den anden kurve er inverteringen af den øverste kurve fra IC1E, og den anvendes til at drive den N-channel MOSFET U$2 der skal tænde samtidigt med P-Channel MOSFET&#039;en U$3 omtalt lige ovenfor. På dette signal ses noget af det samme fænomen, blot ikke så markant, hvilket skyldes at den IRF530 der anvendes har en lavere gate-kapacitet, som det kan ses i databladsudsnittet herunder:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-C-530.png|1000px|Kapacitetsværdierne på en IRF530 fra databladet]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Kapacitetsværdierne på en IRF530 fra databladet&amp;lt;ref name=&amp;quot;irf530&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På samme måde som ved øverste og anden øverste kurve kan man se de samme ting på signalerne for de næste to kurver. De er dannet af IC2A og IC1F og lider af de samme skavanker, men det er tydeligt at se at der lige netop er blevet slukket helt for det ene sæt MOSFET inden det andet sæt tænder, så forsinkelsen på de små 2us ser ud til at være nok.&lt;br /&gt;
&lt;br /&gt;
Det ses desuden på de to nederste signaler at de kun tænder MOSFET&#039;erne i ca. 6us, hvor de to øverste signaler tænder MOSFET&#039;erne i ca. 10us. Det skyldes den asymmetriske forsinkelse som transistoren i starten indførte, så der kom 12us puls og 8us pause i referencesignalet. Dette betyder at 50 kHz er omkring den øverste grænse at denne opstilling kan anvendes ved, hvis der skal fordeles nogenlunde rimeligt mellem de to strømretninger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
På det femte sæt målinger ser vi hvordan spændingerne på udgangen af H-Broen ser ud:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-load.png|600px|Målinger på input-transistoren Q1 i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på input-transistoren Q1 i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Igen er det referencesignalet i den nederste blå kurve.&lt;br /&gt;
&lt;br /&gt;
Ser man på tidsforholdene i den øverste kurve, ses det at der hvor MOSFET&#039;erne skulle starte omkring 2us inde i referencesignalets høje periode, så er begge sider høje lidt under 1us, hvorefter venstre side trækkes lav, og højre side bliver trukket en anelse nedad (men er tændt) det rettes dog hurtigt.&lt;br /&gt;
&lt;br /&gt;
Der hvor MOSFET&#039;erne skulle slukke, nemlig hvor referencesignalet går lavt, der ser vi igen en forsinkelse, denne gang på lidt over 1us inden høje side begynder at gå lav, og umiddelbart efter ses det også at venstre side går opad sammen med højre side, og broen er slukket i begge retninger.&lt;br /&gt;
&lt;br /&gt;
Det samme gentager sig i den modsatte fase, og det ses at de tider der er spænding over belastningen svarer til de ca. 10us og 6us som det kunne ses tidligere. Kapaciteterne giver altså endnu en forsinkelse på at tænde udgangen på H-Broen.&lt;br /&gt;
&lt;br /&gt;
Ser man på spændingsforholdene, så vil man se at når MOSFET&#039;erne er tændt, så er den lave spænding oppe på omkring 1V og den høje spænding ligger på ca. 10V. Det betyder at der ligger en spænding på 9V over belastningen, og der trækkes altså omkring 1,8A i belastningen.&lt;br /&gt;
&lt;br /&gt;
Med ca. 1V og 2A er det omkring 2W der afsættes i hver MOSFET mens de er tændt, men da ingen af dem er tændt i mere end halvdelen af tiden, så afsættes der i gennemsnit ikke mere end 1W i hver MOSFET, hvilket er omkring grænsen for hvad de kan tage uden køling. Sætter man derimod køling på, så vil de kunne klare væsentlig mere. Det kan dog ikke anbefales at have broen slukket, da der så vil afsættes ca. de 2W i to af MOSFET&#039;erne, og det er mere end de kan klare uden køling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Det sjette kurvesæt viser de forhold der er på forsyningen:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-fors.png|600px|Målinger på forsyningen til H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på forsyningen til H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disse målinger er lige for at forklare at forsyningen ikke er helt stabil, selvom den er blevet sikret med to kondensatorer for at holde den nogenlunde stabil.&lt;br /&gt;
&lt;br /&gt;
På den blå referencemåling ses de underlige variationer i det høje signal ca. 2us efter signalet er gået højt og igen lidt variation i det lave signal 2us efter at det er gået lavt.&lt;br /&gt;
&lt;br /&gt;
Den øverste røde kurve viser tydeligt at der sker noget på 12V forsyningen samtidigt med at forstyrrelserne kommer i signalet, så de stammer herfra. Årsagen til dem er at MOSFET&#039;erne skifter fra tændt til slukket til at være tændt igen i dette tidsrum. Der ses en lignende forstyrrelse på forsyningen i det andet tidspunkt hvor MOSFET&#039;erne skifter om på spændingen.&lt;br /&gt;
&lt;br /&gt;
På det tidspunkt hvor forstyrrelserne er på forsyningen kan der også anes en lille variation på GND-målingen, som jo burde være helt flad. Det skyldes modstande og induktioner i fumlebrættet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Det syvende kurvesæt angiver hvad der sker, hvis man sætter forsyningen ned til omkring 5V:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-5V.png|600px|Målinger på styresignal og output af H-Broen ved 5V forsyning]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på styresignal og output af H-Broen ved 5V forsyning&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Referencen er tidsmæssigt den samme blå kurve, men er her faldet til et 5V signal.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve er den spænding der styrer gaten på MOSFET U$2, altså signalet ud af IC1E. Hvis man sammenligner den med kurven for det samme signal med 12V forsyning (i det fjerde målesæt), så vil man se at det tager næsten dobbelt så lang tid for signalet at komme op på 5V, som det tog signalet at komme op på 12V. Dette skyldes CMOS-kredsens ringe evne til at drive strøm ved den lave forsyningsspænding&amp;lt;ref name=&amp;quot;CD4069&amp;quot; /&amp;gt;. Det betyder både at MOSFET&#039;erne tænder senere, men også at de slukker væsentligt senere. Forklaringen kan ses på de strømme en CMOS kreds kan drive som vist i databladet herunder:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-CD4069.png|1000px|Udsnit fra databladet på en CD4069, der viser strømmene som udgangen kan levere ved hhv. 5V, 10V og 15V]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Udsnit fra databladet på en CD4069&amp;lt;ref name=&amp;quot;CD4069&amp;quot; /&amp;gt;, der viser strømmene som udgangen kan levere ved hhv. 5V, 10V og 15V&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kigger man på de to næste kurver kan det være lidt svært at se, men det tolkes at de 2us efter at referencesignalet går højt, der begynder det næste sæt MOSFET&#039;er at tænde, men den anden del af H-Broen er endnu ikke slukket, så forsyningen kortslutter, og først mellem 4us og 6us kommer H-Broen ud af dette igen, hvor det kan ses at den venstre side trækker lavt og den højre side trækker højt i belastningen.&lt;br /&gt;
&lt;br /&gt;
Igen hvor den øverste kurve burde gå lav sammen med referencesignalet, der forbliver det højt i ca. 4us, på grund af den store kapacitet i gaten og den ringen evne til at trække strøm i udgangen af CMOS-kredsen. Dette giver igen en fase hvor broen er kortsluttet, og derefter en fase hvor den højre side langsomt bliver lav, således at kortslutningen er væk og der løber strøm i loadmodstanden.&lt;br /&gt;
&lt;br /&gt;
Konklusionen på disse målinger er at den viste opstilling ikke er egnet til 5V forsyning. Det kunne måske reddes ved at anvende HCMOS kredse som fx 74HC00 til NAND-gaten&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/74HC00.pdf 74HC00 HCMOS NAND-gate] Datablad&amp;lt;/ref&amp;gt; og 74HC04 til inverteren&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/74HC04.pdf 74HC04 HCMOS Inverter] Datablad&amp;lt;/ref&amp;gt;, der kun kan arbejde på 5V, men som til gengæld kan trække større strømme, hvilket ville kunne løse problemet. Jeg ville så helt sikkert også fjerne transistoren i indgangen, da den kun er der for at tilpasse op til 12V signaler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===H-bro med 4 MOSFET===&lt;br /&gt;
Navnet &amp;lt;i&amp;gt;H-bro&amp;lt;/i&amp;gt; stammer fra måden hvorpå DC motoren forbindes til strømforsyningen på; det danner noget der ligner et H. Dette ses på figuren herunder. &amp;lt;math&amp;gt;k_1&amp;lt;/math&amp;gt; til &amp;lt;math&amp;gt;k_4&amp;lt;/math&amp;gt; kan i første omgang opfattes som almindelige vippeafbrydere, der enten kan være &amp;lt;i&amp;gt;sluttet&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;afbrudt&amp;lt;/i&amp;gt;. Som forklaret under [[H-bro#Generel Styring af H-broen|Generel Styring af H-broen]] kan de fire vippeafbrydere kombineres i forskellige settings, hvorved der opnås enten strømløb den ene vej gennem DC motoren, eller den anden vej gennem DC motoren, hvilket bestemmer DC motorakslens rotationsretning. Motoren kan endvidere bremses.&lt;br /&gt;
 &lt;br /&gt;
[[Fil:H_bro-open.png|400px|Principskitse for H-bro]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Principskitse for H-bro&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
På el-diagrammet nedenfor ses H-broen hvor kontakterne K1 til K4 er udskiftet med [[MOSFET_transistor|MOSFET]] transistorer. Hver af de fire MOSFET transistorer styres (dvs. åbnes og lukkes) ved at sætte K1, K2, K3 og K4 enten høj (+5 V fra mikroprocessor) eller lav (0 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:H bro-diagram-FQP MOSFET.jpg|800px|El-diagram over H-bro med 4 MOSFET]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagram over H-bro med 4 MOSFET&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De anvendte [[MOSFET_transistor|MOSFET]] transistorer kan håndtere en strøm på maksimalt 27 A. Overstiges denne strømstyrke, vil transistorerne brænde af.&lt;br /&gt;
&lt;br /&gt;
Da de anvendte [[P-kanals MOSFET]] transistorer skal have en spændingsforskel mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; på &lt;br /&gt;
-8V, for at kunne håndtere en strømstyrke gennem &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; på 27 A, anvendes en gate-driver. Det er transistoren Q1, sammen med modstandene R1, R3 og R4 for Q2, mens Q6, R5, R6 og R7 er gate-driver for Q4.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beregning af modstande til signaltilpasningen til H-bro====&lt;br /&gt;
På el-diagrammet ovenfor, ses ”signaltilpasningskredsløb” markeret i de to røde kasser. Formålet med disse to kredsløb er, at kunne tænde og slukke for [[P-kanals MOSFET]] (Q2 og Q4 på el-diagrammet ovenfor). Da P-kanals MOSFET’s Source ben er forbundet til +12 V, og ikke GND som en [[N-kanals MOSFET]] ville være, er Arduinoboardets output på 5 V jo i forhold til GND og ikke i forhold til +12 V, og dermed ikke direkte brugbar for at styre P-kanals MOSFET.&lt;br /&gt;
&lt;br /&gt;
Transistoren, Q1, er en almindelig BC547 småsignals transistor. Den tænder, når spændingen mellem &amp;lt;b&amp;gt;Basis&amp;lt;/b&amp;gt; (ben 2) og &amp;lt;b&amp;gt;Emitter&amp;lt;/b&amp;gt; (ben 3) er 0,6 V. Det vil sige, at når punktet K1 – der er forbundet til en af Arduinoboardets outputporte – bliver HIGH, er der 5 V i forhold til GND på K1. Ved Basis på Q1 skal der være 0,6 V, og forskellen mellem de 5 V og 0,6 V – det vil sige 4,4 V – skal ligge over modstanden R1. For at kunne beregne værdien af R1, skal vi kende strømstyrken der løber ind i &amp;lt;b&amp;gt;Basis&amp;lt;/b&amp;gt;. Den er 100 gange lavere end strømstyrken der løber ind i transistorens &amp;lt;b&amp;gt;Collector&amp;lt;/b&amp;gt;-ben (ben 1). Det vælges at designe kredsløbet ud fra, at strømstyrken ind i &amp;lt;b&amp;gt;Collector&amp;lt;/b&amp;gt; på Q1 er 10 mA. Dermed beregnes strømstyrken i &amp;lt;b&amp;gt;Basis&amp;lt;/b&amp;gt;, &amp;lt;math&amp;gt;I_b&amp;lt;/math&amp;gt;, til:&lt;br /&gt;
&amp;lt;math&amp;gt;I_b = \frac{I_c}{h_{FE}} = \frac{10 mA}{100} = 0,1 mA&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Derefter beregnes R1: &lt;br /&gt;
&amp;lt;math&amp;gt;R_1 = \frac{U_{R_1}}{I_b} = \frac{4,4 V}{0,1 mA} = 44 k\Omega \approx 39 k\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Når transistoren Q1 er tændt, ligger der ca. 0,2 V mellem &amp;lt;b&amp;gt;Collector&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Emitter&amp;lt;/b&amp;gt;. Spændingen mellem R3, R4 og Q1 er 12 V. Dermed ligger der en spænding på:  &amp;lt;math&amp;gt;U_{forsyning} - U_{CE,Q1} = 12 V - 0,2 V = 11,8 V&amp;lt;/math&amp;gt; over modstandende R3 og R4. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modstanden R3 skal beregnes, så spændingen over denne bliver 8 V, da dette vil tillade et strømtræk gennem Q2 på op til 27 A&amp;lt;ref&amp;gt;[https://www.onsemi.com/download/data-sheet/pdf/fqp30n06l-d.pdf &amp;quot;FQP30N06L datablad&amp;quot;]&amp;lt;/ref&amp;gt;. Det er den spænding der vil komme til at ligge mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; på Q2. Strømmen gennem R3, &amp;lt;math&amp;gt;I_c&amp;lt;/math&amp;gt;, er sat til 10 mA. Modstanden R3 kan dermed beregnes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_3 = \frac{U_{R3}}{I_c} = \frac{8 V}{10 mA} = 800 \Omega \approx 820 \Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tilbage er modstanden R4, hvor den resterende spænding skal ligge:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_4 = \frac{U_{R4}}{I_c} = \frac{11,8 V - 8 V}{10 mA} = 380 \Omega \approx 390 \Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Færdige styringer der indeholder en H-Bro===&lt;br /&gt;
En løsning der kan være god, hvis man bare skal have en H-Bro til at fungere er at vælge en færdig kreds/board der indeholder hele styringen. Her har vi forskellige typer:&lt;br /&gt;
&lt;br /&gt;
[[fil:L293-eksempel.png|thumb|right|200px|Principskitse over L293 motor driver]]&lt;br /&gt;
En [http://htx-elev.ucholstebro.dk/el/komponent/L293N.pdf L293] der består af 4 drivere, der to sammen kan forme en H-bro, den har følgende egenskaber:&lt;br /&gt;
* 16 bens DIL IC, der skal monteres på et print (virker ikke så godt i et fumlebræt)&lt;br /&gt;
* Kan danne 2 H-Broer men også 4 individuelle styringer af motorer, der ikke skal vende polaritet&lt;br /&gt;
* Skal have separat logik-forsyning 5V (4,5 - 7 V)&lt;br /&gt;
* Arbejder med motorer på 5 - 36 V op til 1A&lt;br /&gt;
* SKAL have beskyttelsesdioder monteret fx. typen 1N4007&lt;br /&gt;
* Er meget fleksibel i opbygningen&lt;br /&gt;
&lt;br /&gt;
[[fil:L9110-eksempel.png|thumb|right|150px|Billede af print med 2 stk L9110 H-Bro drivere]]&lt;br /&gt;
Et print med to stk [https://www.elecrow.com/download/datasheet-l9110.pdf L9110] H-Bro kredse, der kan styre enten to [[DC-motor]]er eller en Bi-polar [[Stepmotor]]. Printet er bl.a. købt ved [https://www.aliexpress.com/item/Smart-Electronics-L9110S-DC-Stepper-Motor-Driver-Board-H-Bridge-best-prices/32513995566.html Aliexpress.com], og har følgende egenskaber:&lt;br /&gt;
* Sidder på et print med 6 bens tilslutning til styring og forsyning samt 4 skrueterminaler til motorer.&lt;br /&gt;
* Har fast 2 stk. H-broer&lt;br /&gt;
* Har ingen logikforsyning, men skal have fælles stel mellem styring og motorforsyning&lt;br /&gt;
* Styresignaler på 3-5V&lt;br /&gt;
* Motorspænding på 2,5 - 12 V med en maks strøm på 800mA&lt;br /&gt;
* Har indbyggede beskyttelsesdioder&lt;br /&gt;
&lt;br /&gt;
[[fil:A4988-eksempel.png|thumb|right|150px|Billede af print med en A4988 stepper motor driver]]&lt;br /&gt;
Et print med en[http://www.geeetech.com/Documents/A4988-Datasheet.pdf A4988] stepper motor driver, der kan styre en bipolar [[stepmotor]]. Printet er køb ved [[https://www.aliexpress.com/item/1Pcs-StepStick-Stepper-Motor-Driver-A4988-Driver-Module-For-Reprap-Prus-3D-Printer-Newest/32275396248.html aliexpress.com]], og har følgende egenskaber:&lt;br /&gt;
* Sidder på et print med 16 stik-ben (alle skal forbindes fornuftigt&lt;br /&gt;
* Har udgange til en 2 viklings bipolar [[stepmotor]]&lt;br /&gt;
* Har 3-5V logik-forsyning, med fælles stel til motorforsyningen&lt;br /&gt;
* Motorspænding på 8-35V med en kams strøm på 1,5A&lt;br /&gt;
* Har indbyggede beskyttelsesdioder&lt;br /&gt;
* Kræver en lille køleplade ved hård belastning&lt;br /&gt;
* Har en avanceret styring, der kan mikrosteppe stepmotoren - kan indstilles til Full-step, Half-step, 1/4 step, 1/8 step og 1/16 step, hvor styringen [[PWM]]-pulser signalet ind mellem steppene.&lt;br /&gt;
* Skal styres med step og direction - ikke med normal stepper software&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Kredsløb]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=N-kanals_MOSFET&amp;diff=5176</id>
		<title>N-kanals MOSFET</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=N-kanals_MOSFET&amp;diff=5176"/>
		<updated>2022-11-25T10:35:59Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Redirect oprettet (Henrik)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[MOSFET transistor#N-kanals MOSFET]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Skabelon:Analog&amp;diff=5175</id>
		<title>Skabelon:Analog</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Skabelon:Analog&amp;diff=5175"/>
		<updated>2022-11-25T10:30:25Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET transistor og Mikrofonforstærker tilføjet (Henrik)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;oversigt&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;th colspan=&amp;quot;2&amp;quot;&amp;gt; [[:Kategori:Analog|Analog]]&amp;lt;/th&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|id=&amp;quot;emne&amp;quot;| [[:Kategori:Analog Begreber|Analog Begreber]] || [[:Kategori:Grundlæggende el-fysik|Grundlæggende El-fysik]] - [[AC-Spænding]] - [[AC-Strøm]] - [[DC-Spænding]] - [[DC-Strøm]] - [[Effekt]] - [[Nøjagtighed]] - [[Præcision]] - [[Spænding]] - [[Strøm]] - [[Frekvens]] - [[Komponent]] - [[Relæ]]&lt;br /&gt;
|-&lt;br /&gt;
|id=&amp;quot;emne&amp;quot;| [[:Kategori:Analog Komponenter|Analog Komponenter]] || [[:Kategori:Spole|Spole]] - [[Spole ved AC]] - [[Spole ved DC]] - [[Spolen - Beregning af induktiv-reaktansen]] - [[Spolen - Seriekobling og parallelkobling]] - [[Spolen - Tidskonstant for RL-led]] - [[Kondensator]] - [[Kapacitet]] - [[Kondensator ved DC]] - [[Modstand]] - [[Operationsforstærker]] - [[Diode]] - [[Zenerdiode]] - [[Transistor]] - [[MOSFET transistor]] - [[Transformator]] - [[Adapter]] - [[DC-motor]] - [[Mikrofon]] - [[LED]] - [[Photo Interrupter]] - [[7-segment-display]] &lt;br /&gt;
|-&lt;br /&gt;
|id=&amp;quot;emne&amp;quot;| [[:Kategori:Analog Kredsløb|Analog Kredsløb]] || [[Belastet spændingsdeler]] - [[Filter]] - [[H-bro]] - [[Regulator]] - [[RFID]] - [[Spændingsdeler]] - [[Subtraktionsforstærker]] - [[Wheatstones målebro]] &lt;br /&gt;
|-&lt;br /&gt;
|id=&amp;quot;emne&amp;quot;| [[:Kategori:Operationsforstærker|Operationsforstærker]] || [[:Kategori:Opamp Kredsløb|Opamp Kredsløb]] - [[Differensforstærker]] - [[Inverterende forstærker]] - [[Ikke inverterende forstærker]] - [[Instrumentationsforstærker]] - [[Modkobling]] - [[Spændingsfølger]] - [[Summationsforstærker]]  - [[Subtraktionsforstærker]]&lt;br /&gt;
|-&lt;br /&gt;
|id=&amp;quot;emne&amp;quot;| [[:Kategori:Filtre|Filtre]] || [[Aktive filtre]] - [[Komplekse tal]] - [[Maple]] - [[Sammenkobling af filtre]] - [[Butterworth filtre|Butterworth]] - [[Chebyshev filtre|Chebyshev]] - [[Band-pass filter|Band-pass]] - [[RC-Led]] - [[Spole ved AC]]&lt;br /&gt;
|-&lt;br /&gt;
|id=&amp;quot;emne&amp;quot;| Diverse || [[Aktuator]] - [[Analog-bogen]] - [[Diagram]] - [[Komplekse tal]] - [[Konverter]] - [[PWM]] - [[Radiobølger]] - [[Regulerings teknik]] - [[Simulering]] - [[Strain gauge]] - [[Transducer]] - [[Mikrofonforstærker]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=H-bro&amp;diff=5170</id>
		<title>H-bro</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=H-bro&amp;diff=5170"/>
		<updated>2022-11-25T08:15:31Z</updated>

		<summary type="html">&lt;p&gt;Hnl: H-bro med 4 MOSFET tilføjet (Henrik)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[fil:h-bro-struktur.png|Strukturelt princip af en H-Bro&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/H_bridge H-Bro struktur] fra Wikipedia&amp;lt;/ref&amp;gt;|300px|right|thumb]]&lt;br /&gt;
En H-bro er en konstruktion der muliggør at man kan drive en eller anden belastning både i positiv og i negativ retning.&lt;br /&gt;
&lt;br /&gt;
Dette anvendes til en [[DC-motor]] når den skal kunne køre begge veje, og det kan anvendes til en bi-polar [[Stepmotor]], hvor man skal kunne sætte spænding på i begge retninger for at vende magnetfeltet.&lt;br /&gt;
&lt;br /&gt;
Man kan lave en H-bro konstruktion på forskellig vis, enten med diskrete komponenter eller med en færdig kreds.&lt;br /&gt;
&lt;br /&gt;
==Generel Styring af H-broen==&lt;br /&gt;
Når man konstruerer styringen til en H-Bro, så skal man tage højde for at den kan styres, så forsyningen kortslutter, hvilket er ret uheldigt og absolut ikke hensigtsmæssigt i en konstruktion.&lt;br /&gt;
&lt;br /&gt;
Hvis man betragter de 4 kontakter i H-broen, så er der 16 forskellige kombinationer af hvordan de kan tændes. Dette er skitseret i nedenstående tabel:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! S1&lt;br /&gt;
! S2&lt;br /&gt;
! S3&lt;br /&gt;
! S4&lt;br /&gt;
! &#039;&#039;&#039;Resultat&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den ene vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Motor bremses&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Motor bremses&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Det siger sig selv, at man skal undgå de sidste 7 muligheder, ad det er yderst uheldigt.&lt;br /&gt;
&lt;br /&gt;
Man kan bruge de 2 muligheder for at bremse motoren. Det forudsætter dog at kontakterne kan lede strøm i begge retninger, hvilket ikke er tilfældet med bipolare transistorer.&lt;br /&gt;
&lt;br /&gt;
===Software biblioteker til stepmotoren===&lt;br /&gt;
Som standard kan man anvende Stepper&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Reference/Stepper Arduino Stepper]&amp;lt;/ref&amp;gt; biblioteket, som er standard installeret sammen med Arduino softwaren.&lt;br /&gt;
&lt;br /&gt;
Standard biblioteket til stepmotoren har det problem, at softwaren blokerer programafvikling, mens man stepper - dette kan være ret uheldigt i forbindelse med betjening og kommunikation, eller generelt det at få flere ting til at ske &amp;quot;samtidigt&amp;quot;&amp;lt;ref&amp;gt;[http://www.htx-arduino.dk/index.php?title=Tid_og_Samtidighed_i_Software#Polling Polling princippet]&amp;lt;/ref&amp;gt; i softwaren.&lt;br /&gt;
&lt;br /&gt;
Der er udviklet et bibliotek på github&amp;lt;ref&amp;gt;[https://github.com/reven/Unistep2 Unistep2 library from GitHub]&amp;lt;/ref&amp;gt; - Unistep2.&lt;br /&gt;
&lt;br /&gt;
Her på wikien er der forklaret et [[Stepper med Accelleration|andet bibliotek til steppermotoren]], som både understøtter samtidighed og accelleration.&lt;br /&gt;
&lt;br /&gt;
==H-Bro konstruktioner==&lt;br /&gt;
Man kan konstruere en H-Bro på forskellige måder, alt efter hvad man ønsker med konstruktionen.&lt;br /&gt;
&lt;br /&gt;
===Relæ-konstruktion===&lt;br /&gt;
Med relæer er det ganske simpelt, der kan man anvende 2 stk skifterelæer, hvor de kobles på følgende måde:&lt;br /&gt;
&lt;br /&gt;
[[fil:h-bro-relay.png|H-Bro styring med 2 relæer|300px]]&amp;lt;br /&amp;gt;&#039;&#039;H-Bro styring med 2 relæer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fordelen ved denne styring er at den er simpel at realisere, og at den ikke giver mulighed for kortslutning af forsyningen.&lt;br /&gt;
&lt;br /&gt;
Hvis et af relæerne er tændt, så vil motoren køre, og hvis begge eller ingen af dem er tændt, så vil motoren blive kortsluttet. Denne konstruktion er altså god, hvis man gerne vil kunne bremse motoren.&lt;br /&gt;
&lt;br /&gt;
Konstruktionen kan også laves med ét relæ der indeholder begge skiftesæt, så vil man kun kunne skifte retning på motoren, og altså ikke slukke den - ønsker man at kunne slukke motoren, så kan man sætte et ekstra relæ ind der afbryder forsyningen. På denne måde vil man kunne lave det sådan at motoren går i friløb når den slukkes.&lt;br /&gt;
&lt;br /&gt;
===Konstruktion med Bipolare transistorer===&lt;br /&gt;
Teknikken i en H-Bro med bipolare transistorer et at anvende to NPN-transistorer i bunden mod stel og to PNP-transistorer i toppen op mod forsyningen. For at disse transistorer skal kunne håndtere strømmen, så vil man normalt anvende krafttransistorer til formålet.&lt;br /&gt;
&lt;br /&gt;
Den grundlæggende del af konstruktionen kunne være som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-bro-bipolare.png|Den grundlæggende opsætning af bipolare transistorer til en H-Bro|400px]]&amp;lt;br /&amp;gt;&#039;&#039;Den grundlæggende opsætning af bipolare transistorer til en H-Bro&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Her kommer den ulempe, at specielt PNP-transistorerne bliver lidt svære at styre, hvis konstruktionen skal fungere med mere end 5V forsyning. Man skal slukke PNP-transistorerne med et højt signal, men ikke bare 5V - signalet skal gerne op på forsyningen til H-broen.&lt;br /&gt;
&lt;br /&gt;
For at løse dette problem, så anvender man gerne flere transistorer.&lt;br /&gt;
&lt;br /&gt;
Et bud på en konstruktion kunne være:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-bro.gif|Realisering med mange modstande, for at sikre at transistorerne slukker]]&amp;lt;br /&amp;gt;&#039;&#039;Realisering med mange modstande, for at sikre at transistorerne slukker&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at reducere konstruktionen lidt kan den laves så nogle transistorer får lidt dobbelt funktion.&lt;br /&gt;
&lt;br /&gt;
Ud over dette er der bygget ind i konstruktionen at begge diagonale transistorer tændes af en indgang, og endelig er der realiseret en beskyttelse, så man ikke kan tænde begge sæt transistorer, og dermed kan man ikke få broen til at kortslutte forsyningen. Kredsløbet kan se ud som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-diagram.png|H-Bro diagram med indbygget beskyttelse|600px]]&amp;lt;br /&amp;gt;&#039;&#039;H-Bro diagram med indbygget beskyttelse&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ud fra de to indgange reagerer styringen som følger:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! X1-1&lt;br /&gt;
! X1-2&lt;br /&gt;
! &#039;&#039;&#039;Resultat&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den ene vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb (broen slukket)&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Beskyttelse - roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Konstruktionen er vist med anslåede værdier, men skal dimensioneres ud fra forsyningsspænding og hvilken motor der skal drives.&lt;br /&gt;
&lt;br /&gt;
* Motoren vælges ud fra hvor meget den skal trække, samt de mekaniske egenskaber. Den ønskede driftspænding (her angivet som 9V) vælges og der findes en startstrøm for motoren.&lt;br /&gt;
* Der vælges to krafttransistorer i NPN (Q2 og Q4) og PNP (Q1 og Q3), der kan holde til strømmen og spændingen der kræves af motoren (dimensioner efter startstrømmen).&lt;br /&gt;
* Der vælges dioder (D1 til D4) der kan holde til samme strøm som krafttransistorerne.&lt;br /&gt;
* Basisstrømmen for Q1 og Q2 findes ved startstrømmen, ud fra transistorernes H&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt;.&lt;br /&gt;
* De to modstande R1 og R2 dimensioneres ud fra basisstrømmen på den transistor der skal have mest. Spændingen er forsyningen minus de spændingsfald der er over BE-strækningerne på transistorerne og CE på hhv. Q5 og Q6.&lt;br /&gt;
* Der vælges en transistortype til Q5 og Q6 der kan holde til den basisstrøm Q1 og Q2 trækker. Ud fra denne transistors H&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt; beregnes så basisstrømmen til Q6.&lt;br /&gt;
* Modstanden R3 beregnes ud fra denne strøm, samt styrespændingen fratrukket de to BE spændingsfald på Q6 og Q4.&lt;br /&gt;
* Der vælges en transistor Q7 som kan trække strømmen fra R3 til stel - sikkert bare samme type som Q5 og Q6.&lt;br /&gt;
* R5 dimensioneres ud fra spændingen over den og basisstrømmen der kræves til Q7.&lt;br /&gt;
* R4 dimensioneres ud fra basisstrømmen i Q5 og strømmen i R5 sammen med spændingen over modstanden.&lt;br /&gt;
* Generelt for alle modstande, så rundes der ned på deres størrelse så man sikrer at transistorerne tænder helt.&lt;br /&gt;
&lt;br /&gt;
Med de anslåede værdier er der vist en simulering herunder. De grønne kurver er spændinger mens de gule kurver er strømme.&lt;br /&gt;
&lt;br /&gt;
Simuleringen kan hentes [http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+50+5+43%0Av+288+384+288+112+0+0+40+5+0+0+0.5%0At+16+336+48+336+0+1+-4.9129327629457595+-0.07733504049299231+100%0At+48+368+80+368+0+1+-4.298583681882915+0.07733504119297265+20%0At+208+368+176+368+0+1+0.565549206082018+0.7007660085523107+20%0At+240+336+208+336+0+1+0.5620930011423408+0.6267605299473932+100%0At+272+368+240+368+0+1+-1.327526536699629+1.8000750215199826e-9+100%0At+48+144+80+144+0+-1+-0.07656691793376158+-0.700648194857874+20%0At+208+144+176+144+0+-1+4.777715961225545+-0.08706723630416224+20%0Ar+96+176+160+176+0+30%0Ar+96+208+160+208+0+500%0Ar+96+240+160+240+0+500%0Ar+0+336+-64+336+0+7000%0Ar+-64+288+0+288+0+10000%0Ar+96+416+160+416+0+22000%0Ag+208+384+208+400+0%0Aw+240+384+208+384+0%0Aw+208+384+176+384+0%0Aw+176+384+80+384+0%0Aw+48+368+48+352+0%0Aw+80+352+80+176+0%0Aw+96+176+80+176+0%0Aw+80+160+80+176+0%0Aw+208+368+208+352+0%0Aw+176+352+176+176+0%0Aw+160+176+176+176+0%0Aw+176+160+176+176+0%0Aw+160+240+208+240+0%0Aw+208+240+208+320+0%0Aw+240+336+240+352+0%0Aw+48+320+48+208+0%0Aw+48+208+96+208+0%0Aw+48+144+32+144+0%0Aw+32+144+32+240+0%0Aw+32+240+96+240+0%0Aw+240+384+288+384+0%0Aw+288+112+176+112+0%0Aw+176+112+176+128+0%0Aw+176+112+80+112+0%0Aw+80+128+80+112+0%0Aw+160+208+208+208+0%0Aw+208+144+208+208+0%0Aw+16+336+0+336+0%0Aw+0+288+240+288+0%0Aw+240+288+240+336+0%0Aw+272+368+272+416+0%0Aw+272+416+160+416+0%0Aw+96+416+16+416+0%0Aw+16+336+16+416+0%0Av+-80+384+-80+336+0+2+8+2.5+2.5+3.141592653589793+0.5%0Av+-160+384+-160+288+0+2+4+2.5+2.5+3.141592653589793+0.5%0Aw+-160+288+-64+288+2%0Aw+-80+336+-64+336+2%0Aw+80+384+-80+384+0%0Aw+-80+384+-160+384+0%0Ao+50+64+0+4103+5+0.00078125+0+2+50+3%0Ao+51+64+0+4103+5+0.00078125+0+2+51+3%0Ao+8+64+0+4103+5+0.2+0+2+8+3%0A på dette link].&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-simulering.png|500px|Simulering af H-Broen, lavet med anslåede værdier]]&amp;lt;br /&amp;gt;&#039;&#039;Simulering af H-Broen, lavet med anslåede værdier&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
De 3 viste signaler er de to input-signaler og spændingen over den modstand der skal symbolisere motoren.&lt;br /&gt;
&lt;br /&gt;
Som det kan ses på simuleringen så gennemløbes de 4 faser korrekt:&lt;br /&gt;
# Begge input er slukkede og som forventet løber der ingen strøm i motoren&lt;br /&gt;
# Input 2 er tændt og som forventet løber der en strøm i motoren (spændingen kan måles til ca. 4,25V)&lt;br /&gt;
# Input 1 er tændt (input 2 slukket) og som forventet løber strømmen den anden vej i motoren (en spænding på ca. 4,24V)&lt;br /&gt;
# Begge input er slukket og her træder sikringen ind, der løber lidt større strøm fra input 1 fordi basis på Q6 trækkes lav og der løber strøm i motoren som ved input 2 tændt (igen en spænding på ca. 4,25V)&lt;br /&gt;
&lt;br /&gt;
For at kontrollere at der ikke i skiftet kan ske en kortslutning af forsyningen, så ændres kredsløbet, så der er konstant 5V på input 1 og en sweepet spænding på input 2, der løber fra 0V til 5V og tilbage igen.&lt;br /&gt;
&lt;br /&gt;
Denne simulering kan hentes [http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+50+5+43%0Av+288+384+288+112+0+0+40+5+0+0+0.5%0At+16+336+48+336+0+1+-4.2093565289498205+0.21288760056943956+100%0At+48+368+80+368+0+1+-4.085914716425955+0.2890009007586427+20%0At+208+368+176+368+0+1+0.5628733689810032+0.7007326668699203+20%0At+240+336+208+336+0+1+0.5587407117147083+0.626500832999997+100%0At+272+368+240+368+0+1+-0.8335524578385181+0.49368104203139934+100%0At+48+144+80+144+0+-1+-0.07554231283368207+-0.7006266956490848+20%0At+208+144+176+144+0+-1+4.573385979493806+-0.2887547226172771+20%0Ar+96+176+160+176+0+30%0Ar+96+208+160+208+0+500%0Ar+96+240+160+240+0+500%0Ar+0+336+-64+336+0+7000%0Ar+-64+288+0+288+0+10000%0Ar+96+416+160+416+0+22000%0Ag+208+384+208+400+0%0Aw+240+384+208+384+0%0Aw+208+384+176+384+0%0Aw+176+384+80+384+0%0Aw+48+368+48+352+0%0Aw+80+352+80+176+0%0Aw+96+176+80+176+0%0Aw+80+160+80+176+0%0Aw+208+368+208+352+0%0Aw+176+352+176+176+0%0Aw+160+176+176+176+0%0Aw+176+160+176+176+0%0Aw+160+240+208+240+0%0Aw+208+240+208+320+0%0Aw+240+336+240+352+0%0Aw+48+320+48+208+0%0Aw+48+208+96+208+0%0Aw+48+144+32+144+0%0Aw+32+144+32+240+0%0Aw+32+240+96+240+0%0Aw+240+384+288+384+0%0Aw+288+112+176+112+0%0Aw+176+112+176+128+0%0Aw+176+112+80+112+0%0Aw+80+128+80+112+0%0Aw+160+208+208+208+0%0Aw+208+144+208+208+0%0Aw+16+336+0+336+0%0Aw+0+288+240+288+0%0Aw+240+288+240+336+0%0Aw+272+368+272+416+0%0Aw+272+416+160+416+0%0Aw+96+416+16+416+0%0Aw+16+336+16+416+0%0Aw+-160+288+-64+288+2%0Aw+-80+336+-64+336+2%0Aw+80+384+-80+384+0%0Aw+-80+384+-160+384+0%0Av+-160+384+-160+288+0+0+40+5+0+0+0.5%0Av+-80+384+-80+336+0+3+5+2.5+2.5+0+0.5%0Ao+48+64+0+4103+5+0.00078125+0+2+48+3%0Ao+49+64+0+4103+5+0.00078125+0+2+49+3%0Ao+8+64+0+4103+5+0.2+0+2+8+3%0A på dette link]&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-sweep.png|500px|Simulering af H-Broen, med sweep på det ene input]]&amp;lt;br /&amp;gt;&#039;&#039;Simulering af H-Broen, med sweep på det ene input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Som det kan ses på simuleringen, så opfører kredsløbet sig meget fornuftigt.&lt;br /&gt;
&lt;br /&gt;
Med lav inputspænding på input 2 og 5V på input 1, så er motoren tændt i den ene retning.&lt;br /&gt;
&lt;br /&gt;
Når spændingen vokser på input 2 sker der først det at motoren slukkes (når Q7 tændes) og efterhånden som Q5 og Q3 tændes, så tændes motoren i den anden retning, altså ingen tegn på kortslutning.&lt;br /&gt;
&lt;br /&gt;
===Konstruktioner med MOSFET transistorer===&lt;br /&gt;
Umiddelbart er [[MOSFET transistor|MOSFET transistorer]] nemme at styre og de har gode egenskaber til at tænde forbindelsen og dermed fungere enkelt som et relæ.&lt;br /&gt;
&lt;br /&gt;
Vi har bare ikke så mange typer på Holstebro HTX, så derfor vises kun et eksempel med denne type.&lt;br /&gt;
&lt;br /&gt;
Den tekniske årsag til at [[MOSFET transistor|MOSFET]] ikke er så nemme at arbejde med til en H-Bro er nemlig det at der kræves noget der kan trække op mod forsyningen (som en PNP-transistor). Her er den tilsvarende en [[P-kanals MOSFET|P-channel MOSFET]], men de har bare den ulempe, at de ikke er så gode til at tænde for strømmen som en [[N-kanals MOSFET|N-channel]]. (de har større indre modstand). Det er der dog efterhånden udviklet, så det er mere realistisk at anvende den type.&lt;br /&gt;
&lt;br /&gt;
Der så en anden ulempe, som man må tage højde for, nemlig det at der er en lille forsinkelse i kredsløbet, hvilket gør at man er nødt til at lægge en lille forsinkelse ind, hvis man vil bruge et signal til at styre H-Broen med, i stedet for selv at sikre i softwaren at der ikke sker kortslutning ved at slukke for det ene sæt inden man tænder det andet. Det giver en enklere elektrisk styring, så man kunne lave H-broen som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Simpel.png|600px|Simpel H-Bro styret af 2 signaler, hvor man selv har ansvaret for at der ikke korsluttes forsyningen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Simpel H-Bro styret af 2 signaler, hvor man selv har ansvaret for at der ikke korsluttes forsyningen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Med 2 sæt af denne H-Bro vil det være enkelt at kunne styre en stepmotor, og det vil gøre det simpelt at komme til at køre half-steps, hvilket automatisk vil lave den sikring at man slukker den ene retning inden den anden tændes, da man lige netop arbejde med at slukke den ene vikling for at lave half-step.&lt;br /&gt;
&lt;br /&gt;
Simuleringen er vist med to generatorer faseforskudt, og den viser at opstillingen fungerer som ønsket. Diagram med simulering kan findes på [http://www.falstad.com/circuit/circuitjs.html?cct=$+0+0.000005+5.023272298708815+50+5+50%0AR+128+384+96+384+0+2+40+2.5+2.5+0+0.75%0Aw+128+448+144+448+0%0Af+240+304+288+304+1+1.5+0.02%0Af+336+304+384+304+1+1.5+0.02%0Af+240+416+288+416+0+1.5+0.02%0Af+336+416+384+416+0+1.5+0.02%0Ag+384+448+384+464+0%0Av+432+432+432+336+0+0+40+5+0+0+0.5%0Ar+304+368+368+368+0+80%0Aw+160+336+336+336+0%0Aw+336+336+336+304+0%0Aw+336+384+336+416+0%0Aw+144+448+144+368+0%0Aw+288+432+288+448+0%0Aw+288+448+384+448+0%0Aw+384+432+384+448+0%0Aw+384+400+384+368+0%0Aw+368+368+384+368+0%0Aw+384+320+384+368+0%0Aw+288+400+288+368+0%0Aw+288+368+304+368+0%0Aw+288+320+288+368+0%0Aw+288+288+288+272+0%0Aw+288+272+384+272+0%0Aw+384+272+384+288+0%0Aw+384+272+432+272+0%0Aw+432+432+432+448+0%0Aw+384+448+432+448+0%0AI+160+416+240+416+0+0.5+5%0AI+176+368+256+368+0+0.5+5%0Aw+144+304+240+304+0%0Aw+160+336+160+384+0%0Aw+160+384+128+384+0%0Aw+144+368+144+304+0%0Aw+256+384+336+384+0%0Aw+160+384+160+416+0%0Aw+144+368+176+368+0%0Aw+256+368+256+384+0%0Aw+432+336+432+272+0%0Ax+439+373+468+376+4+24+5V%0AR+128+448+96+448+0+2+40+2.5+2.5+3.141592653589793+0.75%0Ao+0+8+0+4103+5+0.00009765625+0+2+0+3%0Ao+8+8+0+4103+5+0.05+0+2+8+3%0A dette link til falsted.com]&lt;br /&gt;
====Styring med kun fremad og bak====&lt;br /&gt;
Hvis man vil styre en motor/vikling, med et signal, så er der her en kredsløbsmulighed, hvor der indføres en forsinkelse ved hjælp af et RC-led og noget logik som vist her:&lt;br /&gt;
&lt;br /&gt;
[[fil:FET-H-Bro.png|800px|H-Bro til styring med et signal pr. motor/vikling med sikring af skiftetidspunktet - vist med simulering]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;H-Bro til styring med et signal pr. motor/vikling med sikring af skiftetidspunktet - vist med simulering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Diagram med simulering kan ses og eksperimenteres med på [http://www.falstad.com/circuit/circuitjs.html?cct=$+0+0.000005+5.023272298708815+50+5+50%0A151+256+288+336+288+0+2+0+12%0A151+256+352+336+352+0+2+12+12%0AR+-160+288+-192+288+0+2+40+2.5+2.5+0+0.5%0Aw+0+336+0+368+0%0Aw+0+368+256+368+0%0Aw+160+208+176+208+0%0Ar+0+208+0+272+0+100000%0Aw+0+208+96+208+0%0Ac+96+208+96+272+0+1e-8+2.6179796029120896%0Ag+96+272+96+288+0%0Aw+240+208+240+336+0%0Aw+256+336+240+336+0%0Aw+64+272+64+304+0%0Aw+64+304+256+304+0%0Aw+256+272+176+272+0%0Aw+176+208+176+272+0%0Aw+336+352+352+352+0%0Af+448+208+496+208+1+1.5+0.02%0Af+544+208+592+208+1+1.5+0.02%0Af+448+320+496+320+0+1.5+0.02%0Af+544+320+592+320+0+1.5+0.02%0Ag+592+352+592+368+0%0Av+640+336+640+240+0+0+40+12+0+0+0.5%0Ar+512+272+576+272+0+80%0Aw+368+240+544+240+0%0Aw+544+240+544+208+0%0Aw+544+288+544+320+0%0Aw+352+352+352+272+0%0Aw+496+336+496+352+0%0Aw+496+352+592+352+0%0Aw+592+336+592+352+0%0Aw+592+304+592+272+0%0Aw+576+272+592+272+0%0Aw+592+224+592+272+0%0Aw+496+304+496+272+0%0Aw+496+272+512+272+0%0Aw+496+224+496+272+0%0Aw+496+192+496+176+0%0Aw+496+176+592+176+0%0Aw+592+176+592+192+0%0Aw+592+176+640+176+0%0Aw+640+336+640+352+0%0Aw+592+352+640+352+0%0Aw+0+272+0+336+0%0Ar+-160+288+-96+288+0+100000%0At+-96+288+-64+288+0+1+-11.999999986680002+1.119999995424623e-8+100%0Ag+-64+304+-64+336+0%0Ar+-64+272+-64+208+0+10000%0Aw+496+176+-64+176+0%0Aw+-64+176+-64+208+0%0AI+368+320+448+320+0+0.5+12%0AI+384+272+464+272+0+0.5+12%0AI+-64+272+0+272+0+0.5+12%0AI+0+272+64+272+0+0.5+12%0AI+96+208+160+208+0+0.5+12%0AI+176+208+240+208+0+0.5+12%0Aw+352+208+448+208+0%0Aw+368+240+368+288+0%0Aw+368+288+336+288+0%0Aw+352+272+352+208+0%0Aw+464+288+544+288+0%0Aw+368+288+368+320+0%0Aw+352+272+384+272+0%0Aw+464+272+464+288+0%0Aw+640+240+640+176+0%0Ax+647+277+689+280+4+24+12V%0Ao+2+8+0+4103+5+0.00009765625+0+2+2+3%0Ao+23+8+0+4103+20+0.2+0+2+23+3%0A dette link til falsted.com]&lt;br /&gt;
&lt;br /&gt;
Signalet kommer fra firkantgeneratoren, og er ment som et 3,3V eller et 5V signal fra en mikrocontroller som Arduino.&lt;br /&gt;
&lt;br /&gt;
Den første transistor er en almindelig lille NPN som BC547, der sidder der for at konvertere op på en højere spænding.&lt;br /&gt;
&lt;br /&gt;
Inverteren efter er for at sikre at signalet er pænt firkantet.&lt;br /&gt;
&lt;br /&gt;
RC-leddet med 100k og 10nF er det der laver forsinkelsen til at transistorerne kan nå at slukke, inden de andre tænder, samt for at sikre at forsinkelser i de anvendte gates ikke har samme effekt. Tiden her er sat meget høj, for at det kan slå igennem i simuleringen. Hvis det skal anvendes til en stepmotor der arbejder hurtigt, så vil denne forsinkelse ødelægge signalerne, og måske endda have den modsatte virkning, så det anbefales kraftigt at forsinkelsen tilpasses den anvendelse der er tiltænkt.&lt;br /&gt;
&lt;br /&gt;
De resterende invertere og de to NAND-gates er logikken der etablerer signalerne med forsinkelserne lavet af RC-leddet. Disse gates forsynes med 12V (derfor skal det nok være almindelige C-MOS kredse fra fx. 40-serien, som fx 4069 og 4011).&lt;br /&gt;
&lt;br /&gt;
De 4 MOSFET transistorer er blot til simulering. Der skal vælges nogen passende typer som fx IRF530 som N-channel og IRF9540 som P-channel. Simuleringen giver blot en indikation om at det virker. Kredsløbet skal tilpasses de rigtige MOSFET og de gate-typer man vælger at anvende.&lt;br /&gt;
&lt;br /&gt;
Ideen med at anvende en højere spænding er at man kan drive mere med den høje spænding, men også at de foreslåede MOSFET fungerer bedre når de kommer op på min. 10V GS-spænding, da de tænder mere effektivt til høje strømme - igen er det overvejelser man skal gøre sig til den enkelte anvendelse.&lt;br /&gt;
&lt;br /&gt;
Modstanden på 80 ohm er blot en simulering af en motor/vikling eller hvad man har tænkt sig at drive.&lt;br /&gt;
&lt;br /&gt;
I opstillingen skal der desuden tilføjes 4 klamping-dioder, hvis man skal arbejde med en induktiv belastning.&lt;br /&gt;
&lt;br /&gt;
====Styring med mulighed for at slukke viklingen====&lt;br /&gt;
Hvis ens styringsbehov ikke kun er frem og tilbage, som det kan være ved en stepmotor, men at man også skal have muligheden for at kunne slukke for viklingen, så skal der indføres et ekstra signal til at slukke, samt logik til at slukke alle MOSFET.&lt;br /&gt;
&lt;br /&gt;
For at avende de samme gates er der lavet følgende opstilling:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Enable.png|800px|Styring af H-broen med muligheden for at slukke for belastningen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Styring af H-broen med muligheden for at slukke for belastningen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der skal et højt signal ind på den ekstra transistor (igen bare 3,3V eller 5V signal) for at viklingen tændes, og så vender opstillingen strømmen i belastningen med den nødvendige pause.&lt;br /&gt;
&lt;br /&gt;
Det skal bemærkes at alle simuleringer er lavet med ret lav hastighed, og at det kun skal illustrere principperne i logikken og det at tænde MOSFET&#039;erne forskudt. Årsagen er at simuleringen ikke tager højde for de praktiske forhold i komponenterne (kapaciteter, udgangsstrømme osv.)&lt;br /&gt;
&lt;br /&gt;
====Praktisk test af kredsløbet====&lt;br /&gt;
Som det kan ses i diagrammet herunder er der ændret i komponentstørrelserne, og der er sat navne på MOSFET&#039;erne samt placeret klampingdioder, så der kan drives en induktiv belastning:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Test.png|1000px|Diagram med praktiske størrelser til normal brug af H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Diagram med praktiske størrelser til normal brug af H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Forsinkelsen er dimensioneret til ca. 2us, da både gates og MOSFET har delay og turnoff-tider på 50-100ns, så for en sikkerheds skyld sættes tiden 20 gange så stor.&lt;br /&gt;
&lt;br /&gt;
Ved testen viste målinger at det ikke bare er for lidt ekstra sikkerhed at der skal 2us til. Den værste faktor er at drive kapaciteten i gaten på MOSFET&#039;erne, som det kommenteres under målingerne.&lt;br /&gt;
&lt;br /&gt;
En anden erfaring der kom ved målingerne er at transistoren BC547&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/BC547.pdf BC547 Småsignaltransistor] Datablad&amp;lt;/ref&amp;gt; skal drives ret hårdt for at kunne følge med til skiftetiderne.&lt;br /&gt;
&lt;br /&gt;
Der er anvendt IRF530&amp;lt;ref name=&amp;quot;irf530&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/IRF530.pdf IRF530 N-Channel MOSFET] Datablad&amp;lt;/ref&amp;gt; som N-channel og IRF9540&amp;lt;ref name=&amp;quot;irf9540&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/IRF9540.pdf IRF9540 P-Channel MOSFET] Datablad&amp;lt;/ref&amp;gt; som P-channel. Med netop disse to MOSFET, så er klampingdioderne faktisk overflødige, da begge MOSFET har den indbygget. De er beholdt i diagrammet, for at gøre opmærksom på at de er vigtige.&lt;br /&gt;
&lt;br /&gt;
Til de logiske komponenter anvendes standard CMOS kredse fra 4000-serien, da de kan forsynes med op til 15V, og derfor har et bredt anvendelsesområde. Der er anvendt CD4069&amp;lt;ref name=&amp;quot;CD4069&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/CD4069.pdf CD4069 CMOS Inverter] Datablad&amp;lt;/ref&amp;gt; som inverter og CD4011&amp;lt;ref name=&amp;quot;CD4011&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/CD4011.pdf CD4011 CMOS NAND-gate] Datablad&amp;lt;/ref&amp;gt; som [[NAND-gate]].&lt;br /&gt;
&lt;br /&gt;
Belastningen af H-Broen er lavet med 4 stk 1,2 ohm 10W, så den samlede belastning ligger omkring 5 ohm.&lt;br /&gt;
&lt;br /&gt;
Over forsyningen er der placeret to kondensatorer, en 4700uF og en 100nF. De skal placeres tæt på MOSFET&#039;erne, da funktionen er at levere strøm hurtigt. Grunden til at anvende to forskellige typer er at den store har kapaciteten til at lever meget strøm, men er ikke god til at gøre det meget hurtigt, den lille har det omvendt.&lt;br /&gt;
&lt;br /&gt;
Målingerne herunder er alle foretaget med et firkant-signal på 50 kHz, og hvor ikke andet er bemærket er forsyningen ca. 12 V (der er ret meget tab i tilledninger og fumlebræt på grund af store strømme). Da oscilloscopet kun har 2 kanaler er en del billeder klippet sammen i [[Photoshop]] for at tydeliggøre sammenhængene.&lt;br /&gt;
&lt;br /&gt;
Første måling herunder er en visning af forholdene omkring transistoren og formning af signalerne:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-trans.png|600px|Målinger på input-transistoren Q1 i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på input-transistoren Q1 i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den nederste blå input-kurve er spændingen der kommer ind fra tonegeneratoren, som det ses er spændingen ikke helt oppe på 5V, det skyldes at tonegeneratoren har 600 ohm i udgangen, og at de 3,3 k ohm belaster spændingen ned omkring 4V. Dette har ikke væsentlig betydning.&lt;br /&gt;
&lt;br /&gt;
Den øverste røde kurve er målt på collector af Q1 ved R2, og som forventet inverteres signalet og får en amplitude på ca. 12V. En lidt uventet ting er at der kommer en forsinkelse på ca. 2us når signalet går højt. Denne forsinkelse skyldes at transistorens kapacitet på BE skal aflades gennem de 3,3k ohm, og det tager ca den tid, hvilket forsinker transistoren i at slukke. Det får ikke den store betydning i resten af kredsløbet, andet end at der arbejdes med tider på 8us og 12us i stedet for symmetrisk 10us og 10us. Havde vi målt på 500 kHz, så ville det have ødelagt signalet totalt.&lt;br /&gt;
&lt;br /&gt;
Den næste røde kurve er efter inverteringen af collector-signalet, og det ser ud helt som forventet - rent og firkantet uden synlige forsinkelser og i den forventede fase. Dette signal bruges som reference for resten af målingerne.&lt;br /&gt;
&lt;br /&gt;
En ting der er værd at bemærke er at de høje 12V signaler har nogle udsving - de stammer fra tidspunkter hvor MOSFET&#039;erne tænder og slukker, og dermed ændrer belastning af forsyningen, og da opstillingen er lavet på fumlebræt og der er ledninger hen til fumlebrættet, så vil der uvægerligt være spændingsfald på disse ledninger. Det er stabiliseret en del med kondensatorer over forsyningen, men det slår stadig igennem, som det kan ses på alle målingerne. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anden sæt målinger viser indførslen af forsinkelsen:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-delay.png|600px|Målinger på forsinkelsen i H-Broen etableret med R3 og C1]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på forsinkelsen i H-Broen etableret med R3 og C1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den nederste blå kurve er den der anvendes som reference gennem de følgende målinger. Det er udgangen af IC1A, der tidsmæssigt sætter referencen for hvad der sker videre i kredsløbet.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve er målt på kondensatoren C1 ved indgangen af IC1C, og viser op og afladningskurven for RC-leddet dannet af R3 og C1. Op og afladning ser ud som forventet.&lt;br /&gt;
&lt;br /&gt;
Den næste kurve skulle være digitaliseringen af det forsinkede signal, men det ses her at der er betydelige afrundinger på kurven. Dette skyldes at inverteren ikke digitaliserer 100%, men blot laver en forstærkning af det indkomne signal så inputtet i de logisk veldefinerede områder giver et rent output, mens det udefinerede område fra 30-70% af forsyningen ikke giver et sikkert logisk output&amp;lt;ref name=&amp;quot;CD4069&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. Dette har dog ingen praktisk betydning, da dette output blot føres videre til andre logiske kredse, og ikke tænder eller slukker for MOSFET&#039;erne. Signalet på udgangen passerer pænt hurtigt igennem det udefinerede område, og giver ikke nogen problemer. Havde det givet problemer kunne man anvende en inverterende schmitt-trigger med en hysterese som CD40106, så ville problemet være elimineret.&lt;br /&gt;
&lt;br /&gt;
Der ses at den ønskede forsinkelse på 2us ikke er helt opfyldt, men at det ligger tæt nok på med ca. 1,7us til 1,8us til at kunne anvendes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tredje sæt målinger viser hvordan de sidste signaler, der dannes til at skabe styresignalerne, ser ud:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-inv.png|600px|Målinger på inverteret indgangssignal og ikke inverteret forsinket indgangssignal]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på inverteret indgangssignal og ikke inverteret forsinket indgangssignal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vi har igen samme referencesignal på den nederste blå kurve.&lt;br /&gt;
&lt;br /&gt;
Øverst i det tredje sæt målinger er der vist inverteringen af reference-signalet. Det ser ud helt som forventet.&lt;br /&gt;
&lt;br /&gt;
Den nederste røde kurve viser det forsinkede signal i ikke inverteret fase, og det har igen de samme forsinkelser samt at det kan ses at det er rette meget pænt op på stige- og falde-tiderne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fjerde sæt målinger viser de signaler der faktisk driver de to P-Channel MOSFET&#039;er og de to N-Channel MOSFET&#039;er:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-driver.png|600px|Målinger på Gate-signalerne til MOSFET&#039;erne i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på Gate-signalerne til MOSFET&#039;erne i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Igen har vi det samme blå referencesignal nederst.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve på udgangen af IC2B er dannet af referencesignalet og det ikke inverterede, forsinkede signal, således at de trækker lavt efter de ca. 2us forsinkelse og går højt igen lige når referencesignalet går lavt, så MOSFET&#039;erne tænder forsinket og slukker u-forsinket. Dette er med til at skabe et tidsrum hvor alle MOSFET&#039;er i broen er slukket. Man kan også ses på signalet hvorfor denne forsinkelse er så vigtig, nemlig at skiftet bliver forsinket ved at udgangen ikke kan drive den kapacitet der sidder i gaten af MOSFET&#039;en hurtigere ON / OFF, der godt nok gør at MOSFET&#039;en er ret hurtig til at begynde at tænde, men at den tager et stykke tid om at slukke. Størrelsen på kapaciteten ind på gaten på en IRF9540 kan ses herunder som 1400 pF, hvilket forklarer det langsomme skift på næsten 2us på udgangen af NAND-gaten.&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-C-9540.png|1000px|Kapacitetsværdierne på en IRF9540 fra databladet]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Kapacitetsværdierne på en IRF9540 fra databladet&amp;lt;ref name=&amp;quot;irf9540&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den anden kurve er inverteringen af den øverste kurve fra IC1E, og den anvendes til at drive den N-channel MOSFET U$2 der skal tænde samtidigt med P-Channel MOSFET&#039;en U$3 omtalt lige ovenfor. På dette signal ses noget af det samme fænomen, blot ikke så markant, hvilket skyldes at den IRF530 der anvendes har en lavere gate-kapacitet, som det kan ses i databladsudsnittet herunder:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-C-530.png|1000px|Kapacitetsværdierne på en IRF530 fra databladet]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Kapacitetsværdierne på en IRF530 fra databladet&amp;lt;ref name=&amp;quot;irf530&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På samme måde som ved øverste og anden øverste kurve kan man se de samme ting på signalerne for de næste to kurver. De er dannet af IC2A og IC1F og lider af de samme skavanker, men det er tydeligt at se at der lige netop er blevet slukket helt for det ene sæt MOSFET inden det andet sæt tænder, så forsinkelsen på de små 2us ser ud til at være nok.&lt;br /&gt;
&lt;br /&gt;
Det ses desuden på de to nederste signaler at de kun tænder MOSFET&#039;erne i ca. 6us, hvor de to øverste signaler tænder MOSFET&#039;erne i ca. 10us. Det skyldes den asymmetriske forsinkelse som transistoren i starten indførte, så der kom 12us puls og 8us pause i referencesignalet. Dette betyder at 50 kHz er omkring den øverste grænse at denne opstilling kan anvendes ved, hvis der skal fordeles nogenlunde rimeligt mellem de to strømretninger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
På det femte sæt målinger ser vi hvordan spændingerne på udgangen af H-Broen ser ud:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-load.png|600px|Målinger på input-transistoren Q1 i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på input-transistoren Q1 i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Igen er det referencesignalet i den nederste blå kurve.&lt;br /&gt;
&lt;br /&gt;
Ser man på tidsforholdene i den øverste kurve, ses det at der hvor MOSFET&#039;erne skulle starte omkring 2us inde i referencesignalets høje periode, så er begge sider høje lidt under 1us, hvorefter venstre side trækkes lav, og højre side bliver trukket en anelse nedad (men er tændt) det rettes dog hurtigt.&lt;br /&gt;
&lt;br /&gt;
Der hvor MOSFET&#039;erne skulle slukke, nemlig hvor referencesignalet går lavt, der ser vi igen en forsinkelse, denne gang på lidt over 1us inden høje side begynder at gå lav, og umiddelbart efter ses det også at venstre side går opad sammen med højre side, og broen er slukket i begge retninger.&lt;br /&gt;
&lt;br /&gt;
Det samme gentager sig i den modsatte fase, og det ses at de tider der er spænding over belastningen svarer til de ca. 10us og 6us som det kunne ses tidligere. Kapaciteterne giver altså endnu en forsinkelse på at tænde udgangen på H-Broen.&lt;br /&gt;
&lt;br /&gt;
Ser man på spændingsforholdene, så vil man se at når MOSFET&#039;erne er tændt, så er den lave spænding oppe på omkring 1V og den høje spænding ligger på ca. 10V. Det betyder at der ligger en spænding på 9V over belastningen, og der trækkes altså omkring 1,8A i belastningen.&lt;br /&gt;
&lt;br /&gt;
Med ca. 1V og 2A er det omkring 2W der afsættes i hver MOSFET mens de er tændt, men da ingen af dem er tændt i mere end halvdelen af tiden, så afsættes der i gennemsnit ikke mere end 1W i hver MOSFET, hvilket er omkring grænsen for hvad de kan tage uden køling. Sætter man derimod køling på, så vil de kunne klare væsentlig mere. Det kan dog ikke anbefales at have broen slukket, da der så vil afsættes ca. de 2W i to af MOSFET&#039;erne, og det er mere end de kan klare uden køling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Det sjette kurvesæt viser de forhold der er på forsyningen:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-fors.png|600px|Målinger på forsyningen til H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på forsyningen til H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disse målinger er lige for at forklare at forsyningen ikke er helt stabil, selvom den er blevet sikret med to kondensatorer for at holde den nogenlunde stabil.&lt;br /&gt;
&lt;br /&gt;
På den blå referencemåling ses de underlige variationer i det høje signal ca. 2us efter signalet er gået højt og igen lidt variation i det lave signal 2us efter at det er gået lavt.&lt;br /&gt;
&lt;br /&gt;
Den øverste røde kurve viser tydeligt at der sker noget på 12V forsyningen samtidigt med at forstyrrelserne kommer i signalet, så de stammer herfra. Årsagen til dem er at MOSFET&#039;erne skifter fra tændt til slukket til at være tændt igen i dette tidsrum. Der ses en lignende forstyrrelse på forsyningen i det andet tidspunkt hvor MOSFET&#039;erne skifter om på spændingen.&lt;br /&gt;
&lt;br /&gt;
På det tidspunkt hvor forstyrrelserne er på forsyningen kan der også anes en lille variation på GND-målingen, som jo burde være helt flad. Det skyldes modstande og induktioner i fumlebrættet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Det syvende kurvesæt angiver hvad der sker, hvis man sætter forsyningen ned til omkring 5V:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-5V.png|600px|Målinger på styresignal og output af H-Broen ved 5V forsyning]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på styresignal og output af H-Broen ved 5V forsyning&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Referencen er tidsmæssigt den samme blå kurve, men er her faldet til et 5V signal.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve er den spænding der styrer gaten på MOSFET U$2, altså signalet ud af IC1E. Hvis man sammenligner den med kurven for det samme signal med 12V forsyning (i det fjerde målesæt), så vil man se at det tager næsten dobbelt så lang tid for signalet at komme op på 5V, som det tog signalet at komme op på 12V. Dette skyldes CMOS-kredsens ringe evne til at drive strøm ved den lave forsyningsspænding&amp;lt;ref name=&amp;quot;CD4069&amp;quot; /&amp;gt;. Det betyder både at MOSFET&#039;erne tænder senere, men også at de slukker væsentligt senere. Forklaringen kan ses på de strømme en CMOS kreds kan drive som vist i databladet herunder:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-CD4069.png|1000px|Udsnit fra databladet på en CD4069, der viser strømmene som udgangen kan levere ved hhv. 5V, 10V og 15V]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Udsnit fra databladet på en CD4069&amp;lt;ref name=&amp;quot;CD4069&amp;quot; /&amp;gt;, der viser strømmene som udgangen kan levere ved hhv. 5V, 10V og 15V&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kigger man på de to næste kurver kan det være lidt svært at se, men det tolkes at de 2us efter at referencesignalet går højt, der begynder det næste sæt MOSFET&#039;er at tænde, men den anden del af H-Broen er endnu ikke slukket, så forsyningen kortslutter, og først mellem 4us og 6us kommer H-Broen ud af dette igen, hvor det kan ses at den venstre side trækker lavt og den højre side trækker højt i belastningen.&lt;br /&gt;
&lt;br /&gt;
Igen hvor den øverste kurve burde gå lav sammen med referencesignalet, der forbliver det højt i ca. 4us, på grund af den store kapacitet i gaten og den ringen evne til at trække strøm i udgangen af CMOS-kredsen. Dette giver igen en fase hvor broen er kortsluttet, og derefter en fase hvor den højre side langsomt bliver lav, således at kortslutningen er væk og der løber strøm i loadmodstanden.&lt;br /&gt;
&lt;br /&gt;
Konklusionen på disse målinger er at den viste opstilling ikke er egnet til 5V forsyning. Det kunne måske reddes ved at anvende HCMOS kredse som fx 74HC00 til NAND-gaten&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/74HC00.pdf 74HC00 HCMOS NAND-gate] Datablad&amp;lt;/ref&amp;gt; og 74HC04 til inverteren&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/74HC04.pdf 74HC04 HCMOS Inverter] Datablad&amp;lt;/ref&amp;gt;, der kun kan arbejde på 5V, men som til gengæld kan trække større strømme, hvilket ville kunne løse problemet. Jeg ville så helt sikkert også fjerne transistoren i indgangen, da den kun er der for at tilpasse op til 12V signaler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===H-bro med 4 MOSFET===&lt;br /&gt;
Navnet &amp;lt;i&amp;gt;H-bro&amp;lt;/i&amp;gt; stammer fra måden hvorpå DC motoren forbindes til strømforsyningen på; det danner noget der ligner et H. Dette ses på figuren herunder. &amp;lt;math&amp;gt;k_1&amp;lt;/math&amp;gt; til &amp;lt;math&amp;gt;k_4&amp;lt;/math&amp;gt; kan i første omgang opfattes som almindelige vippeafbrydere, der enten kan være &amp;lt;i&amp;gt;sluttet&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;afbrudt&amp;lt;/i&amp;gt;. Som forklaret under [[#Generel Styring af H-broen]] kan de fire vippeafbrydere kombineres i forskellige settings, hvorved der opnås enten strømløb den ene vej gennem DC motoren, eller den anden vej gennem DC motoren, hvilket bestemmer DC motorakslens rotationsretning. Motoren kan endvidere bremses.&lt;br /&gt;
&lt;br /&gt;
[[Fil:H_bro-open.png|400px|Principskitse for H-bro]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Principskitse for H-bro&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
På el-diagrammet nedenfor ses H-broen hvor kontakterne K1 til K4 er udskiftet med [[MOSFET_transistor|MOSFET]] transistorer. Hver af de fire MOSFET transistorer styres (dvs. åbnes og lukkes) ved at sætte K1, K2, K3 og K4 enten høj (+5 V fra mikroprocessor) eller lav (0 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:H bro-diagram-FQP MOSFET.jpg|800px|El-diagram over H-bro med 4 MOSFET]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagram over H-bro med 4 MOSFET&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De anvendte [[MOSFET_transistor|MOSFET]] transistorer kan håndtere en strøm på maksimalt 27 A. Overstiges denne strømstyrke, vil transistorerne brænde af.&lt;br /&gt;
&lt;br /&gt;
Da de anvendte [[P-kanals MOSFET]] transistorer skal have en spændingsforskel mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; på &lt;br /&gt;
-8V, for at kunne håndtere en strømstyrke gennem &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; på 27 A, anvendes en gate-driver. Det er transistoren Q1, sammen med modstandene R1, R3 og R4 for Q2, mens Q6, R5, R6 og R7 er gate-driver for Q4.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beregning af modstande til signaltilpasningen til H-bro====&lt;br /&gt;
På el-diagrammet ovenfor, ses ”signaltilpasningskredsløb” markeret i de to røde kasser. Formålet med disse to kredsløb er, at kunne tænde og slukke for [[P-kanals MOSFET]] (Q2 og Q4 på el-diagrammet ovenfor). Da P-kanals MOSFET’s Source ben er forbundet til +12 V, og ikke GND som en [[N-kanals MOSFET]] ville være, er Arduinoboardets output på 5 V jo i forhold til GND og ikke i forhold til +12 V, og dermed ikke direkte brugbar for at styre P-kanals MOSFET.&lt;br /&gt;
&lt;br /&gt;
Transistoren, Q1, er en almindelig BC547 småsignals transistor. Den tænder, når spændingen mellem &amp;lt;b&amp;gt;Basis&amp;lt;/b&amp;gt; (ben 2) og &amp;lt;b&amp;gt;Emitter&amp;lt;/b&amp;gt; (ben 3) er 0,6 V. Det vil sige, at når punktet K1 – der er forbundet til en af Arduinoboardets outputporte – bliver HIGH, er der 5 V i forhold til GND på K1. Ved Basis på Q1 skal der være 0,6 V, og forskellen mellem de 5 V og 0,6 V – det vil sige 4,4 V – skal ligge over modstanden R1. For at kunne beregne værdien af R1, skal vi kende strømstyrken der løber ind i &amp;lt;b&amp;gt;Basis&amp;lt;/b&amp;gt;. Den er 100 gange lavere end strømstyrken der løber ind i transistorens &amp;lt;b&amp;gt;Collector&amp;lt;/b&amp;gt;-ben (ben 1). Det vælges at designe kredsløbet ud fra, at strømstyrken ind i &amp;lt;b&amp;gt;Collector&amp;lt;/b&amp;gt; på Q1 er 10 mA. Dermed beregnes strømstyrken i &amp;lt;b&amp;gt;Basis&amp;lt;/b&amp;gt;, &amp;lt;math&amp;gt;I_b&amp;lt;/math&amp;gt;, til:&lt;br /&gt;
&amp;lt;math&amp;gt;I_b = \frac{I_c}{h_{FE}} = \frac{10 mA}{100} = 0,1 mA&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Derefter beregnes R1: &lt;br /&gt;
&amp;lt;math&amp;gt;R_1 = \frac{U_{R_1}}{I_b} = \frac{4,4 V}{0,1 mA} = 44 k\Omega \approx 39 k\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Når transistoren Q1 er tændt, ligger der ca. 0,2 V mellem &amp;lt;b&amp;gt;Collector&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Emitter&amp;lt;/b&amp;gt;. Spændingen mellem R3, R4 og Q1 er 12 V. Dermed ligger der en spænding på:  &amp;lt;math&amp;gt;U_{forsyning} - U_{CE,Q1} = 12 V - 0,2 V = 11,8 V&amp;lt;/math&amp;gt; over modstandende R3 og R4. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modstanden R3 skal beregnes, så spændingen over denne bliver 8 V, da dette vil tillade et strømtræk gennem Q2 på op til 27 A&amp;lt;ref&amp;gt;[https://www.onsemi.com/download/data-sheet/pdf/fqp30n06l-d.pdf &amp;quot;FQP30N06L datablad&amp;quot;]&amp;lt;/ref&amp;gt;. Det er den spænding der vil komme til at ligge mellem &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; og &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; på Q2. Strømmen gennem R3, &amp;lt;math&amp;gt;I_c&amp;lt;/math&amp;gt;, er sat til 10 mA. Modstanden R3 kan dermed beregnes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_3 = \frac{U_{R3}}{I_c} = \frac{8 V}{10 mA} = 800 \Omega \approx 820 \Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tilbage er modstanden R4, hvor den resterende spænding skal ligge:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_4 = \frac{U_{R4}}{I_c} = \frac{11,8 V - 8 V}{10 mA} = 380 \Omega \approx 390 \Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Færdige styringer der indeholder en H-Bro===&lt;br /&gt;
En løsning der kan være god, hvis man bare skal have en H-Bro til at fungere er at vælge en færdig kreds/board der indeholder hele styringen. Her har vi forskellige typer:&lt;br /&gt;
&lt;br /&gt;
[[fil:L293-eksempel.png|thumb|right|200px|Principskitse over L293 motor driver]]&lt;br /&gt;
En [http://htx-elev.ucholstebro.dk/el/komponent/L293N.pdf L293] der består af 4 drivere, der to sammen kan forme en H-bro, den har følgende egenskaber:&lt;br /&gt;
* 16 bens DIL IC, der skal monteres på et print (virker ikke så godt i et fumlebræt)&lt;br /&gt;
* Kan danne 2 H-Broer men også 4 individuelle styringer af motorer, der ikke skal vende polaritet&lt;br /&gt;
* Skal have separat logik-forsyning 5V (4,5 - 7 V)&lt;br /&gt;
* Arbejder med motorer på 5 - 36 V op til 1A&lt;br /&gt;
* SKAL have beskyttelsesdioder monteret fx. typen 1N4007&lt;br /&gt;
* Er meget fleksibel i opbygningen&lt;br /&gt;
&lt;br /&gt;
[[fil:L9110-eksempel.png|thumb|right|150px|Billede af print med 2 stk L9110 H-Bro drivere]]&lt;br /&gt;
Et print med to stk [https://www.elecrow.com/download/datasheet-l9110.pdf L9110] H-Bro kredse, der kan styre enten to [[DC-motor]]er eller en Bi-polar [[Stepmotor]]. Printet er bl.a. købt ved [https://www.aliexpress.com/item/Smart-Electronics-L9110S-DC-Stepper-Motor-Driver-Board-H-Bridge-best-prices/32513995566.html Aliexpress.com], og har følgende egenskaber:&lt;br /&gt;
* Sidder på et print med 6 bens tilslutning til styring og forsyning samt 4 skrueterminaler til motorer.&lt;br /&gt;
* Har fast 2 stk. H-broer&lt;br /&gt;
* Har ingen logikforsyning, men skal have fælles stel mellem styring og motorforsyning&lt;br /&gt;
* Styresignaler på 3-5V&lt;br /&gt;
* Motorspænding på 2,5 - 12 V med en maks strøm på 800mA&lt;br /&gt;
* Har indbyggede beskyttelsesdioder&lt;br /&gt;
&lt;br /&gt;
[[fil:A4988-eksempel.png|thumb|right|150px|Billede af print med en A4988 stepper motor driver]]&lt;br /&gt;
Et print med en[http://www.geeetech.com/Documents/A4988-Datasheet.pdf A4988] stepper motor driver, der kan styre en bipolar [[stepmotor]]. Printet er køb ved [[https://www.aliexpress.com/item/1Pcs-StepStick-Stepper-Motor-Driver-A4988-Driver-Module-For-Reprap-Prus-3D-Printer-Newest/32275396248.html aliexpress.com]], og har følgende egenskaber:&lt;br /&gt;
* Sidder på et print med 16 stik-ben (alle skal forbindes fornuftigt&lt;br /&gt;
* Har udgange til en 2 viklings bipolar [[stepmotor]]&lt;br /&gt;
* Har 3-5V logik-forsyning, med fælles stel til motorforsyningen&lt;br /&gt;
* Motorspænding på 8-35V med en kams strøm på 1,5A&lt;br /&gt;
* Har indbyggede beskyttelsesdioder&lt;br /&gt;
* Kræver en lille køleplade ved hård belastning&lt;br /&gt;
* Har en avanceret styring, der kan mikrosteppe stepmotoren - kan indstilles til Full-step, Half-step, 1/4 step, 1/8 step og 1/16 step, hvor styringen [[PWM]]-pulser signalet ind mellem steppene.&lt;br /&gt;
* Skal styres med step og direction - ikke med normal stepper software&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Kredsløb]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:H_bro-diagram-FQP_MOSFET.jpg&amp;diff=5169</id>
		<title>Fil:H bro-diagram-FQP MOSFET.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:H_bro-diagram-FQP_MOSFET.jpg&amp;diff=5169"/>
		<updated>2022-11-25T07:48:26Z</updated>

		<summary type="html">&lt;p&gt;Hnl: H-bro el-diagram med FQP MOSFET&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
H-bro el-diagram med FQP MOSFET&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:H_bro-open.png&amp;diff=5168</id>
		<title>Fil:H bro-open.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:H_bro-open.png&amp;diff=5168"/>
		<updated>2022-11-25T07:41:49Z</updated>

		<summary type="html">&lt;p&gt;Hnl: H-bro med switches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
H-bro med switches&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5069</id>
		<title>MOSFET transistor</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5069"/>
		<updated>2022-11-23T19:05:18Z</updated>

		<summary type="html">&lt;p&gt;Hnl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fil:MOSFET_TO220.png|210px|thumb|right]]&lt;br /&gt;
Når man vil forbinde sit Arduinoboard til ”omverdenen”, oplever man af og til, at Arduinoboardet ikke kan levere nok strøm til den komponent man vil tilkoble, eller der skal bruges en højere spænding end de 5 V som Arduinoboardet arbejder med. Hvad gør man så? Jo, så skal man have fat i en transistor…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I specifikationerne over Arduinoboardet kan man læse, at man højest kan trække 20 mA fra et portben på en Arduino&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt;. Det er den strømstyrke man normalt anvender til at få en lysdiode til at lyse. Men hvis man har behov for at trække en større strøm, kan man anvende en transistor, der fungerer som en ”omskifter” eller ”kontakt”, og som man kan &amp;lt;i&amp;gt;tænde&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;slukke&amp;lt;/i&amp;gt; via et portben på Arduinoen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan også komme ud for, at man skal kunne tænde og slukke for en komponent der arbejder på 12 V, og ikke de 5 V som Arduinoboardet gør. Det kan for eksempel være en DC motor eller en pumpe. Disse komponenter vil oftest også trække større strøm end de 20 mA et portben kan levere. Løsningen er igen en transistor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der findes flere slags transistorer; Der er den type der kaldes for ”småsignalstransistore”, som virker som strømforstærkere, men kun kan holde til strømme omkring de 100 mA. Disse transistortyper er beskrevet under [[Transistor]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En anden slags transistor er en MOSFET transistor; Den virker som en tænd og sluk kontakt, hvor man ved en lav spænding (og uendelig lille strømstyrke), kan styre en stor strøm på adskillelige ampere ved store spændinger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kort fortalt, så har MOSFET transistoren 3 ben: &amp;lt;i&amp;gt;Gate&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Drain&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;Source&amp;lt;/i&amp;gt;. Når spændingen på &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; overstiger ca. 3 V (i forhold til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;), så tænder transistoren, og strøm kan løbe fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;. Man kan se en MOSFET transistor som en styrbar kontakt, der kan styres med en spænding. Lidt som et relæ, men uden alt det mekaniske.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en [[#N-kanals MOSFET|N-kanals MOSFET transistor]] af typen FQP30N06. &lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_eldiagram.png|250px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at strømmen skal kunne løbe gennem MOSFET transistoren, skal ”Gaten” åbnes. Det gøres ved at have en spændingsforskel mellem Gate og Source der er afhængig af MOSFET modellen. Størrelsen af Gate-Source spændingen (&amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt;) styrer hvor stor en strøm der kan løbe gennem transistoren. Man kan finde en graf over sammenhængen mellem &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;I_{DS}&amp;lt;/math&amp;gt; i databladet for den MOSFET transistor man ønsker at benytte.&lt;br /&gt;
&lt;br /&gt;
I databladet&amp;lt;ref&amp;gt;[https://www.onsemi.com/download/data-sheet/pdf/fqp30n06l-d.pdf &amp;quot;FQP30N06L datablad&amp;quot;]&amp;lt;/ref&amp;gt; for en FQP30N06L N-kanals MOSFET ser vi grafen for &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; som vist nedenfor. Her ses det, at der kun skal en spændingsforskel på 3 V mellem Gate og Source for at kunne trække 10 A gennem MOSFET’en. Ud fra databladet kan det endvidere læses, at &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; maksimalt må komme op på 20 V.&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
En anden N-kanals MOSFET er IRF520, og sammenligner man dennes &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; i databladet&amp;lt;ref&amp;gt;[https://www.vishay.com/docs/91017/irf520.pdf &amp;quot;IRF520 datablad&amp;quot;]&amp;lt;/ref&amp;gt;, ses det, at hvis man ønsker man at kunne trække helt op til 10 A gennem denne, skal der være en spændingsforskel mellem Gate og Source på (mindst) 7,5 V. Det skal man tænke over, når man vælger &amp;lt;i&amp;gt;hvad&amp;lt;/i&amp;gt; der skal tænde for MOSFET transistoren (f.eks. et Arduinoboard der leverer en spænding på 5 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_IRF520-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==N-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en N-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_N-ch.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]        [[Fil:MOSFET_N-ch_current.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en N-kanals MOSFET skal løbe fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==P-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en P-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_P-ch.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]        [[Fil:MOSFET_P-ch_current.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for P-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en P-kanals MOSFET skal løbe fra Source til Drain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MOSFET styrer DC motor==&lt;br /&gt;
[[Fil:MOSFET_DC-motor.png|300px|thumb|right]]&lt;br /&gt;
På el-diagrammet til højre er der anvendt en MOSFET transistor til at tænde og slukke for en DC motor. Der er anvendt en FQP30N06L [[N-kanals MOSFET|N-kanals MOSFET transistor]]. Når spændingen ved &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; (G) er mellem 3-5 V vil MOSFET transistoren åbne, og der løber strøm fra til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; (D) til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; (S), og dermed kan der løbe en strøm gennem DC motoren. Herved roterer DC motorens aksel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dioden, D1, der på el-diagrammet ses parallelforbundet med motoren, er en sikkerhedsdiode. Motoren indeholder jo en spole, og en spole bliver til en elektromagnet når man sender strøm gennem den. Når man afbryder strømmen til spolen, vil spolen selv forsøge at opretholde sit magnetfelt, og det sker ved at spolen danner en stor spænding med modsat polaritet end da strømmen løb gennem spolen. Denne spænding kan blive meget stor (afhænger af spolen og strømstyrken anvendt), men kortvarigt flere 100 V! For at forhindre dette, sættes dioden på, så når den store spænding opstår, vil strømmen løbe fra – på motoren gennem dioden D1 og til + på motoren, og dermed aflade sig selv. Alternativt ville strømmen løbe ned mod transistoren Q1, og den høje spænding ville kunne ødelægge denne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Komponenter]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Hardware Teknologi]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5068</id>
		<title>PWM</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5068"/>
		<updated>2022-11-23T18:14:15Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Strømtræk fra en PWM port på Arduinoboardet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puls Bredde Modulation (eller Puls Width Modulation - deraf PWM) er en måde at lave et signal der kan give en analog værdi ved hjælp af et digitalt output.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
Hvis man tilslutter en 12 V DC motor til en strømforsyning, og langsomt skruer op for spændingen, kan man se, at DC motorens rotationshastighed afhænger af hvor høj spændingen er. Når spændingen er 0 V roterer motorens aksel ikke, og når spændingen når 12 V, roterer DC motorens aksel med maksimal hastighed. Det ses dermed, at man kan regulere DC motorens rotationshastighed ud fra den analoge spænding den forsynes med.&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at regulere DC motoren fra mikroprocessoren, har man behov for at lave en variabel spænding. Da mikroprocessorens output arbejder digitalt, og vi har behov for en analog spænding vi kan variere, vil vi gøre brug af metoden der hedder &amp;lt;i&amp;gt;pulse width modulation&amp;lt;/i&amp;gt; (dvs. &amp;lt;i&amp;gt;puls bredde modulation&amp;lt;/i&amp;gt; eller bare PWM). PWM laver en variabel spænding ud fra digitale pulser.&lt;br /&gt;
&lt;br /&gt;
Hvis man sætter et outputben på mikroprocessoren høj, vil man på benet kunne måle en spænding på 5 V. Figuren herunder viser hvordan dette ser ud målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_01_max.png|500px|Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet sætter outputbenet lavt, vil man kunne måle en spænding på 0 V. Dette er vist herunder målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_02_min.png|500px|Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man skifter mellem høj og lav, og gør det f.eks. med en frekvens på 500 Hz (dvs. 500 perioder pr. sekund), og lader benet være højt 1 msek, og derefter lavt i 1 msek, så vil man kunne måle en spænding på 2,5 V på benet. Dette ses på figuren nedenfor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_03_half.png|500px|Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Er det i stedet for 0,5 msek benet er højt, og 1,5 msek benet er lavt (dvs. højt &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden, og lavt &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden), så bliver middelspændingen &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af de 5 V = 1,25 V. Dette ses på figuren herunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_04_quarter.png|500px|Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan altså bestemme middelspændingen på outputputtet ved at justere hvor lang tid benet henholdsvis er højt og lavt. For at man ikke oplever at spændingen ”hopper” op og ned, skal skiftene ske hurtigt. Hvis det for eksempel sker med en frekvens på 500 Hz (dvs. at en periode varer 2 msek), så opleves spændingen som værende konstant.&lt;br /&gt;
 &lt;br /&gt;
==Princippet - Er det OK dækket i ovenstående afsnit?==&lt;br /&gt;
Måden man gør det på er ved at sende et signal ud med en fast frekvens, hvor man så lader signalet være højt i en vis procentdel af tiden og lav i resten af tiden.&lt;br /&gt;
&lt;br /&gt;
Herunder er der illustreret 4 forskellige signaler på et PWM-output. Signalet kan helt i yderområderne være lavet hele tiden (0%) og højt hele tiden (100%).&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM-values.png|4 PWM signaler med forskellig værdi, fra 5% til 90%]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;4 PWM signaler med forskellig værdi, fra 5% til 90%&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På den måde kan man bestemme hvilken gennemsnits-spænding der kommer ud.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af PWM signalet==&lt;br /&gt;
Man kan anvende sit PWM signal til mange formål; alt fra at dæmpe lyset i en lysdiode til at justere rotationshastigheden for en DC motors aksel. Da PWM signalet reelt er et digital signal der skifter mellem 0 V og 5 V skal man overveje om dette firkantsignal uden videre kan anvendes til det ønskede formål; Er det en lysdiode der skal dæmpes ned, er det måske OK at den står og flimrer lidt, hvor imod det kan give problemer hvis PWM signalet skal anvendes som en konstant, præcis spænding i et målekredsløb. Gælder sidstnævnte, kan man tilføje en analog filtrering mellem PWM signalet og målekredsløbet (se afsnittet [[#Analog filtrering]]).&lt;br /&gt;
&lt;br /&gt;
Anvender man PWM signalet til en elmotor, så vil motorens inertimoment ved rotation fungere som filter, der glatter firkantsignalet ud. Inertimomentet kan beskrives som &amp;lt;i&amp;gt;trægheden&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;modviljen&amp;lt;/i&amp;gt; til at ændre på rotationsbevægelsen og afhænger bl.a. af massen af det der roterer (jo større masse, desto større inertimoment, og dermed større modvilje til at ændre rotationsbevægelsen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Analog filtrering===&lt;br /&gt;
For at signalet skal blive en fornuftig DC-spænding, så laves en analog filtrering af signalet med er RC-led som vist her:&lt;br /&gt;
&lt;br /&gt;
[[image:PWM-diagram.PNG]]&lt;br /&gt;
&lt;br /&gt;
==PWM på Arduino==&lt;br /&gt;
Et Arduino Uno board har seks porte der kan sættes op til at lave PWM; Det er portben 3, 5, 6, 9, 10 og 11, der er angivet med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|600px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge PWM udgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programkoden der skal til for at anvende PWM på et af de &#039;&#039;&#039;~&#039;&#039;&#039;-mærkede outputben er at skrive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  analogWrite(analogOutPin, outputValue);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;analogOutPin&#039;&#039;&#039; skal sættes til portbensnummeret. Benet skal være sat op til output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;outputValue&#039;&#039;&#039; skal være af typen byte, så værdien ligger fra 0 til 255. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med konstant 2,5 V===&lt;br /&gt;
Ønsker man en konstant spænding på 2,5 V fra en af PWM portbenene, kan man skrive som følger. I eksemplet anvendes portben 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
  {&lt;br /&gt;
     pinMode(pwmPin, OUTPUT); &lt;br /&gt;
     analogWrite(pwmPin, 127);   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void loop()&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da 2,5 V er den halve spænding af Arduinoboardets 5 V spænding, sættes &#039;&#039;&#039;outputValue&#039;&#039;&#039; værdien til den halve værdi af maksimum, hvilket er 127.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med variabel spænding===&lt;br /&gt;
Hvis man ønsker at justere outputspændingen ud fra positionen på et potentiometer, kan man koble potentiometrets midterste ben til et analog input på Arduinoboardet, og de to andre ben til henholdsvis +5 V og GND; Dermed kan inputspændingen læses, og bruges til at justere outputspændingen på det ønskede portben.&lt;br /&gt;
&lt;br /&gt;
Bemærk, at Arduino Uno har en 10 bit ADC &amp;lt;b&amp;gt;(link til ADC)&amp;lt;/b&amp;gt;, og dermed arbejder med heltalsværdier mellem 0 og 1023, mens PWM på Arduino Uno er i 8 bit, og dermed heltalsværdier mellem 0 og 255. Det betyder, at når man læser et heltal der kan ligge mellem 0 og 1023, skal det konverteres ned i talrummet af heltal mellem 0 og 255. Til dette anvendes funktionen &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; er værdien der skal konverteres (her værdien læst fra potentiometret)&lt;br /&gt;
&#039;&#039;&#039;fromLow&#039;&#039;&#039; er den mindste værdi value kan antage (her 0)&lt;br /&gt;
&#039;&#039;&#039;fromHigh&#039;&#039;&#039; er den højeste værdi value kan antage (her 1023)&lt;br /&gt;
&#039;&#039;&#039;toLow&#039;&#039;&#039; er den laveste værdi der skal konverteres til (her 0)&lt;br /&gt;
&#039;&#039;&#039;toHigh&#039;&#039;&#039; er den højeste værdi der skal konverteres til (her 255)&lt;br /&gt;
&lt;br /&gt;
I eksemplet her anvendes portben 3 til PWM output, mens det analoge signal fra potentiometret læses fra analog port A0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
  const int aInput = A0;&lt;br /&gt;
&lt;br /&gt;
  int analogInputValue;&lt;br /&gt;
  int pwmValue;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
 {&lt;br /&gt;
    pinMode(pwmPin, OUTPUT); &lt;br /&gt;
    pinMode(aInput, INPUT);   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    analogInputValue = analogRead(aInput);&lt;br /&gt;
    pwmValue = map(analogInputValue, 0, 1023, 0, 255);&lt;br /&gt;
    analogWrite(pwmPin, pwmValue);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Strømtræk fra en PWM port på Arduinoboardet===&lt;br /&gt;
Da et Arduinoboard i følge specifikationerne&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt; maksimalt kan levere 20 mA fra en output port, kan man være nød til at anvende en transistor mellem portbenet på Arduinoboardet og den komponent der skal drives. Det kan f.eks. være en [[MOSFET transistor]]&lt;br /&gt;
&lt;br /&gt;
==PWM på PIC==&lt;br /&gt;
===Eksempel på output===&lt;br /&gt;
&lt;br /&gt;
Hvis man stiller CCPR1L / outputValue til 64, så kan man måle det viste:&lt;br /&gt;
&lt;br /&gt;
[[Image:osc-pwm-25.png]]&lt;br /&gt;
&lt;br /&gt;
Den nederste kurveform er et 5V output målt på P1A, hvor det er højt i ca. 0.26 ms ud af de i alt 1.02 ms som periodetiden er. Det er ca. 25 % af tiden, og som det kan ses på den blå kurve øverst, så ligger den udglattede udgangsspænding på ca. 25 % af de 5V (1.25V), men i praksis er spændingen lidt lavere, som her måles til 1.16V. Det skyldes at Forsyningspændingen ligger lidt under 5V.&lt;br /&gt;
&lt;br /&gt;
===Koden til PWM på PIC===&lt;br /&gt;
Alle [[PIC-type]]r kan i princippet lave PWM, men det gøres lettest i en PIC der kan det som indbygget standard.&lt;br /&gt;
&lt;br /&gt;
Til [[PIC16F684]] er der lavet et eksempel på [[Media:PWM.zip|PWM-kode]], der skitseres her.&lt;br /&gt;
&lt;br /&gt;
Der vælges at lave output på P1A, der er pin_C5, så denne skal indstilles til output.&lt;br /&gt;
&lt;br /&gt;
Herefter initialiseres CCP1CON registeret til kun lave output på P1A og at det er PWN der skal anvendes. Derefter sættes timer 2 op, så den fungerer - her er valgt 4 gange prescaler. Koden skrives som:&lt;br /&gt;
&lt;br /&gt;
 -- Initialisering af PWM&lt;br /&gt;
 CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
 T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
Registeret PR2 sættes til sin maksimale værdi, så der kommer maksimal opløsning på PWM-signalet&lt;br /&gt;
&lt;br /&gt;
 PR2 = 255&lt;br /&gt;
&lt;br /&gt;
Tilsammen giver disse to ting at frekvensen på PWM-signalet bliver ca. 1 kHz ved et oscillatorfrekvens på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
====Værdien der giver PWM outputtet====&lt;br /&gt;
Når det ovenstående er indstillet, så kan man blot skrive en værdi til CCPR1L på mellem 0 og 255, hvilket så giver værdien i forhold til de 255.&lt;br /&gt;
&lt;br /&gt;
Der ligger faktisk 2 bit ekstra i opløsning, som skal angives i de 2 lave bit af CCP1CON, så man kan angive totalt set en 10 bit værdi.&lt;br /&gt;
&lt;br /&gt;
===PWM til at danne forskellige frekvenser===&lt;br /&gt;
I stedet for at anvende PWM til at lave en tilnærmet DC-værdi med, så kan man også få PWM-udgangen til at danne en fast frekvens, hvor man så kan indstille duty-cycle til 50%.&lt;br /&gt;
&lt;br /&gt;
Ved at rette på periode-tiden kan man få udgangen til at lave forskellige frekvenser.&lt;br /&gt;
&lt;br /&gt;
En simpel måde at gøre det på er at sætte post- og pre-scaler til faste værdier, og så kun rette på PR2 og CCPR1L, som det er illustreret her ved hjælp af proceduren lyd, der tager periodetiden som parameter. Med denne initialisering kan der dannes frekvenser fra 1 kHz og opad.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
PR2 = 255&lt;br /&gt;
T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
-- Procedure der sætter en frekvens på PWM&lt;br /&gt;
-- 255 giver ca. 1 kHz&lt;br /&gt;
-- 128 giver ca. 2 kHz&lt;br /&gt;
procedure lyd (byte in periode) is&lt;br /&gt;
   PR2 = periode&lt;br /&gt;
   CCPR1L = periode / 2&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at dække et bredere frekvensområde, så skal man indstille både PR2, CCPR1L og T2CON, for at kunne danne frekvenserne præcist nok. Dette er illustreret i følgende kode (ikke testet):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
&lt;br /&gt;
-- Procedure der kan lave frekvenser fra 244 Hz til 20000 Hz ved en oscillatorfrekvens på 4MHz&lt;br /&gt;
-- Koden er tilpasser minimum frekvensen efter oscillatorfrekvensen&lt;br /&gt;
--   Oscillator    Minimum&lt;br /&gt;
--    4_000_000      244&lt;br /&gt;
--    8_000_000      488&lt;br /&gt;
--   20_000_000     1219&lt;br /&gt;
procedure tone(word in frekvens) is&lt;br /&gt;
   -- Perioden beregnes som PR2 = F_OSC / (4 * Frekvens * Prescaler) - 1&lt;br /&gt;
   -- Det skal bemærkes at post-scaleren ikke regnes med i dannelsen af frekvensen&lt;br /&gt;
   var dword periode = target_clock / 2 -- Gem den sidste halvering til afrunding&lt;br /&gt;
   if frekvens &amp;lt;= (target_clock / 16416) then     -- Så lave frekvenser understøttes ikke&lt;br /&gt;
      return&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 4104) then  -- Frekvenser der håndteres med prescaler 16&lt;br /&gt;
      T2Con = 0b0110&lt;br /&gt;
      periode = periode / 16&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 1026) then -- Frekvenser der håndteres med prescaler 4&lt;br /&gt;
      T2Con = 0b0101&lt;br /&gt;
      periode = periode / 4&lt;br /&gt;
   else                       -- Ved Prescaler = 1 rettes periodetiden ikke&lt;br /&gt;
      T2CON = 0b0100&lt;br /&gt;
   end if&lt;br /&gt;
&lt;br /&gt;
   periode = periode / frekvens -- Midlertidig beregning af perioden&lt;br /&gt;
   periode = (periode + 1) / 2  -- Division med afrunding i stedet for trunkering&lt;br /&gt;
   CCPR1L = byte(periode/2)     -- Lav ca. 50% dutycycle&lt;br /&gt;
   periode = periode - 1        -- Den sidste tilpasning efter formlen&lt;br /&gt;
   PR2 = byte(periode)&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test-koden og et regneark der illustrerer hvordan tonerne beregnes ligger i en [[Media:PWM-tone.zip|ZIP-fil]].&lt;br /&gt;
&lt;br /&gt;
Koden tester først om indstillingen kan laves ved den givne oscillatorfrekvens, og hvis den kan det, så indstilles prescaleren, så PR2 får størst mulig værdi, uden at der kommer overflow. Der forberedes også beregningen af periodetiden.&lt;br /&gt;
&lt;br /&gt;
Periodetiden beregnes ud fra frekvensen, og der tilpasses formlen for periodetiden. Endelig laves en afrunding af resultatet, i stedet for en normal truckering som man ellers gør i JAL divisioner. Dutycycle sættes til ca. 50% ved at sætte CCPR1L til halvdelen af PR2. &lt;br /&gt;
&lt;br /&gt;
Ved disse beregninger skulle frekvensen gerne ramme inden for +/- 1% på frekvenser fra 244 Hz til 20000 Hz ved oscillatorfrekvensen på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
===Andre PIC-typers PWM===&lt;br /&gt;
Der er ikke angivet hvordan koden skrives til andre PIC-typer, men princippet er nogenlunde det samme. Først skal man lave indstillingerne der angiver hvilke output der skal lave PWM, og så skal man sætte PIC&#039;en op så der er noget der angiver periodetiden, og noget der angiver hvor stor en del af periodetiden der skal være højt signal.&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{logik-begreber}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog]]&lt;br /&gt;
[[Kategori:Digital]]&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5067</id>
		<title>PWM</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=PWM&amp;diff=5067"/>
		<updated>2022-11-23T18:13:54Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Strømtræk fra en PWM port på Arduinoboardet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puls Bredde Modulation (eller Puls Width Modulation - deraf PWM) er en måde at lave et signal der kan give en analog værdi ved hjælp af et digitalt output.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
Hvis man tilslutter en 12 V DC motor til en strømforsyning, og langsomt skruer op for spændingen, kan man se, at DC motorens rotationshastighed afhænger af hvor høj spændingen er. Når spændingen er 0 V roterer motorens aksel ikke, og når spændingen når 12 V, roterer DC motorens aksel med maksimal hastighed. Det ses dermed, at man kan regulere DC motorens rotationshastighed ud fra den analoge spænding den forsynes med.&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at regulere DC motoren fra mikroprocessoren, har man behov for at lave en variabel spænding. Da mikroprocessorens output arbejder digitalt, og vi har behov for en analog spænding vi kan variere, vil vi gøre brug af metoden der hedder &amp;lt;i&amp;gt;pulse width modulation&amp;lt;/i&amp;gt; (dvs. &amp;lt;i&amp;gt;puls bredde modulation&amp;lt;/i&amp;gt; eller bare PWM). PWM laver en variabel spænding ud fra digitale pulser.&lt;br /&gt;
&lt;br /&gt;
Hvis man sætter et outputben på mikroprocessoren høj, vil man på benet kunne måle en spænding på 5 V. Figuren herunder viser hvordan dette ser ud målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_01_max.png|500px|Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet sætter outputbenet lavt, vil man kunne måle en spænding på 0 V. Dette er vist herunder målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_02_min.png|500px|Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man skifter mellem høj og lav, og gør det f.eks. med en frekvens på 500 Hz (dvs. 500 perioder pr. sekund), og lader benet være højt 1 msek, og derefter lavt i 1 msek, så vil man kunne måle en spænding på 2,5 V på benet. Dette ses på figuren nedenfor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_03_half.png|500px|Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Er det i stedet for 0,5 msek benet er højt, og 1,5 msek benet er lavt (dvs. højt &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden, og lavt &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden), så bliver middelspændingen &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af de 5 V = 1,25 V. Dette ses på figuren herunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_04_quarter.png|500px|Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan altså bestemme middelspændingen på outputputtet ved at justere hvor lang tid benet henholdsvis er højt og lavt. For at man ikke oplever at spændingen ”hopper” op og ned, skal skiftene ske hurtigt. Hvis det for eksempel sker med en frekvens på 500 Hz (dvs. at en periode varer 2 msek), så opleves spændingen som værende konstant.&lt;br /&gt;
 &lt;br /&gt;
==Princippet - Er det OK dækket i ovenstående afsnit?==&lt;br /&gt;
Måden man gør det på er ved at sende et signal ud med en fast frekvens, hvor man så lader signalet være højt i en vis procentdel af tiden og lav i resten af tiden.&lt;br /&gt;
&lt;br /&gt;
Herunder er der illustreret 4 forskellige signaler på et PWM-output. Signalet kan helt i yderområderne være lavet hele tiden (0%) og højt hele tiden (100%).&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM-values.png|4 PWM signaler med forskellig værdi, fra 5% til 90%]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;4 PWM signaler med forskellig værdi, fra 5% til 90%&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På den måde kan man bestemme hvilken gennemsnits-spænding der kommer ud.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af PWM signalet==&lt;br /&gt;
Man kan anvende sit PWM signal til mange formål; alt fra at dæmpe lyset i en lysdiode til at justere rotationshastigheden for en DC motors aksel. Da PWM signalet reelt er et digital signal der skifter mellem 0 V og 5 V skal man overveje om dette firkantsignal uden videre kan anvendes til det ønskede formål; Er det en lysdiode der skal dæmpes ned, er det måske OK at den står og flimrer lidt, hvor imod det kan give problemer hvis PWM signalet skal anvendes som en konstant, præcis spænding i et målekredsløb. Gælder sidstnævnte, kan man tilføje en analog filtrering mellem PWM signalet og målekredsløbet (se afsnittet [[#Analog filtrering]]).&lt;br /&gt;
&lt;br /&gt;
Anvender man PWM signalet til en elmotor, så vil motorens inertimoment ved rotation fungere som filter, der glatter firkantsignalet ud. Inertimomentet kan beskrives som &amp;lt;i&amp;gt;trægheden&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;modviljen&amp;lt;/i&amp;gt; til at ændre på rotationsbevægelsen og afhænger bl.a. af massen af det der roterer (jo større masse, desto større inertimoment, og dermed større modvilje til at ændre rotationsbevægelsen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Analog filtrering===&lt;br /&gt;
For at signalet skal blive en fornuftig DC-spænding, så laves en analog filtrering af signalet med er RC-led som vist her:&lt;br /&gt;
&lt;br /&gt;
[[image:PWM-diagram.PNG]]&lt;br /&gt;
&lt;br /&gt;
==PWM på Arduino==&lt;br /&gt;
Et Arduino Uno board har seks porte der kan sættes op til at lave PWM; Det er portben 3, 5, 6, 9, 10 og 11, der er angivet med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|600px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge PWM udgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programkoden der skal til for at anvende PWM på et af de &#039;&#039;&#039;~&#039;&#039;&#039;-mærkede outputben er at skrive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  analogWrite(analogOutPin, outputValue);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;analogOutPin&#039;&#039;&#039; skal sættes til portbensnummeret. Benet skal være sat op til output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;outputValue&#039;&#039;&#039; skal være af typen byte, så værdien ligger fra 0 til 255. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med konstant 2,5 V===&lt;br /&gt;
Ønsker man en konstant spænding på 2,5 V fra en af PWM portbenene, kan man skrive som følger. I eksemplet anvendes portben 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
  {&lt;br /&gt;
     pinMode(pwmPin, OUTPUT); &lt;br /&gt;
     analogWrite(pwmPin, 127);   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void loop()&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da 2,5 V er den halve spænding af Arduinoboardets 5 V spænding, sættes &#039;&#039;&#039;outputValue&#039;&#039;&#039; værdien til den halve værdi af maksimum, hvilket er 127.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med variabel spænding===&lt;br /&gt;
Hvis man ønsker at justere outputspændingen ud fra positionen på et potentiometer, kan man koble potentiometrets midterste ben til et analog input på Arduinoboardet, og de to andre ben til henholdsvis +5 V og GND; Dermed kan inputspændingen læses, og bruges til at justere outputspændingen på det ønskede portben.&lt;br /&gt;
&lt;br /&gt;
Bemærk, at Arduino Uno har en 10 bit ADC &amp;lt;b&amp;gt;(link til ADC)&amp;lt;/b&amp;gt;, og dermed arbejder med heltalsværdier mellem 0 og 1023, mens PWM på Arduino Uno er i 8 bit, og dermed heltalsværdier mellem 0 og 255. Det betyder, at når man læser et heltal der kan ligge mellem 0 og 1023, skal det konverteres ned i talrummet af heltal mellem 0 og 255. Til dette anvendes funktionen &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; er værdien der skal konverteres (her værdien læst fra potentiometret)&lt;br /&gt;
&#039;&#039;&#039;fromLow&#039;&#039;&#039; er den mindste værdi value kan antage (her 0)&lt;br /&gt;
&#039;&#039;&#039;fromHigh&#039;&#039;&#039; er den højeste værdi value kan antage (her 1023)&lt;br /&gt;
&#039;&#039;&#039;toLow&#039;&#039;&#039; er den laveste værdi der skal konverteres til (her 0)&lt;br /&gt;
&#039;&#039;&#039;toHigh&#039;&#039;&#039; er den højeste værdi der skal konverteres til (her 255)&lt;br /&gt;
&lt;br /&gt;
I eksemplet her anvendes portben 3 til PWM output, mens det analoge signal fra potentiometret læses fra analog port A0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
  const int aInput = A0;&lt;br /&gt;
&lt;br /&gt;
  int analogInputValue;&lt;br /&gt;
  int pwmValue;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
 {&lt;br /&gt;
    pinMode(pwmPin, OUTPUT); &lt;br /&gt;
    pinMode(aInput, INPUT);   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    analogInputValue = analogRead(aInput);&lt;br /&gt;
    pwmValue = map(analogInputValue, 0, 1023, 0, 255);&lt;br /&gt;
    analogWrite(pwmPin, pwmValue);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Strømtræk fra en PWM port på Arduinoboardet===&lt;br /&gt;
Da et Arduinoboard i følge specifikationerne&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt; maksimalt kan levere 20 mA fra en output port, kan man være nød til at anvende en transistor mellem portbenet på Arduinoboardet og den komponent der skal drives. Det kan f.eks. være en [[MOSFET|MOSFET transistor]]&lt;br /&gt;
&lt;br /&gt;
==PWM på PIC==&lt;br /&gt;
===Eksempel på output===&lt;br /&gt;
&lt;br /&gt;
Hvis man stiller CCPR1L / outputValue til 64, så kan man måle det viste:&lt;br /&gt;
&lt;br /&gt;
[[Image:osc-pwm-25.png]]&lt;br /&gt;
&lt;br /&gt;
Den nederste kurveform er et 5V output målt på P1A, hvor det er højt i ca. 0.26 ms ud af de i alt 1.02 ms som periodetiden er. Det er ca. 25 % af tiden, og som det kan ses på den blå kurve øverst, så ligger den udglattede udgangsspænding på ca. 25 % af de 5V (1.25V), men i praksis er spændingen lidt lavere, som her måles til 1.16V. Det skyldes at Forsyningspændingen ligger lidt under 5V.&lt;br /&gt;
&lt;br /&gt;
===Koden til PWM på PIC===&lt;br /&gt;
Alle [[PIC-type]]r kan i princippet lave PWM, men det gøres lettest i en PIC der kan det som indbygget standard.&lt;br /&gt;
&lt;br /&gt;
Til [[PIC16F684]] er der lavet et eksempel på [[Media:PWM.zip|PWM-kode]], der skitseres her.&lt;br /&gt;
&lt;br /&gt;
Der vælges at lave output på P1A, der er pin_C5, så denne skal indstilles til output.&lt;br /&gt;
&lt;br /&gt;
Herefter initialiseres CCP1CON registeret til kun lave output på P1A og at det er PWN der skal anvendes. Derefter sættes timer 2 op, så den fungerer - her er valgt 4 gange prescaler. Koden skrives som:&lt;br /&gt;
&lt;br /&gt;
 -- Initialisering af PWM&lt;br /&gt;
 CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
 T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
Registeret PR2 sættes til sin maksimale værdi, så der kommer maksimal opløsning på PWM-signalet&lt;br /&gt;
&lt;br /&gt;
 PR2 = 255&lt;br /&gt;
&lt;br /&gt;
Tilsammen giver disse to ting at frekvensen på PWM-signalet bliver ca. 1 kHz ved et oscillatorfrekvens på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
====Værdien der giver PWM outputtet====&lt;br /&gt;
Når det ovenstående er indstillet, så kan man blot skrive en værdi til CCPR1L på mellem 0 og 255, hvilket så giver værdien i forhold til de 255.&lt;br /&gt;
&lt;br /&gt;
Der ligger faktisk 2 bit ekstra i opløsning, som skal angives i de 2 lave bit af CCP1CON, så man kan angive totalt set en 10 bit værdi.&lt;br /&gt;
&lt;br /&gt;
===PWM til at danne forskellige frekvenser===&lt;br /&gt;
I stedet for at anvende PWM til at lave en tilnærmet DC-værdi med, så kan man også få PWM-udgangen til at danne en fast frekvens, hvor man så kan indstille duty-cycle til 50%.&lt;br /&gt;
&lt;br /&gt;
Ved at rette på periode-tiden kan man få udgangen til at lave forskellige frekvenser.&lt;br /&gt;
&lt;br /&gt;
En simpel måde at gøre det på er at sætte post- og pre-scaler til faste værdier, og så kun rette på PR2 og CCPR1L, som det er illustreret her ved hjælp af proceduren lyd, der tager periodetiden som parameter. Med denne initialisering kan der dannes frekvenser fra 1 kHz og opad.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
PR2 = 255&lt;br /&gt;
T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
-- Procedure der sætter en frekvens på PWM&lt;br /&gt;
-- 255 giver ca. 1 kHz&lt;br /&gt;
-- 128 giver ca. 2 kHz&lt;br /&gt;
procedure lyd (byte in periode) is&lt;br /&gt;
   PR2 = periode&lt;br /&gt;
   CCPR1L = periode / 2&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at dække et bredere frekvensområde, så skal man indstille både PR2, CCPR1L og T2CON, for at kunne danne frekvenserne præcist nok. Dette er illustreret i følgende kode (ikke testet):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
&lt;br /&gt;
-- Procedure der kan lave frekvenser fra 244 Hz til 20000 Hz ved en oscillatorfrekvens på 4MHz&lt;br /&gt;
-- Koden er tilpasser minimum frekvensen efter oscillatorfrekvensen&lt;br /&gt;
--   Oscillator    Minimum&lt;br /&gt;
--    4_000_000      244&lt;br /&gt;
--    8_000_000      488&lt;br /&gt;
--   20_000_000     1219&lt;br /&gt;
procedure tone(word in frekvens) is&lt;br /&gt;
   -- Perioden beregnes som PR2 = F_OSC / (4 * Frekvens * Prescaler) - 1&lt;br /&gt;
   -- Det skal bemærkes at post-scaleren ikke regnes med i dannelsen af frekvensen&lt;br /&gt;
   var dword periode = target_clock / 2 -- Gem den sidste halvering til afrunding&lt;br /&gt;
   if frekvens &amp;lt;= (target_clock / 16416) then     -- Så lave frekvenser understøttes ikke&lt;br /&gt;
      return&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 4104) then  -- Frekvenser der håndteres med prescaler 16&lt;br /&gt;
      T2Con = 0b0110&lt;br /&gt;
      periode = periode / 16&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 1026) then -- Frekvenser der håndteres med prescaler 4&lt;br /&gt;
      T2Con = 0b0101&lt;br /&gt;
      periode = periode / 4&lt;br /&gt;
   else                       -- Ved Prescaler = 1 rettes periodetiden ikke&lt;br /&gt;
      T2CON = 0b0100&lt;br /&gt;
   end if&lt;br /&gt;
&lt;br /&gt;
   periode = periode / frekvens -- Midlertidig beregning af perioden&lt;br /&gt;
   periode = (periode + 1) / 2  -- Division med afrunding i stedet for trunkering&lt;br /&gt;
   CCPR1L = byte(periode/2)     -- Lav ca. 50% dutycycle&lt;br /&gt;
   periode = periode - 1        -- Den sidste tilpasning efter formlen&lt;br /&gt;
   PR2 = byte(periode)&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test-koden og et regneark der illustrerer hvordan tonerne beregnes ligger i en [[Media:PWM-tone.zip|ZIP-fil]].&lt;br /&gt;
&lt;br /&gt;
Koden tester først om indstillingen kan laves ved den givne oscillatorfrekvens, og hvis den kan det, så indstilles prescaleren, så PR2 får størst mulig værdi, uden at der kommer overflow. Der forberedes også beregningen af periodetiden.&lt;br /&gt;
&lt;br /&gt;
Periodetiden beregnes ud fra frekvensen, og der tilpasses formlen for periodetiden. Endelig laves en afrunding af resultatet, i stedet for en normal truckering som man ellers gør i JAL divisioner. Dutycycle sættes til ca. 50% ved at sætte CCPR1L til halvdelen af PR2. &lt;br /&gt;
&lt;br /&gt;
Ved disse beregninger skulle frekvensen gerne ramme inden for +/- 1% på frekvenser fra 244 Hz til 20000 Hz ved oscillatorfrekvensen på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
===Andre PIC-typers PWM===&lt;br /&gt;
Der er ikke angivet hvordan koden skrives til andre PIC-typer, men princippet er nogenlunde det samme. Først skal man lave indstillingerne der angiver hvilke output der skal lave PWM, og så skal man sætte PIC&#039;en op så der er noget der angiver periodetiden, og noget der angiver hvor stor en del af periodetiden der skal være højt signal.&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{logik-begreber}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog]]&lt;br /&gt;
[[Kategori:Digital]]&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5017</id>
		<title>MOSFET transistor</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5017"/>
		<updated>2022-11-22T20:02:36Z</updated>

		<summary type="html">&lt;p&gt;Hnl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fil:MOSFET_TO220.png|210px|thumb|right]]&lt;br /&gt;
Når man vil forbinde sit Arduinoboard til ”omverdenen”, oplever man af og til, at Arduinoboardet ikke kan levere nok strøm til den komponent man vil tilkoble, eller der skal bruges en højere spænding end de 5 V som Arduinoboardet arbejder med. Hvad gør man så? Jo, så skal man have fat i en transistor…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I specifikationerne over Arduinoboardet kan man læse, at man højest kan trække 20 mA fra et portben på en Arduino&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt;. Det er den strømstyrke man normalt anvender til at få en lysdiode til at lyse. Men hvis man har behov for at trække en større strøm, kan man anvende en transistor, der fungerer som en ”omskifter” eller ”kontakt”, og som man kan &amp;lt;i&amp;gt;tænde&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;slukke&amp;lt;/i&amp;gt; via et portben på Arduinoen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan også komme ud for, at man skal kunne tænde og slukke for en komponent der arbejder på 12 V, og ikke de 5 V som Arduinoboardet gør. Det kan for eksempel være en DC motor eller en pumpe. Disse komponenter vil oftest også trække større strøm end de 20 mA et portben kan levere. Løsningen er igen en transistor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der findes flere slags transistorer; Der er den type der kaldes for ”småsignalstransistore”, som virker som strømforstærkere, men kun kan holde til strømme omkring de 100 mA. Disse transistortyper er beskrevet under [[Transistor]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En anden slags transistor er en MOSFET transistor; Den virker som en tænd og sluk kontakt, hvor man ved en lav spænding (og uendelig lille strømstyrke), kan styre en stor strøm på adskillelige ampere ved store spændinger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kort fortalt, så har MOSFET transistoren 3 ben: &amp;lt;i&amp;gt;Gate&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Drain&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;Source&amp;lt;/i&amp;gt;. Når spændingen på &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; overstiger ca. 3 V (i forhold til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;), så tænder transistoren, og strøm kan løbe fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;. Man kan se en MOSFET transistor som en styrbar kontakt, der kan styres med en spænding. Lidt som et relæ, men uden alt det mekaniske.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en [[#N-kanals MOSFET|N-kanals MOSFET transistor]] af typen FQP30N06. &lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_eldiagram.png|250px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at strømmen skal kunne løbe gennem MOSFET transistoren, skal ”Gaten” åbnes. Det gøres ved at have en spændingsforskel mellem Gate og Source der er afhængig af MOSFET modellen. Størrelsen af Gate-Source spændingen (&amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt;) styrer hvor stor en strøm der kan løbe gennem transistoren. Man kan finde en graf over sammenhængen mellem &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;I_{DS}&amp;lt;/math&amp;gt; i databladet for den MOSFET transistor man ønsker at benytte.&lt;br /&gt;
&lt;br /&gt;
I databladet for en FQP30N06L N-kanals MOSFET ser vi grafen for &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; som vist nedenfor. Her ses det, at der kun skal en spændingsforskel på 3 V mellem Gate og Source for at kunne trække 10 A gennem MOSFET’en. Ud fra databladet kan det endvidere læses, at &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; maksimalt må komme op på 20 V.&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
En anden N-kanals MOSFET er IRF520, og sammenligner man dennes &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; i databladet, ses det, at hvis man ønsker man at kunne trække helt op til 10 A gennem denne, skal der være en spændingsforskel mellem Gate og Source på (mindst) 7,5 V. Det skal man tænke over, når man vælger &amp;lt;i&amp;gt;hvad&amp;lt;/i&amp;gt; der skal tænde for MOSFET transistoren (f.eks. et Arduinoboard der leverer en spænding på 5 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_IRF520-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==N-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en N-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_N-ch.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]        [[Fil:MOSFET_N-ch_current.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en N-kanals MOSFET skal løbe fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==P-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en P-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_P-ch.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]        [[Fil:MOSFET_P-ch_current.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for P-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en P-kanals MOSFET skal løbe fra Source til Drain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MOSFET styrer DC motor==&lt;br /&gt;
[[Fil:MOSFET_DC-motor.png|300px|thumb|right]]&lt;br /&gt;
På el-diagrammet til højre er der anvendt en MOSFET transistor til at tænde og slukke for en DC motor. Der er anvendt en FQP30N06L [[N-kanals MOSFET|N-kanals MOSFET transistor]]. Når spændingen ved &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; (G) er mellem 3-5 V vil MOSFET transistoren åbne, og der løber strøm fra til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; (D) til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; (S), og dermed kan der løbe en strøm gennem DC motoren. Herved roterer DC motorens aksel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dioden, D1, der på el-diagrammet ses parallelforbundet med motoren, er en sikkerhedsdiode. Motoren indeholder jo en spole, og en spole bliver til en elektromagnet når man sender strøm gennem den. Når man afbryder strømmen til spolen, vil spolen selv forsøge at opretholde sit magnetfelt, og det sker ved at spolen danner en stor spænding med modsat polaritet end da strømmen løb gennem spolen. Denne spænding kan blive meget stor (afhænger af spolen og strømstyrken anvendt), men kortvarigt flere 100 V! For at forhindre dette, sættes dioden på, så når den store spænding opstår, vil strømmen løbe fra – på motoren gennem dioden D1 og til + på motoren, og dermed aflade sig selv. Alternativt ville strømmen løbe ned mod transistoren Q1, og den høje spænding ville kunne ødelægge denne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Komponenter]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Hardware Teknologi]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5016</id>
		<title>MOSFET transistor</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=MOSFET_transistor&amp;diff=5016"/>
		<updated>2022-11-22T20:01:24Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Info om MOSFET&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fil:MOSFET_TO220.png|210px|thumb|right]]&lt;br /&gt;
Når man vil forbinde sit Arduinoboard til ”omverdenen”, oplever man af og til, at Arduinoboardet ikke kan levere nok strøm til den komponent man vil tilkoble, eller der skal bruges en højere spænding end de 5 V som Arduinoboardet arbejder med. Hvad gør man så? Jo, så skal man have fat i en transistor…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I specifikationerne over Arduinoboardet kan man læse, at man højest kan trække 20 mA fra et portben på en Arduino&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt;. Det er den strømstyrke man normalt anvender til at få en lysdiode til at lyse. Men hvis man har behov for at trække en større strøm, kan man anvende en transistor, der fungerer som en ”omskifter” eller ”kontakt”, og som man kan &amp;lt;i&amp;gt;tænde&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;slukke&amp;lt;/i&amp;gt; via et portben på Arduinoen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan også komme ud for, at man skal kunne tænde og slukke for en komponent der arbejder på 12 V, og ikke de 5 V som Arduinoboardet gør. Det kan for eksempel være en DC motor eller en pumpe. Disse komponenter vil oftest også trække større strøm end de 20 mA et portben kan levere. Løsningen er igen en transistor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der findes flere slags transistorer; Der er den type der kaldes for ”småsignalstransistore”, som virker som strømforstærkere, men kun kan holde til strømme omkring de 100 mA. Disse transistortyper er beskrevet under [[Transistor]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En anden slags transistor er en MOSFET transistor; Den virker som en tænd og sluk kontakt, hvor man ved en lav spænding (og uendelig lille strømstyrke), kan styre en stor strøm på adskillelige ampere ved store spændinger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kort fortalt, så har MOSFET transistoren 3 ben: &amp;lt;i&amp;gt;Gate&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Drain&amp;lt;/i&amp;gt; og &amp;lt;i&amp;gt;Source&amp;lt;/i&amp;gt;. Når spændingen på &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; overstiger ca. 3 V (i forhold til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;), så tænder transistoren, og strøm kan løbe fra &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;. Man kan se en MOSFET transistor som en styrbar kontakt, der kan styres med en spænding. Lidt som et relæ, men uden alt det mekaniske.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en [[#N-kanals MOSFET|N-kanals MOSFET transistor]] af typen FQP30N06. &lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_eldiagram.png|250px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at strømmen skal kunne løbe gennem MOSFET transistoren, skal ”Gaten” åbnes. Det gøres ved at have en spændingsforskel mellem Gate og Source der er afhængig af MOSFET modellen. Størrelsen af Gate-Source spændingen (&amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt;) styrer hvor stor en strøm der kan løbe gennem transistoren. Man kan finde en graf over sammenhængen mellem &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;I_{DS}&amp;lt;/math&amp;gt; i databladet for den MOSFET transistor man ønsker at benytte.&lt;br /&gt;
&lt;br /&gt;
I databladet for en FQP30N06L N-kanals MOSFET ser vi grafen for &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; som vist nedenfor. Her ses det, at der kun skal en spændingsforskel på 3 V mellem Gate og Source for at kunne trække 10 A gennem MOSFET’en. Ud fra databladet kan det endvidere læses, at &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; maksimalt må komme op på 20 V.&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for FQP30N06 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
En anden N-kanals MOSFET er IRF520, og sammenligner man dennes &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; i databladet, ses det, at hvis man ønsker man at kunne trække helt op til 10 A gennem denne, skal der være en spændingsforskel mellem Gate og Source på (mindst) 7,5 V. Det skal man tænke over, når man vælger &amp;lt;i&amp;gt;hvad&amp;lt;/i&amp;gt; der skal tænde for MOSFET transistoren (f.eks. et Arduinoboard der leverer en spænding på 5 V). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:MOSFET_IRF520-VGS-ID_graf.jpg|350px|Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Graf der viser &amp;lt;math&amp;gt;I_D&amp;lt;/math&amp;gt; som funktion af &amp;lt;math&amp;gt;V_{GS}&amp;lt;/math&amp;gt; for IRF520 N-kanals MOSFET.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==N-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en N-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_N-ch.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]        [[Fil:MOSFET_N-ch_current.jpg|150px|El-diagramsymbol for N-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for N-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en N-kanals MOSFET skal løbe fra Drain til Source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==P-kanals MOSFET==&lt;br /&gt;
Nedenfor ses el-diagramsymbolet for en P-kanals MOSFET transistor, samt visning af strømretningen gennem transistoren.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:MOSFET_P-ch.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]        [[Fil:MOSFET_P-ch_current.jpg|150px|El-diagramsymbol for P-kanals MOSFET transistor.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;El-diagramsymbol for P-kanals MOSFET transistor, samt strømpil der viser strømmens retning gennem transistoren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På diagramsymbolet ses også et diodesymbol; Det er en indbygget beskyttelsesdiode, der har samme funktion, som beskyttelsesdioden man sætter parallelt over en spole (f.eks. i et relæ). Da beskyttelsesdioden sidder i spærreretning, kan man se, at strømmen i en P-kanals MOSFET skal løbe fra Source til Drain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MOSFET styrer DC motor==&lt;br /&gt;
[[Fil:MOSFET_DC-motor.png|300px|thumb|right]]&lt;br /&gt;
På el-diagrammet til højre er der anvendt en MOSFET transistor til at tænde og slukke for en DC motor. Der er anvendt en FQP30N06L [[N-kanals MOSFET|N-kanals MOSFET transistor]]. Når spændingen ved &amp;lt;b&amp;gt;Gate&amp;lt;/b&amp;gt; (G) er mellem 3-5 V vil MOSFET transistoren åbne, og der løber strøm fra til &amp;lt;b&amp;gt;Drain&amp;lt;/b&amp;gt; (D) til &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt; (S), og dermed kan der løbe en strøm gennem DC motoren. Herved roterer DC motorens aksel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dioden, D1, der på el-diagrammet ses parallelforbundet med motoren, er en sikkerhedsdiode. Motoren indeholder jo en spole, og en spole bliver til en elektromagnet når man sender strøm gennem den. Når man afbryder strømmen til spolen, vil spolen selv forsøge at opretholde sit magnetfelt, og det sker ved at spolen danner en stor spænding med modsat polaritet end da strømmen løb gennem spolen. Denne spænding kan blive meget stor (afhænger af spolen og strømstyrken anvendt), men kortvarigt flere 100 V! For at forhindre dette, sættes dioden på, så når den store spænding opstår, vil strømmen løbe fra – på motoren gennem dioden D1 og til + på motoren, og dermed aflade sig selv. Alternativt ville strømmen løbe ned mod transistoren Q1, og den høje spænding ville kunne ødelægge denne.&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_IRF9630-VGS-ID_graf.jpg&amp;diff=5015</id>
		<title>Fil:MOSFET IRF9630-VGS-ID graf.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_IRF9630-VGS-ID_graf.jpg&amp;diff=5015"/>
		<updated>2022-11-22T19:52:54Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET IRF9630 graf for ID som funktion af VGS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET IRF9630 graf for ID som funktion af VGS&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_IRF520-VGS-ID_graf.jpg&amp;diff=5014</id>
		<title>Fil:MOSFET IRF520-VGS-ID graf.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_IRF520-VGS-ID_graf.jpg&amp;diff=5014"/>
		<updated>2022-11-22T19:52:39Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET IRF520 graf for ID som funktion af VGS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET IRF520 graf for ID som funktion af VGS&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg&amp;diff=5013</id>
		<title>Fil:MOSFET FQP30N06L-VGS-ID graf.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_FQP30N06L-VGS-ID_graf.jpg&amp;diff=5013"/>
		<updated>2022-11-22T19:52:21Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET FQP30N06 graf for ID som funktion af VGS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET FQP30N06 graf for ID som funktion af VGS&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_FQP27P06-VGS-ID_graf.jpg&amp;diff=5012</id>
		<title>Fil:MOSFET FQP27P06-VGS-ID graf.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_FQP27P06-VGS-ID_graf.jpg&amp;diff=5012"/>
		<updated>2022-11-22T19:52:01Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET FQP30N06 graf for ID som funktion af VGS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET FQP30N06 graf for ID som funktion af VGS&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch_current.jpg&amp;diff=5011</id>
		<title>Fil:MOSFET N-ch current.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch_current.jpg&amp;diff=5011"/>
		<updated>2022-11-22T19:39:22Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Hnl lagde en ny udgave af Fil:MOSFET N-ch current.jpg op&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET N-kanals el-diagramsymbol med strømretning&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch.jpg&amp;diff=5010</id>
		<title>Fil:MOSFET N-ch.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch.jpg&amp;diff=5010"/>
		<updated>2022-11-22T19:34:59Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Hnl lagde en ny udgave af Fil:MOSFET N-ch.jpg op&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET N-kanals el-diagramsymbol&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_P-ch_current.jpg&amp;diff=5009</id>
		<title>Fil:MOSFET P-ch current.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_P-ch_current.jpg&amp;diff=5009"/>
		<updated>2022-11-22T19:31:44Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET P-kanals el-diagramsymbol med strømretning&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET P-kanals el-diagramsymbol med strømretning&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch_current.jpg&amp;diff=5008</id>
		<title>Fil:MOSFET N-ch current.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch_current.jpg&amp;diff=5008"/>
		<updated>2022-11-22T19:31:29Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET N-kanals el-diagramsymbol med strømretning&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET N-kanals el-diagramsymbol med strømretning&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_P-ch.jpg&amp;diff=5007</id>
		<title>Fil:MOSFET P-ch.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_P-ch.jpg&amp;diff=5007"/>
		<updated>2022-11-22T19:31:15Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET P-kanals el-diagramsymbol&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET P-kanals el-diagramsymbol&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch.jpg&amp;diff=5006</id>
		<title>Fil:MOSFET N-ch.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_N-ch.jpg&amp;diff=5006"/>
		<updated>2022-11-22T19:31:02Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET N-kanals el-diagramsymbol&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET N-kanals el-diagramsymbol&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_DC-motor.png&amp;diff=5005</id>
		<title>Fil:MOSFET DC-motor.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_DC-motor.png&amp;diff=5005"/>
		<updated>2022-11-22T19:23:03Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET DC motor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET DC motor&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_eldiagram.png&amp;diff=5004</id>
		<title>Fil:MOSFET eldiagram.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_eldiagram.png&amp;diff=5004"/>
		<updated>2022-11-22T19:16:24Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET el-diagramsymbol&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET el-diagramsymbol&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:MOSFET_TO220.png&amp;diff=5003</id>
		<title>Fil:MOSFET TO220.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:MOSFET_TO220.png&amp;diff=5003"/>
		<updated>2022-11-22T19:09:45Z</updated>

		<summary type="html">&lt;p&gt;Hnl: MOSFET TO220&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
MOSFET TO220&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=H-bro&amp;diff=5002</id>
		<title>H-bro</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=H-bro&amp;diff=5002"/>
		<updated>2022-11-22T18:53:44Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Konstruktioner med MOSFET transistorer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[fil:h-bro-struktur.png|Strukturelt princip af en H-Bro&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/H_bridge H-Bro struktur] fra Wikipedia&amp;lt;/ref&amp;gt;|300px|right|thumb]]&lt;br /&gt;
En H-bro er en konstruktion der muliggør at man kan drive en eller anden belastning både i positiv og i negativ retning.&lt;br /&gt;
&lt;br /&gt;
Dette anvendes til en [[DC-motor]] når den skal kunne køre begge veje, og det kan anvendes til en bi-polar [[Stepmotor]], hvor man skal kunne sætte spænding på i begge retninger for at vende magnetfeltet.&lt;br /&gt;
&lt;br /&gt;
Man kan lave en H-bro konstruktion på forskellig vis, enten med diskrete komponenter eller med en færdig kreds.&lt;br /&gt;
&lt;br /&gt;
==Generel Styring af H-broen==&lt;br /&gt;
Når man konstruerer styringen til en H-Bro, så skal man tage højde for at den kan styres, så forsyningen kortslutter, hvilket er ret uheldigt og absolut ikke hensigtsmæssigt i en konstruktion.&lt;br /&gt;
&lt;br /&gt;
Hvis man betragter de 4 kontakter i H-broen, så er der 16 forskellige kombinationer af hvordan de kan tændes. Dette er skitseret i nedenstående tabel:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! S1&lt;br /&gt;
! S2&lt;br /&gt;
! S3&lt;br /&gt;
! S4&lt;br /&gt;
! &#039;&#039;&#039;Resultat&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den ene vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Motor bremses&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Motor bremses&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kortslutning af forsyning&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Det siger sig selv, at man skal undgå de sidste 7 muligheder, ad det er yderst uheldigt.&lt;br /&gt;
&lt;br /&gt;
Man kan bruge de 2 muligheder for at bremse motoren. Det forudsætter dog at kontakterne kan lede strøm i begge retninger, hvilket ikke er tilfældet med bipolare transistorer.&lt;br /&gt;
&lt;br /&gt;
===Software biblioteker til stepmotoren===&lt;br /&gt;
Som standard kan man anvende Stepper&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Reference/Stepper Arduino Stepper]&amp;lt;/ref&amp;gt; biblioteket, som er standard installeret sammen med Arduino softwaren.&lt;br /&gt;
&lt;br /&gt;
Standard biblioteket til stepmotoren har det problem, at softwaren blokerer programafvikling, mens man stepper - dette kan være ret uheldigt i forbindelse med betjening og kommunikation, eller generelt det at få flere ting til at ske &amp;quot;samtidigt&amp;quot;&amp;lt;ref&amp;gt;[http://www.htx-arduino.dk/index.php?title=Tid_og_Samtidighed_i_Software#Polling Polling princippet]&amp;lt;/ref&amp;gt; i softwaren.&lt;br /&gt;
&lt;br /&gt;
Der er udviklet et bibliotek på github&amp;lt;ref&amp;gt;[https://github.com/reven/Unistep2 Unistep2 library from GitHub]&amp;lt;/ref&amp;gt; - Unistep2.&lt;br /&gt;
&lt;br /&gt;
Her på wikien er der forklaret et [[Stepper med Accelleration|andet bibliotek til steppermotoren]], som både understøtter samtidighed og accelleration.&lt;br /&gt;
&lt;br /&gt;
==H-Bro konstruktioner==&lt;br /&gt;
Man kan konstruere en H-Bro på forskellige måder, alt efter hvad man ønsker med konstruktionen.&lt;br /&gt;
&lt;br /&gt;
===Relæ-konstruktion===&lt;br /&gt;
Med relæer er det ganske simpelt, der kan man anvende 2 stk skifterelæer, hvor de kobles på følgende måde:&lt;br /&gt;
&lt;br /&gt;
[[fil:h-bro-relay.png|H-Bro styring med 2 relæer|300px]]&amp;lt;br /&amp;gt;&#039;&#039;H-Bro styring med 2 relæer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fordelen ved denne styring er at den er simpel at realisere, og at den ikke giver mulighed for kortslutning af forsyningen.&lt;br /&gt;
&lt;br /&gt;
Hvis et af relæerne er tændt, så vil motoren køre, og hvis begge eller ingen af dem er tændt, så vil motoren blive kortsluttet. Denne konstruktion er altså god, hvis man gerne vil kunne bremse motoren.&lt;br /&gt;
&lt;br /&gt;
Konstruktionen kan også laves med ét relæ der indeholder begge skiftesæt, så vil man kun kunne skifte retning på motoren, og altså ikke slukke den - ønsker man at kunne slukke motoren, så kan man sætte et ekstra relæ ind der afbryder forsyningen. På denne måde vil man kunne lave det sådan at motoren går i friløb når den slukkes.&lt;br /&gt;
&lt;br /&gt;
===Konstruktion med Bipolare transistorer===&lt;br /&gt;
Teknikken i en H-Bro med bipolare transistorer et at anvende to NPN-transistorer i bunden mod stel og to PNP-transistorer i toppen op mod forsyningen. For at disse transistorer skal kunne håndtere strømmen, så vil man normalt anvende krafttransistorer til formålet.&lt;br /&gt;
&lt;br /&gt;
Den grundlæggende del af konstruktionen kunne være som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-bro-bipolare.png|Den grundlæggende opsætning af bipolare transistorer til en H-Bro|400px]]&amp;lt;br /&amp;gt;&#039;&#039;Den grundlæggende opsætning af bipolare transistorer til en H-Bro&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Her kommer den ulempe, at specielt PNP-transistorerne bliver lidt svære at styre, hvis konstruktionen skal fungere med mere end 5V forsyning. Man skal slukke PNP-transistorerne med et højt signal, men ikke bare 5V - signalet skal gerne op på forsyningen til H-broen.&lt;br /&gt;
&lt;br /&gt;
For at løse dette problem, så anvender man gerne flere transistorer.&lt;br /&gt;
&lt;br /&gt;
Et bud på en konstruktion kunne være:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-bro.gif|Realisering med mange modstande, for at sikre at transistorerne slukker]]&amp;lt;br /&amp;gt;&#039;&#039;Realisering med mange modstande, for at sikre at transistorerne slukker&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For at reducere konstruktionen lidt kan den laves så nogle transistorer får lidt dobbelt funktion.&lt;br /&gt;
&lt;br /&gt;
Ud over dette er der bygget ind i konstruktionen at begge diagonale transistorer tændes af en indgang, og endelig er der realiseret en beskyttelse, så man ikke kan tænde begge sæt transistorer, og dermed kan man ikke få broen til at kortslutte forsyningen. Kredsløbet kan se ud som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-diagram.png|H-Bro diagram med indbygget beskyttelse|600px]]&amp;lt;br /&amp;gt;&#039;&#039;H-Bro diagram med indbygget beskyttelse&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ud fra de to indgange reagerer styringen som følger:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! X1-1&lt;br /&gt;
! X1-2&lt;br /&gt;
! &#039;&#039;&#039;Resultat&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den ene vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Motor roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Motor i friløb (broen slukket)&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Beskyttelse - roterer den anden vej&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Konstruktionen er vist med anslåede værdier, men skal dimensioneres ud fra forsyningsspænding og hvilken motor der skal drives.&lt;br /&gt;
&lt;br /&gt;
* Motoren vælges ud fra hvor meget den skal trække, samt de mekaniske egenskaber. Den ønskede driftspænding (her angivet som 9V) vælges og der findes en startstrøm for motoren.&lt;br /&gt;
* Der vælges to krafttransistorer i NPN (Q2 og Q4) og PNP (Q1 og Q3), der kan holde til strømmen og spændingen der kræves af motoren (dimensioner efter startstrømmen).&lt;br /&gt;
* Der vælges dioder (D1 til D4) der kan holde til samme strøm som krafttransistorerne.&lt;br /&gt;
* Basisstrømmen for Q1 og Q2 findes ved startstrømmen, ud fra transistorernes H&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt;.&lt;br /&gt;
* De to modstande R1 og R2 dimensioneres ud fra basisstrømmen på den transistor der skal have mest. Spændingen er forsyningen minus de spændingsfald der er over BE-strækningerne på transistorerne og CE på hhv. Q5 og Q6.&lt;br /&gt;
* Der vælges en transistortype til Q5 og Q6 der kan holde til den basisstrøm Q1 og Q2 trækker. Ud fra denne transistors H&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt; beregnes så basisstrømmen til Q6.&lt;br /&gt;
* Modstanden R3 beregnes ud fra denne strøm, samt styrespændingen fratrukket de to BE spændingsfald på Q6 og Q4.&lt;br /&gt;
* Der vælges en transistor Q7 som kan trække strømmen fra R3 til stel - sikkert bare samme type som Q5 og Q6.&lt;br /&gt;
* R5 dimensioneres ud fra spændingen over den og basisstrømmen der kræves til Q7.&lt;br /&gt;
* R4 dimensioneres ud fra basisstrømmen i Q5 og strømmen i R5 sammen med spændingen over modstanden.&lt;br /&gt;
* Generelt for alle modstande, så rundes der ned på deres størrelse så man sikrer at transistorerne tænder helt.&lt;br /&gt;
&lt;br /&gt;
Med de anslåede værdier er der vist en simulering herunder. De grønne kurver er spændinger mens de gule kurver er strømme.&lt;br /&gt;
&lt;br /&gt;
Simuleringen kan hentes [http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+50+5+43%0Av+288+384+288+112+0+0+40+5+0+0+0.5%0At+16+336+48+336+0+1+-4.9129327629457595+-0.07733504049299231+100%0At+48+368+80+368+0+1+-4.298583681882915+0.07733504119297265+20%0At+208+368+176+368+0+1+0.565549206082018+0.7007660085523107+20%0At+240+336+208+336+0+1+0.5620930011423408+0.6267605299473932+100%0At+272+368+240+368+0+1+-1.327526536699629+1.8000750215199826e-9+100%0At+48+144+80+144+0+-1+-0.07656691793376158+-0.700648194857874+20%0At+208+144+176+144+0+-1+4.777715961225545+-0.08706723630416224+20%0Ar+96+176+160+176+0+30%0Ar+96+208+160+208+0+500%0Ar+96+240+160+240+0+500%0Ar+0+336+-64+336+0+7000%0Ar+-64+288+0+288+0+10000%0Ar+96+416+160+416+0+22000%0Ag+208+384+208+400+0%0Aw+240+384+208+384+0%0Aw+208+384+176+384+0%0Aw+176+384+80+384+0%0Aw+48+368+48+352+0%0Aw+80+352+80+176+0%0Aw+96+176+80+176+0%0Aw+80+160+80+176+0%0Aw+208+368+208+352+0%0Aw+176+352+176+176+0%0Aw+160+176+176+176+0%0Aw+176+160+176+176+0%0Aw+160+240+208+240+0%0Aw+208+240+208+320+0%0Aw+240+336+240+352+0%0Aw+48+320+48+208+0%0Aw+48+208+96+208+0%0Aw+48+144+32+144+0%0Aw+32+144+32+240+0%0Aw+32+240+96+240+0%0Aw+240+384+288+384+0%0Aw+288+112+176+112+0%0Aw+176+112+176+128+0%0Aw+176+112+80+112+0%0Aw+80+128+80+112+0%0Aw+160+208+208+208+0%0Aw+208+144+208+208+0%0Aw+16+336+0+336+0%0Aw+0+288+240+288+0%0Aw+240+288+240+336+0%0Aw+272+368+272+416+0%0Aw+272+416+160+416+0%0Aw+96+416+16+416+0%0Aw+16+336+16+416+0%0Av+-80+384+-80+336+0+2+8+2.5+2.5+3.141592653589793+0.5%0Av+-160+384+-160+288+0+2+4+2.5+2.5+3.141592653589793+0.5%0Aw+-160+288+-64+288+2%0Aw+-80+336+-64+336+2%0Aw+80+384+-80+384+0%0Aw+-80+384+-160+384+0%0Ao+50+64+0+4103+5+0.00078125+0+2+50+3%0Ao+51+64+0+4103+5+0.00078125+0+2+51+3%0Ao+8+64+0+4103+5+0.2+0+2+8+3%0A på dette link].&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-simulering.png|500px|Simulering af H-Broen, lavet med anslåede værdier]]&amp;lt;br /&amp;gt;&#039;&#039;Simulering af H-Broen, lavet med anslåede værdier&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
De 3 viste signaler er de to input-signaler og spændingen over den modstand der skal symbolisere motoren.&lt;br /&gt;
&lt;br /&gt;
Som det kan ses på simuleringen så gennemløbes de 4 faser korrekt:&lt;br /&gt;
# Begge input er slukkede og som forventet løber der ingen strøm i motoren&lt;br /&gt;
# Input 2 er tændt og som forventet løber der en strøm i motoren (spændingen kan måles til ca. 4,25V)&lt;br /&gt;
# Input 1 er tændt (input 2 slukket) og som forventet løber strømmen den anden vej i motoren (en spænding på ca. 4,24V)&lt;br /&gt;
# Begge input er slukket og her træder sikringen ind, der løber lidt større strøm fra input 1 fordi basis på Q6 trækkes lav og der løber strøm i motoren som ved input 2 tændt (igen en spænding på ca. 4,25V)&lt;br /&gt;
&lt;br /&gt;
For at kontrollere at der ikke i skiftet kan ske en kortslutning af forsyningen, så ændres kredsløbet, så der er konstant 5V på input 1 og en sweepet spænding på input 2, der løber fra 0V til 5V og tilbage igen.&lt;br /&gt;
&lt;br /&gt;
Denne simulering kan hentes [http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+50+5+43%0Av+288+384+288+112+0+0+40+5+0+0+0.5%0At+16+336+48+336+0+1+-4.2093565289498205+0.21288760056943956+100%0At+48+368+80+368+0+1+-4.085914716425955+0.2890009007586427+20%0At+208+368+176+368+0+1+0.5628733689810032+0.7007326668699203+20%0At+240+336+208+336+0+1+0.5587407117147083+0.626500832999997+100%0At+272+368+240+368+0+1+-0.8335524578385181+0.49368104203139934+100%0At+48+144+80+144+0+-1+-0.07554231283368207+-0.7006266956490848+20%0At+208+144+176+144+0+-1+4.573385979493806+-0.2887547226172771+20%0Ar+96+176+160+176+0+30%0Ar+96+208+160+208+0+500%0Ar+96+240+160+240+0+500%0Ar+0+336+-64+336+0+7000%0Ar+-64+288+0+288+0+10000%0Ar+96+416+160+416+0+22000%0Ag+208+384+208+400+0%0Aw+240+384+208+384+0%0Aw+208+384+176+384+0%0Aw+176+384+80+384+0%0Aw+48+368+48+352+0%0Aw+80+352+80+176+0%0Aw+96+176+80+176+0%0Aw+80+160+80+176+0%0Aw+208+368+208+352+0%0Aw+176+352+176+176+0%0Aw+160+176+176+176+0%0Aw+176+160+176+176+0%0Aw+160+240+208+240+0%0Aw+208+240+208+320+0%0Aw+240+336+240+352+0%0Aw+48+320+48+208+0%0Aw+48+208+96+208+0%0Aw+48+144+32+144+0%0Aw+32+144+32+240+0%0Aw+32+240+96+240+0%0Aw+240+384+288+384+0%0Aw+288+112+176+112+0%0Aw+176+112+176+128+0%0Aw+176+112+80+112+0%0Aw+80+128+80+112+0%0Aw+160+208+208+208+0%0Aw+208+144+208+208+0%0Aw+16+336+0+336+0%0Aw+0+288+240+288+0%0Aw+240+288+240+336+0%0Aw+272+368+272+416+0%0Aw+272+416+160+416+0%0Aw+96+416+16+416+0%0Aw+16+336+16+416+0%0Aw+-160+288+-64+288+2%0Aw+-80+336+-64+336+2%0Aw+80+384+-80+384+0%0Aw+-80+384+-160+384+0%0Av+-160+384+-160+288+0+0+40+5+0+0+0.5%0Av+-80+384+-80+336+0+3+5+2.5+2.5+0+0.5%0Ao+48+64+0+4103+5+0.00078125+0+2+48+3%0Ao+49+64+0+4103+5+0.00078125+0+2+49+3%0Ao+8+64+0+4103+5+0.2+0+2+8+3%0A på dette link]&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-sweep.png|500px|Simulering af H-Broen, med sweep på det ene input]]&amp;lt;br /&amp;gt;&#039;&#039;Simulering af H-Broen, med sweep på det ene input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Som det kan ses på simuleringen, så opfører kredsløbet sig meget fornuftigt.&lt;br /&gt;
&lt;br /&gt;
Med lav inputspænding på input 2 og 5V på input 1, så er motoren tændt i den ene retning.&lt;br /&gt;
&lt;br /&gt;
Når spændingen vokser på input 2 sker der først det at motoren slukkes (når Q7 tændes) og efterhånden som Q5 og Q3 tændes, så tændes motoren i den anden retning, altså ingen tegn på kortslutning.&lt;br /&gt;
&lt;br /&gt;
===Konstruktioner med MOSFET transistorer===&lt;br /&gt;
Umiddelbart er [[MOSFET transistor|MOSFET transistorer]] nemme at styre og de har gode egenskaber til at tænde forbindelsen og dermed fungere enkelt som et relæ.&lt;br /&gt;
&lt;br /&gt;
Vi har bare ikke så mange typer på Holstebro HTX, så derfor vises kun et eksempel med denne type.&lt;br /&gt;
&lt;br /&gt;
Den tekniske årsag til at [[MOSFET transistor|MOSFET]] ikke er så nemme at arbejde med til en H-Bro er nemlig det at der kræves noget der kan trække op mod forsyningen (som en PNP-transistor). Her er den tilsvarende en [[P-kanals MOSFET|P-channel MOSFET]], men de har bare den ulempe, at de ikke er så gode til at tænde for strømmen som en [[N-kanals MOSFET|N-channel]]. (de har større indre modstand). Det er der dog efterhånden udviklet, så det er mere realistisk at anvende den type.&lt;br /&gt;
&lt;br /&gt;
Der så en anden ulempe, som man må tage højde for, nemlig det at der er en lille forsinkelse i kredsløbet, hvilket gør at man er nødt til at lægge en lille forsinkelse ind, hvis man vil bruge et signal til at styre H-Broen med, i stedet for selv at sikre i softwaren at der ikke sker kortslutning ved at slukke for det ene sæt inden man tænder det andet. Det giver en enklere elektrisk styring, så man kunne lave H-broen som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Simpel.png|600px|Simpel H-Bro styret af 2 signaler, hvor man selv har ansvaret for at der ikke korsluttes forsyningen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Simpel H-Bro styret af 2 signaler, hvor man selv har ansvaret for at der ikke korsluttes forsyningen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Med 2 sæt af denne H-Bro vil det være enkelt at kunne styre en stepmotor, og det vil gøre det simpelt at komme til at køre half-steps, hvilket automatisk vil lave den sikring at man slukker den ene retning inden den anden tændes, da man lige netop arbejde med at slukke den ene vikling for at lave half-step.&lt;br /&gt;
&lt;br /&gt;
Simuleringen er vist med to generatorer faseforskudt, og den viser at opstillingen fungerer som ønsket. Diagram med simulering kan findes på [http://www.falstad.com/circuit/circuitjs.html?cct=$+0+0.000005+5.023272298708815+50+5+50%0AR+128+384+96+384+0+2+40+2.5+2.5+0+0.75%0Aw+128+448+144+448+0%0Af+240+304+288+304+1+1.5+0.02%0Af+336+304+384+304+1+1.5+0.02%0Af+240+416+288+416+0+1.5+0.02%0Af+336+416+384+416+0+1.5+0.02%0Ag+384+448+384+464+0%0Av+432+432+432+336+0+0+40+5+0+0+0.5%0Ar+304+368+368+368+0+80%0Aw+160+336+336+336+0%0Aw+336+336+336+304+0%0Aw+336+384+336+416+0%0Aw+144+448+144+368+0%0Aw+288+432+288+448+0%0Aw+288+448+384+448+0%0Aw+384+432+384+448+0%0Aw+384+400+384+368+0%0Aw+368+368+384+368+0%0Aw+384+320+384+368+0%0Aw+288+400+288+368+0%0Aw+288+368+304+368+0%0Aw+288+320+288+368+0%0Aw+288+288+288+272+0%0Aw+288+272+384+272+0%0Aw+384+272+384+288+0%0Aw+384+272+432+272+0%0Aw+432+432+432+448+0%0Aw+384+448+432+448+0%0AI+160+416+240+416+0+0.5+5%0AI+176+368+256+368+0+0.5+5%0Aw+144+304+240+304+0%0Aw+160+336+160+384+0%0Aw+160+384+128+384+0%0Aw+144+368+144+304+0%0Aw+256+384+336+384+0%0Aw+160+384+160+416+0%0Aw+144+368+176+368+0%0Aw+256+368+256+384+0%0Aw+432+336+432+272+0%0Ax+439+373+468+376+4+24+5V%0AR+128+448+96+448+0+2+40+2.5+2.5+3.141592653589793+0.75%0Ao+0+8+0+4103+5+0.00009765625+0+2+0+3%0Ao+8+8+0+4103+5+0.05+0+2+8+3%0A dette link til falsted.com]&lt;br /&gt;
====Styring med kun fremad og bak====&lt;br /&gt;
Hvis man vil styre en motor/vikling, med et signal, så er der her en kredsløbsmulighed, hvor der indføres en forsinkelse ved hjælp af et RC-led og noget logik som vist her:&lt;br /&gt;
&lt;br /&gt;
[[fil:FET-H-Bro.png|800px|H-Bro til styring med et signal pr. motor/vikling med sikring af skiftetidspunktet - vist med simulering]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;H-Bro til styring med et signal pr. motor/vikling med sikring af skiftetidspunktet - vist med simulering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Diagram med simulering kan ses og eksperimenteres med på [http://www.falstad.com/circuit/circuitjs.html?cct=$+0+0.000005+5.023272298708815+50+5+50%0A151+256+288+336+288+0+2+0+12%0A151+256+352+336+352+0+2+12+12%0AR+-160+288+-192+288+0+2+40+2.5+2.5+0+0.5%0Aw+0+336+0+368+0%0Aw+0+368+256+368+0%0Aw+160+208+176+208+0%0Ar+0+208+0+272+0+100000%0Aw+0+208+96+208+0%0Ac+96+208+96+272+0+1e-8+2.6179796029120896%0Ag+96+272+96+288+0%0Aw+240+208+240+336+0%0Aw+256+336+240+336+0%0Aw+64+272+64+304+0%0Aw+64+304+256+304+0%0Aw+256+272+176+272+0%0Aw+176+208+176+272+0%0Aw+336+352+352+352+0%0Af+448+208+496+208+1+1.5+0.02%0Af+544+208+592+208+1+1.5+0.02%0Af+448+320+496+320+0+1.5+0.02%0Af+544+320+592+320+0+1.5+0.02%0Ag+592+352+592+368+0%0Av+640+336+640+240+0+0+40+12+0+0+0.5%0Ar+512+272+576+272+0+80%0Aw+368+240+544+240+0%0Aw+544+240+544+208+0%0Aw+544+288+544+320+0%0Aw+352+352+352+272+0%0Aw+496+336+496+352+0%0Aw+496+352+592+352+0%0Aw+592+336+592+352+0%0Aw+592+304+592+272+0%0Aw+576+272+592+272+0%0Aw+592+224+592+272+0%0Aw+496+304+496+272+0%0Aw+496+272+512+272+0%0Aw+496+224+496+272+0%0Aw+496+192+496+176+0%0Aw+496+176+592+176+0%0Aw+592+176+592+192+0%0Aw+592+176+640+176+0%0Aw+640+336+640+352+0%0Aw+592+352+640+352+0%0Aw+0+272+0+336+0%0Ar+-160+288+-96+288+0+100000%0At+-96+288+-64+288+0+1+-11.999999986680002+1.119999995424623e-8+100%0Ag+-64+304+-64+336+0%0Ar+-64+272+-64+208+0+10000%0Aw+496+176+-64+176+0%0Aw+-64+176+-64+208+0%0AI+368+320+448+320+0+0.5+12%0AI+384+272+464+272+0+0.5+12%0AI+-64+272+0+272+0+0.5+12%0AI+0+272+64+272+0+0.5+12%0AI+96+208+160+208+0+0.5+12%0AI+176+208+240+208+0+0.5+12%0Aw+352+208+448+208+0%0Aw+368+240+368+288+0%0Aw+368+288+336+288+0%0Aw+352+272+352+208+0%0Aw+464+288+544+288+0%0Aw+368+288+368+320+0%0Aw+352+272+384+272+0%0Aw+464+272+464+288+0%0Aw+640+240+640+176+0%0Ax+647+277+689+280+4+24+12V%0Ao+2+8+0+4103+5+0.00009765625+0+2+2+3%0Ao+23+8+0+4103+20+0.2+0+2+23+3%0A dette link til falsted.com]&lt;br /&gt;
&lt;br /&gt;
Signalet kommer fra firkantgeneratoren, og er ment som et 3,3V eller et 5V signal fra en mikrocontroller som Arduino.&lt;br /&gt;
&lt;br /&gt;
Den første transistor er en almindelig lille NPN som BC547, der sidder der for at konvertere op på en højere spænding.&lt;br /&gt;
&lt;br /&gt;
Inverteren efter er for at sikre at signalet er pænt firkantet.&lt;br /&gt;
&lt;br /&gt;
RC-leddet med 100k og 10nF er det der laver forsinkelsen til at transistorerne kan nå at slukke, inden de andre tænder, samt for at sikre at forsinkelser i de anvendte gates ikke har samme effekt. Tiden her er sat meget høj, for at det kan slå igennem i simuleringen. Hvis det skal anvendes til en stepmotor der arbejder hurtigt, så vil denne forsinkelse ødelægge signalerne, og måske endda have den modsatte virkning, så det anbefales kraftigt at forsinkelsen tilpasses den anvendelse der er tiltænkt.&lt;br /&gt;
&lt;br /&gt;
De resterende invertere og de to NAND-gates er logikken der etablerer signalerne med forsinkelserne lavet af RC-leddet. Disse gates forsynes med 12V (derfor skal det nok være almindelige C-MOS kredse fra fx. 40-serien, som fx 4069 og 4011).&lt;br /&gt;
&lt;br /&gt;
De 4 MOSFET transistorer er blot til simulering. Der skal vælges nogen passende typer som fx IRF530 som N-channel og IRF9540 som P-channel. Simuleringen giver blot en indikation om at det virker. Kredsløbet skal tilpasses de rigtige MOSFET og de gate-typer man vælger at anvende.&lt;br /&gt;
&lt;br /&gt;
Ideen med at anvende en højere spænding er at man kan drive mere med den høje spænding, men også at de foreslåede MOSFET fungerer bedre når de kommer op på min. 10V GS-spænding, da de tænder mere effektivt til høje strømme - igen er det overvejelser man skal gøre sig til den enkelte anvendelse.&lt;br /&gt;
&lt;br /&gt;
Modstanden på 80 ohm er blot en simulering af en motor/vikling eller hvad man har tænkt sig at drive.&lt;br /&gt;
&lt;br /&gt;
I opstillingen skal der desuden tilføjes 4 klamping-dioder, hvis man skal arbejde med en induktiv belastning.&lt;br /&gt;
&lt;br /&gt;
====Styring med mulighed for at slukke viklingen====&lt;br /&gt;
Hvis ens styringsbehov ikke kun er frem og tilbage, som det kan være ved en stepmotor, men at man også skal have muligheden for at kunne slukke for viklingen, så skal der indføres et ekstra signal til at slukke, samt logik til at slukke alle MOSFET.&lt;br /&gt;
&lt;br /&gt;
For at avende de samme gates er der lavet følgende opstilling:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Enable.png|800px|Styring af H-broen med muligheden for at slukke for belastningen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Styring af H-broen med muligheden for at slukke for belastningen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der skal et højt signal ind på den ekstra transistor (igen bare 3,3V eller 5V signal) for at viklingen tændes, og så vender opstillingen strømmen i belastningen med den nødvendige pause.&lt;br /&gt;
&lt;br /&gt;
Det skal bemærkes at alle simuleringer er lavet med ret lav hastighed, og at det kun skal illustrere principperne i logikken og det at tænde MOSFET&#039;erne forskudt. Årsagen er at simuleringen ikke tager højde for de praktiske forhold i komponenterne (kapaciteter, udgangsstrømme osv.)&lt;br /&gt;
&lt;br /&gt;
====Praktisk test af kredsløbet====&lt;br /&gt;
Som det kan ses i diagrammet herunder er der ændret i komponentstørrelserne, og der er sat navne på MOSFET&#039;erne samt placeret klampingdioder, så der kan drives en induktiv belastning:&lt;br /&gt;
&lt;br /&gt;
[[fil:H-Bro-FET-Test.png|1000px|Diagram med praktiske størrelser til normal brug af H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Diagram med praktiske størrelser til normal brug af H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Forsinkelsen er dimensioneret til ca. 2us, da både gates og MOSFET har delay og turnoff-tider på 50-100ns, så for en sikkerheds skyld sættes tiden 20 gange så stor.&lt;br /&gt;
&lt;br /&gt;
Ved testen viste målinger at det ikke bare er for lidt ekstra sikkerhed at der skal 2us til. Den værste faktor er at drive kapaciteten i gaten på MOSFET&#039;erne, som det kommenteres under målingerne.&lt;br /&gt;
&lt;br /&gt;
En anden erfaring der kom ved målingerne er at transistoren BC547&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/BC547.pdf BC547 Småsignaltransistor] Datablad&amp;lt;/ref&amp;gt; skal drives ret hårdt for at kunne følge med til skiftetiderne.&lt;br /&gt;
&lt;br /&gt;
Der er anvendt IRF530&amp;lt;ref name=&amp;quot;irf530&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/IRF530.pdf IRF530 N-Channel MOSFET] Datablad&amp;lt;/ref&amp;gt; som N-channel og IRF9540&amp;lt;ref name=&amp;quot;irf9540&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/IRF9540.pdf IRF9540 P-Channel MOSFET] Datablad&amp;lt;/ref&amp;gt; som P-channel. Med netop disse to MOSFET, så er klampingdioderne faktisk overflødige, da begge MOSFET har den indbygget. De er beholdt i diagrammet, for at gøre opmærksom på at de er vigtige.&lt;br /&gt;
&lt;br /&gt;
Til de logiske komponenter anvendes standard CMOS kredse fra 4000-serien, da de kan forsynes med op til 15V, og derfor har et bredt anvendelsesområde. Der er anvendt CD4069&amp;lt;ref name=&amp;quot;CD4069&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/CD4069.pdf CD4069 CMOS Inverter] Datablad&amp;lt;/ref&amp;gt; som inverter og CD4011&amp;lt;ref name=&amp;quot;CD4011&amp;quot;&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/CD4011.pdf CD4011 CMOS NAND-gate] Datablad&amp;lt;/ref&amp;gt; som [[NAND-gate]].&lt;br /&gt;
&lt;br /&gt;
Belastningen af H-Broen er lavet med 4 stk 1,2 ohm 10W, så den samlede belastning ligger omkring 5 ohm.&lt;br /&gt;
&lt;br /&gt;
Over forsyningen er der placeret to kondensatorer, en 4700uF og en 100nF. De skal placeres tæt på MOSFET&#039;erne, da funktionen er at levere strøm hurtigt. Grunden til at anvende to forskellige typer er at den store har kapaciteten til at lever meget strøm, men er ikke god til at gøre det meget hurtigt, den lille har det omvendt.&lt;br /&gt;
&lt;br /&gt;
Målingerne herunder er alle foretaget med et firkant-signal på 50 kHz, og hvor ikke andet er bemærket er forsyningen ca. 12 V (der er ret meget tab i tilledninger og fumlebræt på grund af store strømme). Da oscilloscopet kun har 2 kanaler er en del billeder klippet sammen i [[Photoshop]] for at tydeliggøre sammenhængene.&lt;br /&gt;
&lt;br /&gt;
Første måling herunder er en visning af forholdene omkring transistoren og formning af signalerne:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-trans.png|600px|Målinger på input-transistoren Q1 i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på input-transistoren Q1 i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den nederste blå input-kurve er spændingen der kommer ind fra tonegeneratoren, som det ses er spændingen ikke helt oppe på 5V, det skyldes at tonegeneratoren har 600 ohm i udgangen, og at de 3,3 k ohm belaster spændingen ned omkring 4V. Dette har ikke væsentlig betydning.&lt;br /&gt;
&lt;br /&gt;
Den øverste røde kurve er målt på collector af Q1 ved R2, og som forventet inverteres signalet og får en amplitude på ca. 12V. En lidt uventet ting er at der kommer en forsinkelse på ca. 2us når signalet går højt. Denne forsinkelse skyldes at transistorens kapacitet på BE skal aflades gennem de 3,3k ohm, og det tager ca den tid, hvilket forsinker transistoren i at slukke. Det får ikke den store betydning i resten af kredsløbet, andet end at der arbejdes med tider på 8us og 12us i stedet for symmetrisk 10us og 10us. Havde vi målt på 500 kHz, så ville det have ødelagt signalet totalt.&lt;br /&gt;
&lt;br /&gt;
Den næste røde kurve er efter inverteringen af collector-signalet, og det ser ud helt som forventet - rent og firkantet uden synlige forsinkelser og i den forventede fase. Dette signal bruges som reference for resten af målingerne.&lt;br /&gt;
&lt;br /&gt;
En ting der er værd at bemærke er at de høje 12V signaler har nogle udsving - de stammer fra tidspunkter hvor MOSFET&#039;erne tænder og slukker, og dermed ændrer belastning af forsyningen, og da opstillingen er lavet på fumlebræt og der er ledninger hen til fumlebrættet, så vil der uvægerligt være spændingsfald på disse ledninger. Det er stabiliseret en del med kondensatorer over forsyningen, men det slår stadig igennem, som det kan ses på alle målingerne. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anden sæt målinger viser indførslen af forsinkelsen:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-delay.png|600px|Målinger på forsinkelsen i H-Broen etableret med R3 og C1]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på forsinkelsen i H-Broen etableret med R3 og C1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den nederste blå kurve er den der anvendes som reference gennem de følgende målinger. Det er udgangen af IC1A, der tidsmæssigt sætter referencen for hvad der sker videre i kredsløbet.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve er målt på kondensatoren C1 ved indgangen af IC1C, og viser op og afladningskurven for RC-leddet dannet af R3 og C1. Op og afladning ser ud som forventet.&lt;br /&gt;
&lt;br /&gt;
Den næste kurve skulle være digitaliseringen af det forsinkede signal, men det ses her at der er betydelige afrundinger på kurven. Dette skyldes at inverteren ikke digitaliserer 100%, men blot laver en forstærkning af det indkomne signal så inputtet i de logisk veldefinerede områder giver et rent output, mens det udefinerede område fra 30-70% af forsyningen ikke giver et sikkert logisk output&amp;lt;ref name=&amp;quot;CD4069&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. Dette har dog ingen praktisk betydning, da dette output blot føres videre til andre logiske kredse, og ikke tænder eller slukker for MOSFET&#039;erne. Signalet på udgangen passerer pænt hurtigt igennem det udefinerede område, og giver ikke nogen problemer. Havde det givet problemer kunne man anvende en inverterende schmitt-trigger med en hysterese som CD40106, så ville problemet være elimineret.&lt;br /&gt;
&lt;br /&gt;
Der ses at den ønskede forsinkelse på 2us ikke er helt opfyldt, men at det ligger tæt nok på med ca. 1,7us til 1,8us til at kunne anvendes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tredje sæt målinger viser hvordan de sidste signaler, der dannes til at skabe styresignalerne, ser ud:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-inv.png|600px|Målinger på inverteret indgangssignal og ikke inverteret forsinket indgangssignal]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på inverteret indgangssignal og ikke inverteret forsinket indgangssignal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vi har igen samme referencesignal på den nederste blå kurve.&lt;br /&gt;
&lt;br /&gt;
Øverst i det tredje sæt målinger er der vist inverteringen af reference-signalet. Det ser ud helt som forventet.&lt;br /&gt;
&lt;br /&gt;
Den nederste røde kurve viser det forsinkede signal i ikke inverteret fase, og det har igen de samme forsinkelser samt at det kan ses at det er rette meget pænt op på stige- og falde-tiderne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fjerde sæt målinger viser de signaler der faktisk driver de to P-Channel MOSFET&#039;er og de to N-Channel MOSFET&#039;er:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-driver.png|600px|Målinger på Gate-signalerne til MOSFET&#039;erne i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på Gate-signalerne til MOSFET&#039;erne i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Igen har vi det samme blå referencesignal nederst.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve på udgangen af IC2B er dannet af referencesignalet og det ikke inverterede, forsinkede signal, således at de trækker lavt efter de ca. 2us forsinkelse og går højt igen lige når referencesignalet går lavt, så MOSFET&#039;erne tænder forsinket og slukker u-forsinket. Dette er med til at skabe et tidsrum hvor alle MOSFET&#039;er i broen er slukket. Man kan også ses på signalet hvorfor denne forsinkelse er så vigtig, nemlig at skiftet bliver forsinket ved at udgangen ikke kan drive den kapacitet der sidder i gaten af MOSFET&#039;en hurtigere ON / OFF, der godt nok gør at MOSFET&#039;en er ret hurtig til at begynde at tænde, men at den tager et stykke tid om at slukke. Størrelsen på kapaciteten ind på gaten på en IRF9540 kan ses herunder som 1400 pF, hvilket forklarer det langsomme skift på næsten 2us på udgangen af NAND-gaten.&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-C-9540.png|1000px|Kapacitetsværdierne på en IRF9540 fra databladet]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Kapacitetsværdierne på en IRF9540 fra databladet&amp;lt;ref name=&amp;quot;irf9540&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Den anden kurve er inverteringen af den øverste kurve fra IC1E, og den anvendes til at drive den N-channel MOSFET U$2 der skal tænde samtidigt med P-Channel MOSFET&#039;en U$3 omtalt lige ovenfor. På dette signal ses noget af det samme fænomen, blot ikke så markant, hvilket skyldes at den IRF530 der anvendes har en lavere gate-kapacitet, som det kan ses i databladsudsnittet herunder:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-C-530.png|1000px|Kapacitetsværdierne på en IRF530 fra databladet]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Kapacitetsværdierne på en IRF530 fra databladet&amp;lt;ref name=&amp;quot;irf530&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På samme måde som ved øverste og anden øverste kurve kan man se de samme ting på signalerne for de næste to kurver. De er dannet af IC2A og IC1F og lider af de samme skavanker, men det er tydeligt at se at der lige netop er blevet slukket helt for det ene sæt MOSFET inden det andet sæt tænder, så forsinkelsen på de små 2us ser ud til at være nok.&lt;br /&gt;
&lt;br /&gt;
Det ses desuden på de to nederste signaler at de kun tænder MOSFET&#039;erne i ca. 6us, hvor de to øverste signaler tænder MOSFET&#039;erne i ca. 10us. Det skyldes den asymmetriske forsinkelse som transistoren i starten indførte, så der kom 12us puls og 8us pause i referencesignalet. Dette betyder at 50 kHz er omkring den øverste grænse at denne opstilling kan anvendes ved, hvis der skal fordeles nogenlunde rimeligt mellem de to strømretninger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
På det femte sæt målinger ser vi hvordan spændingerne på udgangen af H-Broen ser ud:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-load.png|600px|Målinger på input-transistoren Q1 i H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på input-transistoren Q1 i H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Igen er det referencesignalet i den nederste blå kurve.&lt;br /&gt;
&lt;br /&gt;
Ser man på tidsforholdene i den øverste kurve, ses det at der hvor MOSFET&#039;erne skulle starte omkring 2us inde i referencesignalets høje periode, så er begge sider høje lidt under 1us, hvorefter venstre side trækkes lav, og højre side bliver trukket en anelse nedad (men er tændt) det rettes dog hurtigt.&lt;br /&gt;
&lt;br /&gt;
Der hvor MOSFET&#039;erne skulle slukke, nemlig hvor referencesignalet går lavt, der ser vi igen en forsinkelse, denne gang på lidt over 1us inden høje side begynder at gå lav, og umiddelbart efter ses det også at venstre side går opad sammen med højre side, og broen er slukket i begge retninger.&lt;br /&gt;
&lt;br /&gt;
Det samme gentager sig i den modsatte fase, og det ses at de tider der er spænding over belastningen svarer til de ca. 10us og 6us som det kunne ses tidligere. Kapaciteterne giver altså endnu en forsinkelse på at tænde udgangen på H-Broen.&lt;br /&gt;
&lt;br /&gt;
Ser man på spændingsforholdene, så vil man se at når MOSFET&#039;erne er tændt, så er den lave spænding oppe på omkring 1V og den høje spænding ligger på ca. 10V. Det betyder at der ligger en spænding på 9V over belastningen, og der trækkes altså omkring 1,8A i belastningen.&lt;br /&gt;
&lt;br /&gt;
Med ca. 1V og 2A er det omkring 2W der afsættes i hver MOSFET mens de er tændt, men da ingen af dem er tændt i mere end halvdelen af tiden, så afsættes der i gennemsnit ikke mere end 1W i hver MOSFET, hvilket er omkring grænsen for hvad de kan tage uden køling. Sætter man derimod køling på, så vil de kunne klare væsentlig mere. Det kan dog ikke anbefales at have broen slukket, da der så vil afsættes ca. de 2W i to af MOSFET&#039;erne, og det er mere end de kan klare uden køling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Det sjette kurvesæt viser de forhold der er på forsyningen:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-fors.png|600px|Målinger på forsyningen til H-Broen]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på forsyningen til H-Broen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disse målinger er lige for at forklare at forsyningen ikke er helt stabil, selvom den er blevet sikret med to kondensatorer for at holde den nogenlunde stabil.&lt;br /&gt;
&lt;br /&gt;
På den blå referencemåling ses de underlige variationer i det høje signal ca. 2us efter signalet er gået højt og igen lidt variation i det lave signal 2us efter at det er gået lavt.&lt;br /&gt;
&lt;br /&gt;
Den øverste røde kurve viser tydeligt at der sker noget på 12V forsyningen samtidigt med at forstyrrelserne kommer i signalet, så de stammer herfra. Årsagen til dem er at MOSFET&#039;erne skifter fra tændt til slukket til at være tændt igen i dette tidsrum. Der ses en lignende forstyrrelse på forsyningen i det andet tidspunkt hvor MOSFET&#039;erne skifter om på spændingen.&lt;br /&gt;
&lt;br /&gt;
På det tidspunkt hvor forstyrrelserne er på forsyningen kan der også anes en lille variation på GND-målingen, som jo burde være helt flad. Det skyldes modstande og induktioner i fumlebrættet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Det syvende kurvesæt angiver hvad der sker, hvis man sætter forsyningen ned til omkring 5V:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-5V.png|600px|Målinger på styresignal og output af H-Broen ved 5V forsyning]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Målinger på styresignal og output af H-Broen ved 5V forsyning&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Referencen er tidsmæssigt den samme blå kurve, men er her faldet til et 5V signal.&lt;br /&gt;
&lt;br /&gt;
Den øverste kurve er den spænding der styrer gaten på MOSFET U$2, altså signalet ud af IC1E. Hvis man sammenligner den med kurven for det samme signal med 12V forsyning (i det fjerde målesæt), så vil man se at det tager næsten dobbelt så lang tid for signalet at komme op på 5V, som det tog signalet at komme op på 12V. Dette skyldes CMOS-kredsens ringe evne til at drive strøm ved den lave forsyningsspænding&amp;lt;ref name=&amp;quot;CD4069&amp;quot; /&amp;gt;. Det betyder både at MOSFET&#039;erne tænder senere, men også at de slukker væsentligt senere. Forklaringen kan ses på de strømme en CMOS kreds kan drive som vist i databladet herunder:&lt;br /&gt;
&lt;br /&gt;
[[Fil:FET-Bro-CD4069.png|1000px|Udsnit fra databladet på en CD4069, der viser strømmene som udgangen kan levere ved hhv. 5V, 10V og 15V]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Udsnit fra databladet på en CD4069&amp;lt;ref name=&amp;quot;CD4069&amp;quot; /&amp;gt;, der viser strømmene som udgangen kan levere ved hhv. 5V, 10V og 15V&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kigger man på de to næste kurver kan det være lidt svært at se, men det tolkes at de 2us efter at referencesignalet går højt, der begynder det næste sæt MOSFET&#039;er at tænde, men den anden del af H-Broen er endnu ikke slukket, så forsyningen kortslutter, og først mellem 4us og 6us kommer H-Broen ud af dette igen, hvor det kan ses at den venstre side trækker lavt og den højre side trækker højt i belastningen.&lt;br /&gt;
&lt;br /&gt;
Igen hvor den øverste kurve burde gå lav sammen med referencesignalet, der forbliver det højt i ca. 4us, på grund af den store kapacitet i gaten og den ringen evne til at trække strøm i udgangen af CMOS-kredsen. Dette giver igen en fase hvor broen er kortsluttet, og derefter en fase hvor den højre side langsomt bliver lav, således at kortslutningen er væk og der løber strøm i loadmodstanden.&lt;br /&gt;
&lt;br /&gt;
Konklusionen på disse målinger er at den viste opstilling ikke er egnet til 5V forsyning. Det kunne måske reddes ved at anvende HCMOS kredse som fx 74HC00 til NAND-gaten&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/74HC00.pdf 74HC00 HCMOS NAND-gate] Datablad&amp;lt;/ref&amp;gt; og 74HC04 til inverteren&amp;lt;ref&amp;gt;[http://htx-elev.ucholstebro.dk/el/komponent/74HC04.pdf 74HC04 HCMOS Inverter] Datablad&amp;lt;/ref&amp;gt;, der kun kan arbejde på 5V, men som til gengæld kan trække større strømme, hvilket ville kunne løse problemet. Jeg ville så helt sikkert også fjerne transistoren i indgangen, da den kun er der for at tilpasse op til 12V signaler.&lt;br /&gt;
&lt;br /&gt;
===Færdige styringer der indeholder en H-Bro===&lt;br /&gt;
En løsning der kan være god, hvis man bare skal have en H-Bro til at fungere er at vælge en færdig kreds/board der indeholder hele styringen. Her har vi forskellige typer:&lt;br /&gt;
&lt;br /&gt;
[[fil:L293-eksempel.png|thumb|right|200px|Principskitse over L293 motor driver]]&lt;br /&gt;
En [http://htx-elev.ucholstebro.dk/el/komponent/L293N.pdf L293] der består af 4 drivere, der to sammen kan forme en H-bro, den har følgende egenskaber:&lt;br /&gt;
* 16 bens DIL IC, der skal monteres på et print (virker ikke så godt i et fumlebræt)&lt;br /&gt;
* Kan danne 2 H-Broer men også 4 individuelle styringer af motorer, der ikke skal vende polaritet&lt;br /&gt;
* Skal have separat logik-forsyning 5V (4,5 - 7 V)&lt;br /&gt;
* Arbejder med motorer på 5 - 36 V op til 1A&lt;br /&gt;
* SKAL have beskyttelsesdioder monteret fx. typen 1N4007&lt;br /&gt;
* Er meget fleksibel i opbygningen&lt;br /&gt;
&lt;br /&gt;
[[fil:L9110-eksempel.png|thumb|right|150px|Billede af print med 2 stk L9110 H-Bro drivere]]&lt;br /&gt;
Et print med to stk [https://www.elecrow.com/download/datasheet-l9110.pdf L9110] H-Bro kredse, der kan styre enten to [[DC-motor]]er eller en Bi-polar [[Stepmotor]]. Printet er bl.a. købt ved [https://www.aliexpress.com/item/Smart-Electronics-L9110S-DC-Stepper-Motor-Driver-Board-H-Bridge-best-prices/32513995566.html Aliexpress.com], og har følgende egenskaber:&lt;br /&gt;
* Sidder på et print med 6 bens tilslutning til styring og forsyning samt 4 skrueterminaler til motorer.&lt;br /&gt;
* Har fast 2 stk. H-broer&lt;br /&gt;
* Har ingen logikforsyning, men skal have fælles stel mellem styring og motorforsyning&lt;br /&gt;
* Styresignaler på 3-5V&lt;br /&gt;
* Motorspænding på 2,5 - 12 V med en maks strøm på 800mA&lt;br /&gt;
* Har indbyggede beskyttelsesdioder&lt;br /&gt;
&lt;br /&gt;
[[fil:A4988-eksempel.png|thumb|right|150px|Billede af print med en A4988 stepper motor driver]]&lt;br /&gt;
Et print med en[http://www.geeetech.com/Documents/A4988-Datasheet.pdf A4988] stepper motor driver, der kan styre en bipolar [[stepmotor]]. Printet er køb ved [[https://www.aliexpress.com/item/1Pcs-StepStick-Stepper-Motor-Driver-A4988-Driver-Module-For-Reprap-Prus-3D-Printer-Newest/32275396248.html aliexpress.com]], og har følgende egenskaber:&lt;br /&gt;
* Sidder på et print med 16 stik-ben (alle skal forbindes fornuftigt&lt;br /&gt;
* Har udgange til en 2 viklings bipolar [[stepmotor]]&lt;br /&gt;
* Har 3-5V logik-forsyning, med fælles stel til motorforsyningen&lt;br /&gt;
* Motorspænding på 8-35V med en kams strøm på 1,5A&lt;br /&gt;
* Har indbyggede beskyttelsesdioder&lt;br /&gt;
* Kræver en lille køleplade ved hård belastning&lt;br /&gt;
* Har en avanceret styring, der kan mikrosteppe stepmotoren - kan indstilles til Full-step, Half-step, 1/4 step, 1/8 step og 1/16 step, hvor styringen [[PWM]]-pulser signalet ind mellem steppene.&lt;br /&gt;
* Skal styres med step og direction - ikke med normal stepper software&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{analog}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog Kredsløb]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Kategori:Arduino_Analog&amp;diff=5001</id>
		<title>Kategori:Arduino Analog</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Kategori:Arduino_Analog&amp;diff=5001"/>
		<updated>2022-11-22T14:56:30Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Opdateret af Henrik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Arduinoen kan operere med analoge spændinger på forskellig vis. &lt;br /&gt;
&lt;br /&gt;
==Analoge output==&lt;br /&gt;
Arduinoen kan ikke levere et analogt output direkte, men kan ved at lave et [[PWM]]-signal lave noget der i mange tilfælde kan bruges som et sådant.&lt;br /&gt;
&lt;br /&gt;
De udgange der kan anvendes til analogt output er de digitale udgange, hvor det kun er nogle af dem der kan det - de er markeret med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet:&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|500px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge [[PWM]]-udgange markeret med ~ udgang 3, 5, 6, 9, 10, 11&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koden til det analoge output er gennemgået under [[PWM#PWM_p.C3.A5_Arduino|PWM på Arduino]].&lt;br /&gt;
&lt;br /&gt;
==Analoge indgange==&lt;br /&gt;
Der er 6 analoge indgange på Arduinoen som vist her:&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-power-analog.png|500px|Arduino UNO Rev. 3 med analoge indgange]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 med analoge indgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koden til de analoge indgange er beskrevet under [[Analog_indgang#Arduino_Analoge_indgange|Analoge indgange]].&lt;br /&gt;
&lt;br /&gt;
==[[Analog reference]]==&lt;br /&gt;
&lt;br /&gt;
Den [[analog reference|analoge reference]] angiver hvilen spændning de analoge indgange skal konverteres i forhold til, altså hvilket spændings-område der skal oversættes til 0-1023 ved den analoge konvertering.&lt;br /&gt;
&lt;br /&gt;
Alle de analoge indgange følger den samme analoge reference.&lt;br /&gt;
&lt;br /&gt;
Man kan indstille hvilken analog reference der skal anvendes ved hjælp af &#039;&#039;&#039;analogReference()&#039;&#039;&#039;&amp;lt;ref&amp;gt;http://arduino.cc/en/Reference/AnalogReference Arduino analog reference&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Som standard er referencen 5V fra forsyningen.&lt;br /&gt;
&lt;br /&gt;
Der er følgende muligheder på Arduino UNO:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter!!Betydning&lt;br /&gt;
|-&lt;br /&gt;
|DEFAULT||Den analoge reference er forsyningen på 5V&lt;br /&gt;
|-&lt;br /&gt;
|INTERNAL||Der anvendes en intern 1,1V reference, så indgangene bliver mere følsomme (mindre opløsning)&lt;br /&gt;
|-&lt;br /&gt;
|EXTERNAL||Den analoge reference kommer fra AREF benet på arduinoen &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Kategori:Arduino]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Mikrofonforst%C3%A6rker&amp;diff=5000</id>
		<title>Mikrofonforstærker</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Mikrofonforst%C3%A6rker&amp;diff=5000"/>
		<updated>2022-11-22T14:52:19Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Oprettet af Henrik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hvis man har et analogt inputsignal som spændingsmæssigt ikke er ret stort, kan man forstærke signalet op, inden man anvender signalet til f.eks. [[AD-konvertering]].&lt;br /&gt;
&lt;br /&gt;
Hvis man vil koble en mikrofon til en analog indgang på en mikroprocessor (f.eks. Arduino), for at måle lydniveauer, får man behov for en signalforstærker inden signalet AD-konverteres. En mikrofon giver kun et spændingsoutput på nogle få mV. AD-konverteren arbejder i et antal steps givet ud fra [[Bit-opløsningens betydning|antallet af bit som AD-konverteren arbejder med]]. Er det en 10 bit AD-konverter, deles spændingsområdet op i 1024 steps. Hvis spændingsområdet er på 5 V, repræsenterer hvert step en spænding på 4,89 mV. Hvis inputspændingen fra mikrofonen kun er nogle få mV, så udnyttes måske kun 50-100 ud af AD-konvertererens 1024 steps, hvorved opløsningen på lyden bliver meget lavt. Hvis man i stedet for forstærker mikrofonsignalet op inden AD-konverteren, så udnyttes flest mulige af de 1024 steps.&lt;br /&gt;
&lt;br /&gt;
En simpel forforstærker til en mikrofon ses på diagrammet nedenfor. Forstærkningsgraden stilles på potentiometer P1.&lt;br /&gt;
&lt;br /&gt;
[[fil:Audio_preamp-diagram.jpg|500px|Mikrofonforstærker]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Mikrofonforstærker&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Komponentliste==&lt;br /&gt;
R1  &amp;lt;math&amp;gt;10 k\Omega&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
R2  &amp;lt;math&amp;gt;10 k\Omega&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
R3  &amp;lt;math&amp;gt;1 k\Omega&amp;lt;/math&amp;gt;  &amp;lt;br /&amp;gt;&lt;br /&gt;
R4  &amp;lt;math&amp;gt;10 k\Omega&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
P1  &amp;lt;math&amp;gt;100 k\Omega, lin &amp;lt;/math&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
C1  &amp;lt;math&amp;gt;100 nF&amp;lt;/math&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
C2  &amp;lt;math&amp;gt;4,7 \mu F / 16 V &amp;lt;/math&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
IC1	&amp;lt;math&amp;gt;LM358 &amp;lt;/math&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Arduino Elektrisk}}&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;br /&gt;
[[Kategori:PIC Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:Audio_preamp-diagram.jpg&amp;diff=4999</id>
		<title>Fil:Audio preamp-diagram.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:Audio_preamp-diagram.jpg&amp;diff=4999"/>
		<updated>2022-11-22T14:40:20Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Signalforstærker / mikrofonforstærker&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
Signalforstærker / mikrofonforstærker&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Analog_indgang&amp;diff=4998</id>
		<title>Analog indgang</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Analog_indgang&amp;diff=4998"/>
		<updated>2022-11-22T14:21:16Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Opdateret af Henrik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En analog indgang på en [[mikrocontroller]] er lavet for at kunne registrere og arbejde med analoge værdier i mikrocontrollerens program, selvom den i naturen er digital.&lt;br /&gt;
&lt;br /&gt;
==AD-konvertering==&lt;br /&gt;
For at en mikrocontroller kan arbejde med analoge værdier skal der ske en &amp;lt;i&amp;gt;analog til digital konvertering&amp;lt;/i&amp;gt; ([[#AD-konvertering]]), der konverterer den analoge indgangsspænding til en digital værdi med en eller anden opløsning.&lt;br /&gt;
&lt;br /&gt;
Man kan i princippet arbejde med en ekstern AD-konverter som en [[Mcp3201]] eller en [[Mcp3208]], der begge er 12 bits AD-konvertere som altså giver tal fra 0 til 4095 over det analoge referenceområde som er angivet ved en [[analog reference]]. &lt;br /&gt;
&lt;br /&gt;
I dag har mange mikrocontrollere indbyggede AD-konvertere som typisk har 10 bit opløsning, hvilket give et talområde fra 0 til 1023. Se mere om [[#Bit-opløsningsens betydning]]. &lt;br /&gt;
&lt;br /&gt;
På engelsk betegnes AD-konvertering &amp;lt;i&amp;gt;ADC&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Hvis de spændinger man skal måle på, er højere end hvad AD-konverteren kan håndtere, man man anvende en [[Spændingsdeler]] der neddeler spændingen.&lt;br /&gt;
&lt;br /&gt;
Hvis de spændinger man skal måle på er meget små, kan man vælge at forstærke signalet op inden det AD-konverteres. Det kan f.eks. ske med en [[Mikrofonforstærker]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bit-opløsningens betydning===&lt;br /&gt;
En AD-konverter arbejder i f.eks. 10 bit. Det betyder, at der er 10 bit til rådighed til at repræsentere den spænding der bliver målt. Med 10 bit kan vi repræsentere &amp;lt;math&amp;gt;2^{10} = 1024&amp;lt;/math&amp;gt; værdier eller step.&lt;br /&gt;
&lt;br /&gt;
Hvis spændingen som AD-konverteren måler er 0 V, konverteres dette til en heltalsværdi på 0 (step 0). Hvis spændingen som AD-konverteren måler er 5 V (dvs. den maksimale spænding som AD-konverteren i en Arduino kan måle), giver det en værdi på 1023 (step 1023). Der er altså 1024 steps til at repræsentere spændingerne mellem 0 V og 5 V.&lt;br /&gt;
&lt;br /&gt;
Man kan beregne hvor stor en spænding hvert step dækker over:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{step} = \frac{5 V}{1023 step} = 0,00489 \frac{V}{step} = 4,89 \frac{mV}{step}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis AD-konverteren giver heltallet 688 som output (dvs. step 688), kan man beregne, hvor stor en spænding der var på det analoge input:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{ADC} = n_{step} \cdot U_{step} = 688 \text{step} \cdot 4,89 \frac{mV}{step} = 3,36 V&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Arduino Analoge indgange==&lt;br /&gt;
I arduinoen er det ganske enkelt at anvende analoge indgange&amp;lt;ref&amp;gt;[http://arduino.cc/en/Reference/AnalogRead AnalogRead reference]&amp;lt;/ref&amp;gt;, da man kan gøre det med en enkelt kommando:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  int ADtal;&lt;br /&gt;
  ADtal = analogRead(kanal);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Her er ADtal blot en [[variabel]] der gemmer det tal fra 0 til 1023 som den analoge indgangs AD-konverter svarer med, når analogRead() kaldes.&lt;br /&gt;
&lt;br /&gt;
[[Parameter]]en kanal angiver hvilken analog indgang man vil læse, og er på arduino UNO blot et tal fra 0 til 5, hvilket svarer til A0 - A5 som det er angivet ved stikforbindelserne på boardet.&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-power-analog.png|500px|Arduino UNO Rev. 3 med analoge indgange]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 med analoge indgange A0 til A5&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eksempler på anvendelser er angivet i [[Arduino Serial]] og [[Arduino AnalogInput]].&lt;br /&gt;
&lt;br /&gt;
==PIC Analoge indgange==&lt;br /&gt;
Det er ikke alle de PIC-typer vi har ved Holstebro HTX der har AD-konvertere indbygget, men følgende typer har, og anvender til AD-konvertering det angivne bibliotek&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!PIC-type!!Bibliotek&lt;br /&gt;
|-&lt;br /&gt;
|[[PIC12F675]] || [[ADC_holst]]&lt;br /&gt;
|-&lt;br /&gt;
|[[PIC16F684]] || [[ADC_holst]]&lt;br /&gt;
|-&lt;br /&gt;
|[[PIC16F690]] || [[ADC_holst]]&lt;br /&gt;
|-&lt;br /&gt;
|[[PIC16F877]] || [[ADC]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{PIC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Arduino Elektrisk}}&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;br /&gt;
[[Kategori:PIC Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=PWM&amp;diff=4997</id>
		<title>PWM</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=PWM&amp;diff=4997"/>
		<updated>2022-11-22T12:32:54Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Anvendelse af PWM signalet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puls Bredde Modulation (eller Puls Width Modulation - deraf PWM) er en måde at lave et signal der kan give en analog værdi ved hjælp af et digitalt output.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
Hvis man tilslutter en 12 V DC motor til en strømforsyning, og langsomt skruer op for spændingen, kan man se, at DC motorens rotationshastighed afhænger af hvor høj spændingen er. Når spændingen er 0 V roterer motorens aksel ikke, og når spændingen når 12 V, roterer DC motorens aksel med maksimal hastighed. Det ses dermed, at man kan regulere DC motorens rotationshastighed ud fra den analoge spænding den forsynes med.&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at regulere DC motoren fra mikroprocessoren, har man behov for at lave en variabel spænding. Da mikroprocessorens output arbejder digitalt, og vi har behov for en analog spænding vi kan variere, vil vi gøre brug af metoden der hedder &amp;lt;i&amp;gt;pulse width modulation&amp;lt;/i&amp;gt; (dvs. &amp;lt;i&amp;gt;puls bredde modulation&amp;lt;/i&amp;gt; eller bare PWM). PWM laver en variabel spænding ud fra digitale pulser.&lt;br /&gt;
&lt;br /&gt;
Hvis man sætter et outputben på mikroprocessoren høj, vil man på benet kunne måle en spænding på 5 V. Figuren herunder viser hvordan dette ser ud målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_01_max.png|500px|Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet sætter outputbenet lavt, vil man kunne måle en spænding på 0 V. Dette er vist herunder målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_02_min.png|500px|Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man skifter mellem høj og lav, og gør det f.eks. med en frekvens på 500 Hz (dvs. 500 perioder pr. sekund), og lader benet være højt 1 msek, og derefter lavt i 1 msek, så vil man kunne måle en spænding på 2,5 V på benet. Dette ses på figuren nedenfor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_03_half.png|500px|Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Er det i stedet for 0,5 msek benet er højt, og 1,5 msek benet er lavt (dvs. højt &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden, og lavt &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden), så bliver middelspændingen &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af de 5 V = 1,25 V. Dette ses på figuren herunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_04_quarter.png|500px|Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan altså bestemme middelspændingen på outputputtet ved at justere hvor lang tid benet henholdsvis er højt og lavt. For at man ikke oplever at spændingen ”hopper” op og ned, skal skiftene ske hurtigt. Hvis det for eksempel sker med en frekvens på 500 Hz (dvs. at en periode varer 2 msek), så opleves spændingen som værende konstant.&lt;br /&gt;
 &lt;br /&gt;
==Princippet - Er det OK dækket i ovenstående afsnit?==&lt;br /&gt;
Måden man gør det på er ved at sende et signal ud med en fast frekvens, hvor man så lader signalet være højt i en vis procentdel af tiden og lav i resten af tiden.&lt;br /&gt;
&lt;br /&gt;
Herunder er der illustreret 4 forskellige signaler på et PWM-output. Signalet kan helt i yderområderne være lavet hele tiden (0%) og højt hele tiden (100%).&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM-values.png|4 PWM signaler med forskellig værdi, fra 5% til 90%]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;4 PWM signaler med forskellig værdi, fra 5% til 90%&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På den måde kan man bestemme hvilken gennemsnits-spænding der kommer ud.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af PWM signalet==&lt;br /&gt;
Man kan anvende sit PWM signal til mange formål; alt fra at dæmpe lyset i en lysdiode til at justere rotationshastigheden for en DC motors aksel. Da PWM signalet reelt er et digital signal der skifter mellem 0 V og 5 V skal man overveje om dette firkantsignal uden videre kan anvendes til det ønskede formål; Er det en lysdiode der skal dæmpes ned, er det måske OK at den står og flimrer lidt, hvor imod det kan give problemer hvis PWM signalet skal anvendes som en konstant, præcis spænding i et målekredsløb. Gælder sidstnævnte, kan man tilføje en analog filtrering mellem PWM signalet og målekredsløbet (se afsnittet [[#Analog filtrering]]).&lt;br /&gt;
&lt;br /&gt;
Anvender man PWM signalet til en elmotor, så vil motorens inertimoment ved rotation fungere som filter, der glatter firkantsignalet ud. Inertimomentet kan beskrives som &amp;lt;i&amp;gt;trægheden&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;modviljen&amp;lt;/i&amp;gt; til at ændre på rotationsbevægelsen og afhænger bl.a. af massen af det der roterer (jo større masse, desto større inertimoment, og dermed større modvilje til at ændre rotationsbevægelsen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Analog filtrering===&lt;br /&gt;
For at signalet skal blive en fornuftig DC-spænding, så laves en analog filtrering af signalet med er RC-led som vist her:&lt;br /&gt;
&lt;br /&gt;
[[image:PWM-diagram.PNG]]&lt;br /&gt;
&lt;br /&gt;
==PWM på Arduino==&lt;br /&gt;
Et Arduino Uno board har seks porte der kan sættes op til at lave PWM; Det er portben 3, 5, 6, 9, 10 og 11, der er angivet med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|600px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge PWM udgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programkoden der skal til for at anvende PWM på et af de &#039;&#039;&#039;~&#039;&#039;&#039;-mærkede outputben er at skrive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  analogWrite(analogOutPin, outputValue);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;analogOutPin&#039;&#039;&#039; skal sættes til portbensnummeret. Benet skal være sat op til output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;outputValue&#039;&#039;&#039; skal være af typen byte, så værdien ligger fra 0 til 255. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med konstant 2,5 V===&lt;br /&gt;
Ønsker man en konstant spænding på 2,5 V fra en af PWM portbenene, kan man skrive som følger. I eksemplet anvendes portben 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
  {&lt;br /&gt;
     pinMode(pwmPin, OUTPUT); &lt;br /&gt;
     analogWrite(pwmPin, 127);   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void loop()&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da 2,5 V er den halve spænding af Arduinoboardets 5 V spænding, sættes &#039;&#039;&#039;outputValue&#039;&#039;&#039; værdien til den halve værdi af maksimum, hvilket er 127.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med variabel spænding===&lt;br /&gt;
Hvis man ønsker at justere outputspændingen ud fra positionen på et potentiometer, kan man koble potentiometrets midterste ben til et analog input på Arduinoboardet, og de to andre ben til henholdsvis +5 V og GND; Dermed kan inputspændingen læses, og bruges til at justere outputspændingen på det ønskede portben.&lt;br /&gt;
&lt;br /&gt;
Bemærk, at Arduino Uno har en 10 bit ADC &amp;lt;b&amp;gt;(link til ADC)&amp;lt;/b&amp;gt;, og dermed arbejder med heltalsværdier mellem 0 og 1023, mens PWM på Arduino Uno er i 8 bit, og dermed heltalsværdier mellem 0 og 255. Det betyder, at når man læser et heltal der kan ligge mellem 0 og 1023, skal det konverteres ned i talrummet af heltal mellem 0 og 255. Til dette anvendes funktionen &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; er værdien der skal konverteres (her værdien læst fra potentiometret)&lt;br /&gt;
&#039;&#039;&#039;fromLow&#039;&#039;&#039; er den mindste værdi value kan antage (her 0)&lt;br /&gt;
&#039;&#039;&#039;fromHigh&#039;&#039;&#039; er den højeste værdi value kan antage (her 1023)&lt;br /&gt;
&#039;&#039;&#039;toLow&#039;&#039;&#039; er den laveste værdi der skal konverteres til (her 0)&lt;br /&gt;
&#039;&#039;&#039;toHigh&#039;&#039;&#039; er den højeste værdi der skal konverteres til (her 255)&lt;br /&gt;
&lt;br /&gt;
I eksemplet her anvendes portben 3 til PWM output, mens det analoge signal fra potentiometret læses fra analog port A0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
  const int aInput = A0;&lt;br /&gt;
&lt;br /&gt;
  int analogInputValue;&lt;br /&gt;
  int pwmValue;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
 {&lt;br /&gt;
    pinMode(pwmPin, OUTPUT); &lt;br /&gt;
    pinMode(aInput, INPUT);   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    analogInputValue = analogRead(aInput);&lt;br /&gt;
    pwmValue = map(analogInputValue, 0, 1023, 0, 255);&lt;br /&gt;
    analogWrite(pwmPin, pwmValue);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Strømtræk fra en PWM port på Arduinoboardet===&lt;br /&gt;
Da et Arduinoboard i følge specifikationerne&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt; maksimalt kan levere 20 mA fra en output port, kan man være nød til at anvende en transistor mellem portbenet på Arduinoboardet og den komponent der skal drives. &amp;lt;b&amp;gt;INDSÆT LINK/REFERENCE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PWM på PIC==&lt;br /&gt;
===Eksempel på output===&lt;br /&gt;
&lt;br /&gt;
Hvis man stiller CCPR1L / outputValue til 64, så kan man måle det viste:&lt;br /&gt;
&lt;br /&gt;
[[Image:osc-pwm-25.png]]&lt;br /&gt;
&lt;br /&gt;
Den nederste kurveform er et 5V output målt på P1A, hvor det er højt i ca. 0.26 ms ud af de i alt 1.02 ms som periodetiden er. Det er ca. 25 % af tiden, og som det kan ses på den blå kurve øverst, så ligger den udglattede udgangsspænding på ca. 25 % af de 5V (1.25V), men i praksis er spændingen lidt lavere, som her måles til 1.16V. Det skyldes at Forsyningspændingen ligger lidt under 5V.&lt;br /&gt;
&lt;br /&gt;
===Koden til PWM på PIC===&lt;br /&gt;
Alle [[PIC-type]]r kan i princippet lave PWM, men det gøres lettest i en PIC der kan det som indbygget standard.&lt;br /&gt;
&lt;br /&gt;
Til [[PIC16F684]] er der lavet et eksempel på [[Media:PWM.zip|PWM-kode]], der skitseres her.&lt;br /&gt;
&lt;br /&gt;
Der vælges at lave output på P1A, der er pin_C5, så denne skal indstilles til output.&lt;br /&gt;
&lt;br /&gt;
Herefter initialiseres CCP1CON registeret til kun lave output på P1A og at det er PWN der skal anvendes. Derefter sættes timer 2 op, så den fungerer - her er valgt 4 gange prescaler. Koden skrives som:&lt;br /&gt;
&lt;br /&gt;
 -- Initialisering af PWM&lt;br /&gt;
 CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
 T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
Registeret PR2 sættes til sin maksimale værdi, så der kommer maksimal opløsning på PWM-signalet&lt;br /&gt;
&lt;br /&gt;
 PR2 = 255&lt;br /&gt;
&lt;br /&gt;
Tilsammen giver disse to ting at frekvensen på PWM-signalet bliver ca. 1 kHz ved et oscillatorfrekvens på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
====Værdien der giver PWM outputtet====&lt;br /&gt;
Når det ovenstående er indstillet, så kan man blot skrive en værdi til CCPR1L på mellem 0 og 255, hvilket så giver værdien i forhold til de 255.&lt;br /&gt;
&lt;br /&gt;
Der ligger faktisk 2 bit ekstra i opløsning, som skal angives i de 2 lave bit af CCP1CON, så man kan angive totalt set en 10 bit værdi.&lt;br /&gt;
&lt;br /&gt;
===PWM til at danne forskellige frekvenser===&lt;br /&gt;
I stedet for at anvende PWM til at lave en tilnærmet DC-værdi med, så kan man også få PWM-udgangen til at danne en fast frekvens, hvor man så kan indstille duty-cycle til 50%.&lt;br /&gt;
&lt;br /&gt;
Ved at rette på periode-tiden kan man få udgangen til at lave forskellige frekvenser.&lt;br /&gt;
&lt;br /&gt;
En simpel måde at gøre det på er at sætte post- og pre-scaler til faste værdier, og så kun rette på PR2 og CCPR1L, som det er illustreret her ved hjælp af proceduren lyd, der tager periodetiden som parameter. Med denne initialisering kan der dannes frekvenser fra 1 kHz og opad.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
PR2 = 255&lt;br /&gt;
T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
-- Procedure der sætter en frekvens på PWM&lt;br /&gt;
-- 255 giver ca. 1 kHz&lt;br /&gt;
-- 128 giver ca. 2 kHz&lt;br /&gt;
procedure lyd (byte in periode) is&lt;br /&gt;
   PR2 = periode&lt;br /&gt;
   CCPR1L = periode / 2&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at dække et bredere frekvensområde, så skal man indstille både PR2, CCPR1L og T2CON, for at kunne danne frekvenserne præcist nok. Dette er illustreret i følgende kode (ikke testet):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
&lt;br /&gt;
-- Procedure der kan lave frekvenser fra 244 Hz til 20000 Hz ved en oscillatorfrekvens på 4MHz&lt;br /&gt;
-- Koden er tilpasser minimum frekvensen efter oscillatorfrekvensen&lt;br /&gt;
--   Oscillator    Minimum&lt;br /&gt;
--    4_000_000      244&lt;br /&gt;
--    8_000_000      488&lt;br /&gt;
--   20_000_000     1219&lt;br /&gt;
procedure tone(word in frekvens) is&lt;br /&gt;
   -- Perioden beregnes som PR2 = F_OSC / (4 * Frekvens * Prescaler) - 1&lt;br /&gt;
   -- Det skal bemærkes at post-scaleren ikke regnes med i dannelsen af frekvensen&lt;br /&gt;
   var dword periode = target_clock / 2 -- Gem den sidste halvering til afrunding&lt;br /&gt;
   if frekvens &amp;lt;= (target_clock / 16416) then     -- Så lave frekvenser understøttes ikke&lt;br /&gt;
      return&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 4104) then  -- Frekvenser der håndteres med prescaler 16&lt;br /&gt;
      T2Con = 0b0110&lt;br /&gt;
      periode = periode / 16&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 1026) then -- Frekvenser der håndteres med prescaler 4&lt;br /&gt;
      T2Con = 0b0101&lt;br /&gt;
      periode = periode / 4&lt;br /&gt;
   else                       -- Ved Prescaler = 1 rettes periodetiden ikke&lt;br /&gt;
      T2CON = 0b0100&lt;br /&gt;
   end if&lt;br /&gt;
&lt;br /&gt;
   periode = periode / frekvens -- Midlertidig beregning af perioden&lt;br /&gt;
   periode = (periode + 1) / 2  -- Division med afrunding i stedet for trunkering&lt;br /&gt;
   CCPR1L = byte(periode/2)     -- Lav ca. 50% dutycycle&lt;br /&gt;
   periode = periode - 1        -- Den sidste tilpasning efter formlen&lt;br /&gt;
   PR2 = byte(periode)&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test-koden og et regneark der illustrerer hvordan tonerne beregnes ligger i en [[Media:PWM-tone.zip|ZIP-fil]].&lt;br /&gt;
&lt;br /&gt;
Koden tester først om indstillingen kan laves ved den givne oscillatorfrekvens, og hvis den kan det, så indstilles prescaleren, så PR2 får størst mulig værdi, uden at der kommer overflow. Der forberedes også beregningen af periodetiden.&lt;br /&gt;
&lt;br /&gt;
Periodetiden beregnes ud fra frekvensen, og der tilpasses formlen for periodetiden. Endelig laves en afrunding af resultatet, i stedet for en normal truckering som man ellers gør i JAL divisioner. Dutycycle sættes til ca. 50% ved at sætte CCPR1L til halvdelen af PR2. &lt;br /&gt;
&lt;br /&gt;
Ved disse beregninger skulle frekvensen gerne ramme inden for +/- 1% på frekvenser fra 244 Hz til 20000 Hz ved oscillatorfrekvensen på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
===Andre PIC-typers PWM===&lt;br /&gt;
Der er ikke angivet hvordan koden skrives til andre PIC-typer, men princippet er nogenlunde det samme. Først skal man lave indstillingerne der angiver hvilke output der skal lave PWM, og så skal man sætte PIC&#039;en op så der er noget der angiver periodetiden, og noget der angiver hvor stor en del af periodetiden der skal være højt signal.&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{logik-begreber}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog]]&lt;br /&gt;
[[Kategori:Digital]]&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=PWM&amp;diff=4996</id>
		<title>PWM</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=PWM&amp;diff=4996"/>
		<updated>2022-11-22T12:32:11Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Anvendelse af PWM signalet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puls Bredde Modulation (eller Puls Width Modulation - deraf PWM) er en måde at lave et signal der kan give en analog værdi ved hjælp af et digitalt output.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
Hvis man tilslutter en 12 V DC motor til en strømforsyning, og langsomt skruer op for spændingen, kan man se, at DC motorens rotationshastighed afhænger af hvor høj spændingen er. Når spændingen er 0 V roterer motorens aksel ikke, og når spændingen når 12 V, roterer DC motorens aksel med maksimal hastighed. Det ses dermed, at man kan regulere DC motorens rotationshastighed ud fra den analoge spænding den forsynes med.&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at regulere DC motoren fra mikroprocessoren, har man behov for at lave en variabel spænding. Da mikroprocessorens output arbejder digitalt, og vi har behov for en analog spænding vi kan variere, vil vi gøre brug af metoden der hedder &amp;lt;i&amp;gt;pulse width modulation&amp;lt;/i&amp;gt; (dvs. &amp;lt;i&amp;gt;puls bredde modulation&amp;lt;/i&amp;gt; eller bare PWM). PWM laver en variabel spænding ud fra digitale pulser.&lt;br /&gt;
&lt;br /&gt;
Hvis man sætter et outputben på mikroprocessoren høj, vil man på benet kunne måle en spænding på 5 V. Figuren herunder viser hvordan dette ser ud målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_01_max.png|500px|Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet sætter outputbenet lavt, vil man kunne måle en spænding på 0 V. Dette er vist herunder målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_02_min.png|500px|Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man skifter mellem høj og lav, og gør det f.eks. med en frekvens på 500 Hz (dvs. 500 perioder pr. sekund), og lader benet være højt 1 msek, og derefter lavt i 1 msek, så vil man kunne måle en spænding på 2,5 V på benet. Dette ses på figuren nedenfor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_03_half.png|500px|Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Er det i stedet for 0,5 msek benet er højt, og 1,5 msek benet er lavt (dvs. højt &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden, og lavt &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden), så bliver middelspændingen &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af de 5 V = 1,25 V. Dette ses på figuren herunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_04_quarter.png|500px|Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan altså bestemme middelspændingen på outputputtet ved at justere hvor lang tid benet henholdsvis er højt og lavt. For at man ikke oplever at spændingen ”hopper” op og ned, skal skiftene ske hurtigt. Hvis det for eksempel sker med en frekvens på 500 Hz (dvs. at en periode varer 2 msek), så opleves spændingen som værende konstant.&lt;br /&gt;
 &lt;br /&gt;
==Princippet - Er det OK dækket i ovenstående afsnit?==&lt;br /&gt;
Måden man gør det på er ved at sende et signal ud med en fast frekvens, hvor man så lader signalet være højt i en vis procentdel af tiden og lav i resten af tiden.&lt;br /&gt;
&lt;br /&gt;
Herunder er der illustreret 4 forskellige signaler på et PWM-output. Signalet kan helt i yderområderne være lavet hele tiden (0%) og højt hele tiden (100%).&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM-values.png|4 PWM signaler med forskellig værdi, fra 5% til 90%]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;4 PWM signaler med forskellig værdi, fra 5% til 90%&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På den måde kan man bestemme hvilken gennemsnits-spænding der kommer ud.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af PWM signalet==&lt;br /&gt;
Man kan anvende sit PWM signal til mange formål; alt fra at dæmpe lyset i en lysdiode til at justere rotationshastigheden for en DC motors aksel. Da PWM signalet reelt er et digital signal der skifter mellem 0 V og 5 V skal man overveje om dette firkantsignal uden videre kan anvendes til det ønskede formål; Er det en lysdiode der skal dæmpes ned, er det måske OK at den står og flimrer lidt, hvor imod det kan give problemer hvis PWM signalet skal anvendes som en konstant, præcis spænding i et målekredsløb. Gælder sidstnævnte, kan man tilføje en analog filtrering mellem PWM signalet og målekredsløbet (se afsnittet [[Analog filtrering]]).&lt;br /&gt;
&lt;br /&gt;
Anvender man PWM signalet til en elmotor, så vil motorens inertimoment ved rotation fungere som filter, der glatter firkantsignalet ud. Inertimomentet kan beskrives som &amp;lt;i&amp;gt;trægheden&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;modviljen&amp;lt;/i&amp;gt; til at ændre på rotationsbevægelsen og afhænger bl.a. af massen af det der roterer (jo større masse, desto større inertimoment, og dermed større modvilje til at ændre rotationsbevægelsen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Analog filtrering===&lt;br /&gt;
For at signalet skal blive en fornuftig DC-spænding, så laves en analog filtrering af signalet med er RC-led som vist her:&lt;br /&gt;
&lt;br /&gt;
[[image:PWM-diagram.PNG]]&lt;br /&gt;
&lt;br /&gt;
==PWM på Arduino==&lt;br /&gt;
Et Arduino Uno board har seks porte der kan sættes op til at lave PWM; Det er portben 3, 5, 6, 9, 10 og 11, der er angivet med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|600px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge PWM udgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programkoden der skal til for at anvende PWM på et af de &#039;&#039;&#039;~&#039;&#039;&#039;-mærkede outputben er at skrive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  analogWrite(analogOutPin, outputValue);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;analogOutPin&#039;&#039;&#039; skal sættes til portbensnummeret. Benet skal være sat op til output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;outputValue&#039;&#039;&#039; skal være af typen byte, så værdien ligger fra 0 til 255. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med konstant 2,5 V===&lt;br /&gt;
Ønsker man en konstant spænding på 2,5 V fra en af PWM portbenene, kan man skrive som følger. I eksemplet anvendes portben 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
  {&lt;br /&gt;
     pinMode(pwmPin, OUTPUT); &lt;br /&gt;
     analogWrite(pwmPin, 127);   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void loop()&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da 2,5 V er den halve spænding af Arduinoboardets 5 V spænding, sættes &#039;&#039;&#039;outputValue&#039;&#039;&#039; værdien til den halve værdi af maksimum, hvilket er 127.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med variabel spænding===&lt;br /&gt;
Hvis man ønsker at justere outputspændingen ud fra positionen på et potentiometer, kan man koble potentiometrets midterste ben til et analog input på Arduinoboardet, og de to andre ben til henholdsvis +5 V og GND; Dermed kan inputspændingen læses, og bruges til at justere outputspændingen på det ønskede portben.&lt;br /&gt;
&lt;br /&gt;
Bemærk, at Arduino Uno har en 10 bit ADC &amp;lt;b&amp;gt;(link til ADC)&amp;lt;/b&amp;gt;, og dermed arbejder med heltalsværdier mellem 0 og 1023, mens PWM på Arduino Uno er i 8 bit, og dermed heltalsværdier mellem 0 og 255. Det betyder, at når man læser et heltal der kan ligge mellem 0 og 1023, skal det konverteres ned i talrummet af heltal mellem 0 og 255. Til dette anvendes funktionen &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; er værdien der skal konverteres (her værdien læst fra potentiometret)&lt;br /&gt;
&#039;&#039;&#039;fromLow&#039;&#039;&#039; er den mindste værdi value kan antage (her 0)&lt;br /&gt;
&#039;&#039;&#039;fromHigh&#039;&#039;&#039; er den højeste værdi value kan antage (her 1023)&lt;br /&gt;
&#039;&#039;&#039;toLow&#039;&#039;&#039; er den laveste værdi der skal konverteres til (her 0)&lt;br /&gt;
&#039;&#039;&#039;toHigh&#039;&#039;&#039; er den højeste værdi der skal konverteres til (her 255)&lt;br /&gt;
&lt;br /&gt;
I eksemplet her anvendes portben 3 til PWM output, mens det analoge signal fra potentiometret læses fra analog port A0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
  const int aInput = A0;&lt;br /&gt;
&lt;br /&gt;
  int analogInputValue;&lt;br /&gt;
  int pwmValue;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
 {&lt;br /&gt;
    pinMode(pwmPin, OUTPUT); &lt;br /&gt;
    pinMode(aInput, INPUT);   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    analogInputValue = analogRead(aInput);&lt;br /&gt;
    pwmValue = map(analogInputValue, 0, 1023, 0, 255);&lt;br /&gt;
    analogWrite(pwmPin, pwmValue);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Strømtræk fra en PWM port på Arduinoboardet===&lt;br /&gt;
Da et Arduinoboard i følge specifikationerne&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt; maksimalt kan levere 20 mA fra en output port, kan man være nød til at anvende en transistor mellem portbenet på Arduinoboardet og den komponent der skal drives. &amp;lt;b&amp;gt;INDSÆT LINK/REFERENCE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PWM på PIC==&lt;br /&gt;
===Eksempel på output===&lt;br /&gt;
&lt;br /&gt;
Hvis man stiller CCPR1L / outputValue til 64, så kan man måle det viste:&lt;br /&gt;
&lt;br /&gt;
[[Image:osc-pwm-25.png]]&lt;br /&gt;
&lt;br /&gt;
Den nederste kurveform er et 5V output målt på P1A, hvor det er højt i ca. 0.26 ms ud af de i alt 1.02 ms som periodetiden er. Det er ca. 25 % af tiden, og som det kan ses på den blå kurve øverst, så ligger den udglattede udgangsspænding på ca. 25 % af de 5V (1.25V), men i praksis er spændingen lidt lavere, som her måles til 1.16V. Det skyldes at Forsyningspændingen ligger lidt under 5V.&lt;br /&gt;
&lt;br /&gt;
===Koden til PWM på PIC===&lt;br /&gt;
Alle [[PIC-type]]r kan i princippet lave PWM, men det gøres lettest i en PIC der kan det som indbygget standard.&lt;br /&gt;
&lt;br /&gt;
Til [[PIC16F684]] er der lavet et eksempel på [[Media:PWM.zip|PWM-kode]], der skitseres her.&lt;br /&gt;
&lt;br /&gt;
Der vælges at lave output på P1A, der er pin_C5, så denne skal indstilles til output.&lt;br /&gt;
&lt;br /&gt;
Herefter initialiseres CCP1CON registeret til kun lave output på P1A og at det er PWN der skal anvendes. Derefter sættes timer 2 op, så den fungerer - her er valgt 4 gange prescaler. Koden skrives som:&lt;br /&gt;
&lt;br /&gt;
 -- Initialisering af PWM&lt;br /&gt;
 CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
 T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
Registeret PR2 sættes til sin maksimale værdi, så der kommer maksimal opløsning på PWM-signalet&lt;br /&gt;
&lt;br /&gt;
 PR2 = 255&lt;br /&gt;
&lt;br /&gt;
Tilsammen giver disse to ting at frekvensen på PWM-signalet bliver ca. 1 kHz ved et oscillatorfrekvens på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
====Værdien der giver PWM outputtet====&lt;br /&gt;
Når det ovenstående er indstillet, så kan man blot skrive en værdi til CCPR1L på mellem 0 og 255, hvilket så giver værdien i forhold til de 255.&lt;br /&gt;
&lt;br /&gt;
Der ligger faktisk 2 bit ekstra i opløsning, som skal angives i de 2 lave bit af CCP1CON, så man kan angive totalt set en 10 bit værdi.&lt;br /&gt;
&lt;br /&gt;
===PWM til at danne forskellige frekvenser===&lt;br /&gt;
I stedet for at anvende PWM til at lave en tilnærmet DC-værdi med, så kan man også få PWM-udgangen til at danne en fast frekvens, hvor man så kan indstille duty-cycle til 50%.&lt;br /&gt;
&lt;br /&gt;
Ved at rette på periode-tiden kan man få udgangen til at lave forskellige frekvenser.&lt;br /&gt;
&lt;br /&gt;
En simpel måde at gøre det på er at sætte post- og pre-scaler til faste værdier, og så kun rette på PR2 og CCPR1L, som det er illustreret her ved hjælp af proceduren lyd, der tager periodetiden som parameter. Med denne initialisering kan der dannes frekvenser fra 1 kHz og opad.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
PR2 = 255&lt;br /&gt;
T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
-- Procedure der sætter en frekvens på PWM&lt;br /&gt;
-- 255 giver ca. 1 kHz&lt;br /&gt;
-- 128 giver ca. 2 kHz&lt;br /&gt;
procedure lyd (byte in periode) is&lt;br /&gt;
   PR2 = periode&lt;br /&gt;
   CCPR1L = periode / 2&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at dække et bredere frekvensområde, så skal man indstille både PR2, CCPR1L og T2CON, for at kunne danne frekvenserne præcist nok. Dette er illustreret i følgende kode (ikke testet):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
&lt;br /&gt;
-- Procedure der kan lave frekvenser fra 244 Hz til 20000 Hz ved en oscillatorfrekvens på 4MHz&lt;br /&gt;
-- Koden er tilpasser minimum frekvensen efter oscillatorfrekvensen&lt;br /&gt;
--   Oscillator    Minimum&lt;br /&gt;
--    4_000_000      244&lt;br /&gt;
--    8_000_000      488&lt;br /&gt;
--   20_000_000     1219&lt;br /&gt;
procedure tone(word in frekvens) is&lt;br /&gt;
   -- Perioden beregnes som PR2 = F_OSC / (4 * Frekvens * Prescaler) - 1&lt;br /&gt;
   -- Det skal bemærkes at post-scaleren ikke regnes med i dannelsen af frekvensen&lt;br /&gt;
   var dword periode = target_clock / 2 -- Gem den sidste halvering til afrunding&lt;br /&gt;
   if frekvens &amp;lt;= (target_clock / 16416) then     -- Så lave frekvenser understøttes ikke&lt;br /&gt;
      return&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 4104) then  -- Frekvenser der håndteres med prescaler 16&lt;br /&gt;
      T2Con = 0b0110&lt;br /&gt;
      periode = periode / 16&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 1026) then -- Frekvenser der håndteres med prescaler 4&lt;br /&gt;
      T2Con = 0b0101&lt;br /&gt;
      periode = periode / 4&lt;br /&gt;
   else                       -- Ved Prescaler = 1 rettes periodetiden ikke&lt;br /&gt;
      T2CON = 0b0100&lt;br /&gt;
   end if&lt;br /&gt;
&lt;br /&gt;
   periode = periode / frekvens -- Midlertidig beregning af perioden&lt;br /&gt;
   periode = (periode + 1) / 2  -- Division med afrunding i stedet for trunkering&lt;br /&gt;
   CCPR1L = byte(periode/2)     -- Lav ca. 50% dutycycle&lt;br /&gt;
   periode = periode - 1        -- Den sidste tilpasning efter formlen&lt;br /&gt;
   PR2 = byte(periode)&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test-koden og et regneark der illustrerer hvordan tonerne beregnes ligger i en [[Media:PWM-tone.zip|ZIP-fil]].&lt;br /&gt;
&lt;br /&gt;
Koden tester først om indstillingen kan laves ved den givne oscillatorfrekvens, og hvis den kan det, så indstilles prescaleren, så PR2 får størst mulig værdi, uden at der kommer overflow. Der forberedes også beregningen af periodetiden.&lt;br /&gt;
&lt;br /&gt;
Periodetiden beregnes ud fra frekvensen, og der tilpasses formlen for periodetiden. Endelig laves en afrunding af resultatet, i stedet for en normal truckering som man ellers gør i JAL divisioner. Dutycycle sættes til ca. 50% ved at sætte CCPR1L til halvdelen af PR2. &lt;br /&gt;
&lt;br /&gt;
Ved disse beregninger skulle frekvensen gerne ramme inden for +/- 1% på frekvenser fra 244 Hz til 20000 Hz ved oscillatorfrekvensen på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
===Andre PIC-typers PWM===&lt;br /&gt;
Der er ikke angivet hvordan koden skrives til andre PIC-typer, men princippet er nogenlunde det samme. Først skal man lave indstillingerne der angiver hvilke output der skal lave PWM, og så skal man sætte PIC&#039;en op så der er noget der angiver periodetiden, og noget der angiver hvor stor en del af periodetiden der skal være højt signal.&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{logik-begreber}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog]]&lt;br /&gt;
[[Kategori:Digital]]&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=PWM&amp;diff=4995</id>
		<title>PWM</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=PWM&amp;diff=4995"/>
		<updated>2022-11-22T10:13:34Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Tilføjelser af Henrik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puls Bredde Modulation (eller Puls Width Modulation - deraf PWM) er en måde at lave et signal der kan give en analog værdi ved hjælp af et digitalt output.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
Hvis man tilslutter en 12 V DC motor til en strømforsyning, og langsomt skruer op for spændingen, kan man se, at DC motorens rotationshastighed afhænger af hvor høj spændingen er. Når spændingen er 0 V roterer motorens aksel ikke, og når spændingen når 12 V, roterer DC motorens aksel med maksimal hastighed. Det ses dermed, at man kan regulere DC motorens rotationshastighed ud fra den analoge spænding den forsynes med.&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at regulere DC motoren fra mikroprocessoren, har man behov for at lave en variabel spænding. Da mikroprocessorens output arbejder digitalt, og vi har behov for en analog spænding vi kan variere, vil vi gøre brug af metoden der hedder &amp;lt;i&amp;gt;pulse width modulation&amp;lt;/i&amp;gt; (dvs. &amp;lt;i&amp;gt;puls bredde modulation&amp;lt;/i&amp;gt; eller bare PWM). PWM laver en variabel spænding ud fra digitale pulser.&lt;br /&gt;
&lt;br /&gt;
Hvis man sætter et outputben på mikroprocessoren høj, vil man på benet kunne måle en spænding på 5 V. Figuren herunder viser hvordan dette ser ud målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_01_max.png|500px|Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er høj hele tiden, så der måles konstant 5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet sætter outputbenet lavt, vil man kunne måle en spænding på 0 V. Dette er vist herunder målt over tid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_02_min.png|500px|Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor er lav hele tiden, så der måles konstant 0 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man skifter mellem høj og lav, og gør det f.eks. med en frekvens på 500 Hz (dvs. 500 perioder pr. sekund), og lader benet være højt 1 msek, og derefter lavt i 1 msek, så vil man kunne måle en spænding på 2,5 V på benet. Dette ses på figuren nedenfor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_03_half.png|500px|Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter konstant mellem høj og lav; samme tid høj som lav, så der måles den halve forsyningsspænding, altså 2,5 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Er det i stedet for 0,5 msek benet er højt, og 1,5 msek benet er lavt (dvs. højt &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden, og lavt &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden), så bliver middelspændingen &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af de 5 V = 1,25 V. Dette ses på figuren herunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM_04_quarter.png|500px|Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Outputben på mikroprocessor skifter mellem høj og lav; &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af tiden er høj og &amp;lt;math&amp;gt;\text{¾}&amp;lt;/math&amp;gt; af tiden lav. Dermed måles &amp;lt;math&amp;gt;\text{¼}&amp;lt;/math&amp;gt; af forsyningsspænding, altså 1,25 V.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kan altså bestemme middelspændingen på outputputtet ved at justere hvor lang tid benet henholdsvis er højt og lavt. For at man ikke oplever at spændingen ”hopper” op og ned, skal skiftene ske hurtigt. Hvis det for eksempel sker med en frekvens på 500 Hz (dvs. at en periode varer 2 msek), så opleves spændingen som værende konstant.&lt;br /&gt;
 &lt;br /&gt;
==Princippet - Er det OK dækket i ovenstående afsnit?==&lt;br /&gt;
Måden man gør det på er ved at sende et signal ud med en fast frekvens, hvor man så lader signalet være højt i en vis procentdel af tiden og lav i resten af tiden.&lt;br /&gt;
&lt;br /&gt;
Herunder er der illustreret 4 forskellige signaler på et PWM-output. Signalet kan helt i yderområderne være lavet hele tiden (0%) og højt hele tiden (100%).&lt;br /&gt;
&lt;br /&gt;
[[Fil:PWM-values.png|4 PWM signaler med forskellig værdi, fra 5% til 90%]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;4 PWM signaler med forskellig værdi, fra 5% til 90%&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På den måde kan man bestemme hvilken gennemsnits-spænding der kommer ud.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af PWM signalet==&lt;br /&gt;
Man kan anvende sit PWM signal til mange formål; alt fra at dæmpe lyset i en lysdiode til at justere rotationshastigheden for en DC motors aksel. Da PWM signalet reelt er et digital signal der skifter mellem 0 V og 5 V skal man overveje om dette firkantsignal uden videre kan anvendes til det ønskede formål; Er det en lysdiode der skal dæmpes ned, er det måske OK at den står og flimrer lidt, hvor imod det kan give problemer hvis PWM signalet skal anvendes som en konstant, præcis spænding i et målekredsløb. Gælder sidstnævnte, kan man tilføje en analog filtrering mellem PWM signalet og målekredsløbet (se afsnittet nedenfor).&lt;br /&gt;
&lt;br /&gt;
Anvender man PWM signalet til en elmotor, så vil motorens inertimoment ved rotation fungere som filter, der glatter firkantsignalet ud. Inertimomentet kan beskrives som &amp;lt;i&amp;gt;trægheden&amp;lt;/i&amp;gt; eller &amp;lt;i&amp;gt;modviljen&amp;lt;/i&amp;gt; til at ændre på rotationsbevægelsen og afhænger bl.a. af massen af det der roterer (jo større masse, desto større inertimoment, og dermed større modvilje til at ændre rotationsbevægelsen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analog filtrering===&lt;br /&gt;
For at signalet skal blive en fornuftig DC-spænding, så laves en analog filtrering af signalet med er RC-led som vist her:&lt;br /&gt;
&lt;br /&gt;
[[image:PWM-diagram.PNG]]&lt;br /&gt;
&lt;br /&gt;
==PWM på Arduino==&lt;br /&gt;
Et Arduino Uno board har seks porte der kan sættes op til at lave PWM; Det er portben 3, 5, 6, 9, 10 og 11, der er angivet med &#039;&#039;&#039;~&#039;&#039;&#039; på boardet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fil:Arduino-digital-ports.png|600px|Arduino UNO Rev. 3 Analoge udgange i de Digitale I/O]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Arduino UNO rev. 3 Analoge PWM udgange&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programkoden der skal til for at anvende PWM på et af de &#039;&#039;&#039;~&#039;&#039;&#039;-mærkede outputben er at skrive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  analogWrite(analogOutPin, outputValue);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;analogOutPin&#039;&#039;&#039; skal sættes til portbensnummeret. Benet skal være sat op til output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;outputValue&#039;&#039;&#039; skal være af typen byte, så værdien ligger fra 0 til 255. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med konstant 2,5 V===&lt;br /&gt;
Ønsker man en konstant spænding på 2,5 V fra en af PWM portbenene, kan man skrive som følger. I eksemplet anvendes portben 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
  {&lt;br /&gt;
     pinMode(pwmPin, OUTPUT); &lt;br /&gt;
     analogWrite(pwmPin, 127);   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void loop()&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da 2,5 V er den halve spænding af Arduinoboardets 5 V spænding, sættes &#039;&#039;&#039;outputValue&#039;&#039;&#039; værdien til den halve værdi af maksimum, hvilket er 127.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Programeksempel med variabel spænding===&lt;br /&gt;
Hvis man ønsker at justere outputspændingen ud fra positionen på et potentiometer, kan man koble potentiometrets midterste ben til et analog input på Arduinoboardet, og de to andre ben til henholdsvis +5 V og GND; Dermed kan inputspændingen læses, og bruges til at justere outputspændingen på det ønskede portben.&lt;br /&gt;
&lt;br /&gt;
Bemærk, at Arduino Uno har en 10 bit ADC &amp;lt;b&amp;gt;(link til ADC)&amp;lt;/b&amp;gt;, og dermed arbejder med heltalsværdier mellem 0 og 1023, mens PWM på Arduino Uno er i 8 bit, og dermed heltalsværdier mellem 0 og 255. Det betyder, at når man læser et heltal der kan ligge mellem 0 og 1023, skal det konverteres ned i talrummet af heltal mellem 0 og 255. Til dette anvendes funktionen &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  map(value, fromLow, fromHigh, toLow, toHigh)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; er værdien der skal konverteres (her værdien læst fra potentiometret)&lt;br /&gt;
&#039;&#039;&#039;fromLow&#039;&#039;&#039; er den mindste værdi value kan antage (her 0)&lt;br /&gt;
&#039;&#039;&#039;fromHigh&#039;&#039;&#039; er den højeste værdi value kan antage (her 1023)&lt;br /&gt;
&#039;&#039;&#039;toLow&#039;&#039;&#039; er den laveste værdi der skal konverteres til (her 0)&lt;br /&gt;
&#039;&#039;&#039;toHigh&#039;&#039;&#039; er den højeste værdi der skal konverteres til (her 255)&lt;br /&gt;
&lt;br /&gt;
I eksemplet her anvendes portben 3 til PWM output, mens det analoge signal fra potentiometret læses fra analog port A0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  const int pwmPin = 3;&lt;br /&gt;
  const int aInput = A0;&lt;br /&gt;
&lt;br /&gt;
  int analogInputValue;&lt;br /&gt;
  int pwmValue;&lt;br /&gt;
&lt;br /&gt;
  void setup()&lt;br /&gt;
 {&lt;br /&gt;
    pinMode(pwmPin, OUTPUT); &lt;br /&gt;
    pinMode(aInput, INPUT);   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    analogInputValue = analogRead(aInput);&lt;br /&gt;
    pwmValue = map(analogInputValue, 0, 1023, 0, 255);&lt;br /&gt;
    analogWrite(pwmPin, pwmValue);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Strømtræk fra en PWM port på Arduinoboardet===&lt;br /&gt;
Da et Arduinoboard i følge specifikationerne&amp;lt;ref&amp;gt;[https://store.arduino.cc/arduino-uno-rev3 Arduino Uno Rev3.”]&amp;lt;/ref&amp;gt; maksimalt kan levere 20 mA fra en output port, kan man være nød til at anvende en transistor mellem portbenet på Arduinoboardet og den komponent der skal drives. &amp;lt;b&amp;gt;INDSÆT LINK/REFERENCE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PWM på PIC==&lt;br /&gt;
===Eksempel på output===&lt;br /&gt;
&lt;br /&gt;
Hvis man stiller CCPR1L / outputValue til 64, så kan man måle det viste:&lt;br /&gt;
&lt;br /&gt;
[[Image:osc-pwm-25.png]]&lt;br /&gt;
&lt;br /&gt;
Den nederste kurveform er et 5V output målt på P1A, hvor det er højt i ca. 0.26 ms ud af de i alt 1.02 ms som periodetiden er. Det er ca. 25 % af tiden, og som det kan ses på den blå kurve øverst, så ligger den udglattede udgangsspænding på ca. 25 % af de 5V (1.25V), men i praksis er spændingen lidt lavere, som her måles til 1.16V. Det skyldes at Forsyningspændingen ligger lidt under 5V.&lt;br /&gt;
&lt;br /&gt;
===Koden til PWM på PIC===&lt;br /&gt;
Alle [[PIC-type]]r kan i princippet lave PWM, men det gøres lettest i en PIC der kan det som indbygget standard.&lt;br /&gt;
&lt;br /&gt;
Til [[PIC16F684]] er der lavet et eksempel på [[Media:PWM.zip|PWM-kode]], der skitseres her.&lt;br /&gt;
&lt;br /&gt;
Der vælges at lave output på P1A, der er pin_C5, så denne skal indstilles til output.&lt;br /&gt;
&lt;br /&gt;
Herefter initialiseres CCP1CON registeret til kun lave output på P1A og at det er PWN der skal anvendes. Derefter sættes timer 2 op, så den fungerer - her er valgt 4 gange prescaler. Koden skrives som:&lt;br /&gt;
&lt;br /&gt;
 -- Initialisering af PWM&lt;br /&gt;
 CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
 T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
Registeret PR2 sættes til sin maksimale værdi, så der kommer maksimal opløsning på PWM-signalet&lt;br /&gt;
&lt;br /&gt;
 PR2 = 255&lt;br /&gt;
&lt;br /&gt;
Tilsammen giver disse to ting at frekvensen på PWM-signalet bliver ca. 1 kHz ved et oscillatorfrekvens på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
====Værdien der giver PWM outputtet====&lt;br /&gt;
Når det ovenstående er indstillet, så kan man blot skrive en værdi til CCPR1L på mellem 0 og 255, hvilket så giver værdien i forhold til de 255.&lt;br /&gt;
&lt;br /&gt;
Der ligger faktisk 2 bit ekstra i opløsning, som skal angives i de 2 lave bit af CCP1CON, så man kan angive totalt set en 10 bit værdi.&lt;br /&gt;
&lt;br /&gt;
===PWM til at danne forskellige frekvenser===&lt;br /&gt;
I stedet for at anvende PWM til at lave en tilnærmet DC-værdi med, så kan man også få PWM-udgangen til at danne en fast frekvens, hvor man så kan indstille duty-cycle til 50%.&lt;br /&gt;
&lt;br /&gt;
Ved at rette på periode-tiden kan man få udgangen til at lave forskellige frekvenser.&lt;br /&gt;
&lt;br /&gt;
En simpel måde at gøre det på er at sætte post- og pre-scaler til faste værdier, og så kun rette på PR2 og CCPR1L, som det er illustreret her ved hjælp af proceduren lyd, der tager periodetiden som parameter. Med denne initialisering kan der dannes frekvenser fra 1 kHz og opad.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
PR2 = 255&lt;br /&gt;
T2CON = 0b_0000_0101&lt;br /&gt;
&lt;br /&gt;
-- Procedure der sætter en frekvens på PWM&lt;br /&gt;
-- 255 giver ca. 1 kHz&lt;br /&gt;
-- 128 giver ca. 2 kHz&lt;br /&gt;
procedure lyd (byte in periode) is&lt;br /&gt;
   PR2 = periode&lt;br /&gt;
   CCPR1L = periode / 2&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man ønsker at dække et bredere frekvensområde, så skal man indstille både PR2, CCPR1L og T2CON, for at kunne danne frekvenserne præcist nok. Dette er illustreret i følgende kode (ikke testet):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Initialisering af PWM&lt;br /&gt;
CCP1CON = 0b_0000_1100   -- P1A aktiv høj, resten inaktive&lt;br /&gt;
&lt;br /&gt;
-- Procedure der kan lave frekvenser fra 244 Hz til 20000 Hz ved en oscillatorfrekvens på 4MHz&lt;br /&gt;
-- Koden er tilpasser minimum frekvensen efter oscillatorfrekvensen&lt;br /&gt;
--   Oscillator    Minimum&lt;br /&gt;
--    4_000_000      244&lt;br /&gt;
--    8_000_000      488&lt;br /&gt;
--   20_000_000     1219&lt;br /&gt;
procedure tone(word in frekvens) is&lt;br /&gt;
   -- Perioden beregnes som PR2 = F_OSC / (4 * Frekvens * Prescaler) - 1&lt;br /&gt;
   -- Det skal bemærkes at post-scaleren ikke regnes med i dannelsen af frekvensen&lt;br /&gt;
   var dword periode = target_clock / 2 -- Gem den sidste halvering til afrunding&lt;br /&gt;
   if frekvens &amp;lt;= (target_clock / 16416) then     -- Så lave frekvenser understøttes ikke&lt;br /&gt;
      return&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 4104) then  -- Frekvenser der håndteres med prescaler 16&lt;br /&gt;
      T2Con = 0b0110&lt;br /&gt;
      periode = periode / 16&lt;br /&gt;
   elsif frekvens &amp;lt;= (target_clock / 1026) then -- Frekvenser der håndteres med prescaler 4&lt;br /&gt;
      T2Con = 0b0101&lt;br /&gt;
      periode = periode / 4&lt;br /&gt;
   else                       -- Ved Prescaler = 1 rettes periodetiden ikke&lt;br /&gt;
      T2CON = 0b0100&lt;br /&gt;
   end if&lt;br /&gt;
&lt;br /&gt;
   periode = periode / frekvens -- Midlertidig beregning af perioden&lt;br /&gt;
   periode = (periode + 1) / 2  -- Division med afrunding i stedet for trunkering&lt;br /&gt;
   CCPR1L = byte(periode/2)     -- Lav ca. 50% dutycycle&lt;br /&gt;
   periode = periode - 1        -- Den sidste tilpasning efter formlen&lt;br /&gt;
   PR2 = byte(periode)&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test-koden og et regneark der illustrerer hvordan tonerne beregnes ligger i en [[Media:PWM-tone.zip|ZIP-fil]].&lt;br /&gt;
&lt;br /&gt;
Koden tester først om indstillingen kan laves ved den givne oscillatorfrekvens, og hvis den kan det, så indstilles prescaleren, så PR2 får størst mulig værdi, uden at der kommer overflow. Der forberedes også beregningen af periodetiden.&lt;br /&gt;
&lt;br /&gt;
Periodetiden beregnes ud fra frekvensen, og der tilpasses formlen for periodetiden. Endelig laves en afrunding af resultatet, i stedet for en normal truckering som man ellers gør i JAL divisioner. Dutycycle sættes til ca. 50% ved at sætte CCPR1L til halvdelen af PR2. &lt;br /&gt;
&lt;br /&gt;
Ved disse beregninger skulle frekvensen gerne ramme inden for +/- 1% på frekvenser fra 244 Hz til 20000 Hz ved oscillatorfrekvensen på 4 MHz.&lt;br /&gt;
&lt;br /&gt;
===Andre PIC-typers PWM===&lt;br /&gt;
Der er ikke angivet hvordan koden skrives til andre PIC-typer, men princippet er nogenlunde det samme. Først skal man lave indstillingerne der angiver hvilke output der skal lave PWM, og så skal man sætte PIC&#039;en op så der er noget der angiver periodetiden, og noget der angiver hvor stor en del af periodetiden der skal være højt signal.&lt;br /&gt;
&lt;br /&gt;
{{Analog}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{logik-begreber}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Analog]]&lt;br /&gt;
[[Kategori:Digital]]&lt;br /&gt;
[[Kategori:Arduino Analog]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:PWM_04_quarter.png&amp;diff=4994</id>
		<title>Fil:PWM 04 quarter.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:PWM_04_quarter.png&amp;diff=4994"/>
		<updated>2022-11-22T08:44:24Z</updated>

		<summary type="html">&lt;p&gt;Hnl: PWM signal, output høj 1/4 af tiden, og lav 3/4 af tiden, 25% af spænding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
PWM signal, output høj 1/4 af tiden, og lav 3/4 af tiden, 25% af spænding&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:PWM_03_half.png&amp;diff=4993</id>
		<title>Fil:PWM 03 half.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:PWM_03_half.png&amp;diff=4993"/>
		<updated>2022-11-22T08:43:42Z</updated>

		<summary type="html">&lt;p&gt;Hnl: PWM signal, output skifter ligeligt mellem høj og lav, halv spænding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
PWM signal, output skifter ligeligt mellem høj og lav, halv spænding&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:PWM_02_min.png&amp;diff=4992</id>
		<title>Fil:PWM 02 min.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:PWM_02_min.png&amp;diff=4992"/>
		<updated>2022-11-22T08:43:06Z</updated>

		<summary type="html">&lt;p&gt;Hnl: PWM signal, output lav konstant, min&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
PWM signal, output lav konstant, min&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:PWM_01_max.png&amp;diff=4991</id>
		<title>Fil:PWM 01 max.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:PWM_01_max.png&amp;diff=4991"/>
		<updated>2022-11-22T08:42:45Z</updated>

		<summary type="html">&lt;p&gt;Hnl: PWM signal, output høj konstant, max&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beskrivelse ==&lt;br /&gt;
PWM signal, output høj konstant, max&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Kategori:Kraftmoment_og_gearing&amp;diff=4321</id>
		<title>Kategori:Kraftmoment og gearing</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Kategori:Kraftmoment_og_gearing&amp;diff=4321"/>
		<updated>2022-10-29T18:17:06Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Hvad er et kraftmoment? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Når man skal vælge en elmotor til at bevæge eller flytte noget i sin konstruktion, har man behov for at kende til det kraftmoment som elmotoren skal kunne levere.&lt;br /&gt;
&lt;br /&gt;
I dette afsnit forklares hvad et kraftmoment er, og hvordan gearing fungerer i forhold til kraftmomentet.&lt;br /&gt;
&lt;br /&gt;
==Hvad er et kraftmoment?==&lt;br /&gt;
Et kraftmoment (også kaldet drejningsmoment)opstår når en kraft påføres f.eks. en møtrik, vinkelret på f.eks. en fastnøgle som vist på figur 1. Kraftmomentet måles i enheden Nm, &#039;&#039;Newtonmeter&#039;&#039;, og betegnes med symbolet &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;. Kraftmomentet beregnes som &#039;&#039;&amp;lt;math&amp;gt;M = F \cdot r&amp;lt;/math&amp;gt;&#039;&#039;, hvor &#039;&#039;&amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt;&#039;&#039; er kraften i enheden N (Newton) og &#039;&#039;&amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;&#039;&#039; er afstanden, i enheden m (meter), fra centrum af møtrikken og ud til det sted hvor kraften påføres fastnøglen.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment.png|450px|Figur 1 Kraftmoment når møtrik spændes]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 1 Kraftmoment når møtrik spændes&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I det følgende eksempel betragtes to forskellige fastnøgler med længderne &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; henholdsvis &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;, hvor &amp;lt;math&amp;gt;r_2 = 2 \cdot r_1&amp;lt;/math&amp;gt;. De to fastnøgler ses på figur 2 og figur 3.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment arm1.png|300px|Figur 2 Eksempel med fastnøgle med længde r1]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 2 Eksempel med fastnøgle med længde &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment arm2.png|450px|Figur 3 Eksempel med fastnøgle med længde r2]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 3 Eksempel med fastnøgle med længde &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Momentet beregnes som &amp;lt;math&amp;gt;M = F \cdot r&amp;lt;/math&amp;gt;. Hvis man forestiller sig de to momenter vist på figur 2 henholdsvis figur 3 som ens: &amp;lt;math&amp;gt;M_1 = M_2&amp;lt;/math&amp;gt;, så vil det medføre at &amp;lt;math&amp;gt;F_2 = \frac{1}{2}\cdot F_1&amp;lt;/math&amp;gt;. Der skal dermed kun anvendes den halve kraft på fastnøglen på figur 3, som på fastnøglen på figur 2, for at opnå det samme kraftmoment ved møtrikken.&lt;br /&gt;
&lt;br /&gt;
Det kan vises ved et taleksempel hvor &amp;lt;math&amp;gt;F_1 = 250 N, r_1 = 0,4 m&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;M_1 = M_2 = 100 Nm&amp;lt;/math&amp;gt;. Ud fra sammenhængen mellem &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;, beregnes &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; til &amp;lt;math&amp;gt;r_2 = 2\cdot r_1 = 2\cdot 0,4m = 0,8m&amp;lt;/math&amp;gt;. Kraften &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt; isoleres &amp;lt;math&amp;gt;M_2 = F_2 \cdot r_2 \Leftrightarrow F_2 = \frac{M_2}{r_2}&amp;lt;/math&amp;gt; og kan herefter beregnes til &amp;lt;math&amp;gt;F_2 = \frac{100Nm}{0,8m} = 125N&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet forestiller sig, at de to kræfter vist på figur 2 henholdsvis figur 3 som ens: &amp;lt;math&amp;gt;F_1 = F_2&amp;lt;/math&amp;gt;, så vil det medføre at &amp;lt;math&amp;gt;M_2 = 2\cdot M_1&amp;lt;/math&amp;gt;. Det vil sige, at der opnås det dobbelte moment ved at anvende samme størrelse af kraft, men hvor fastnøglen har den dobbelte længde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://www.vecteezy.com/free-vector/web Web Vectors by Vecteezy]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Gearing==&lt;br /&gt;
Når man ønsker et større moment, end ens elmotor kan levere, kan man lave en udveksling mellem motorens aksel og dét der skal bevæges, hvorved et større moment kan opnås. &amp;quot;Prisen&amp;quot; for det større moment bliver en lavere rotationshastighed. &lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 1.png|400px|Figur X En gearing lavet med 2 tandhjul. Til højre ses en forenkling, hvor tandhjulene opfattes som cirkelskiver.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X En gearing lavet med 2 tandhjul. Til højre ses en forenkling, hvor tandhjulene opfattes som cirkelskiver.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På figur X ses i venstre side to tandhjul der går i indgreb med hinanden; Når det ene tandhjul roterer, roterer det andet tandhjul også. Dette er én måde at lave en gearing på. I højre side på figur 1 er tandhjulene forenklet til cirkelskiver. Man skal stadig forestille sig, at når den ene cirkelskive roterer, vil den anden cirkelskive også rotere; Om cirkelskiverne så er tandhjul der er i indgreb med hinanden, eller cirkelskiverne er remskiver forbundet med en rem er der ikke taget stilling til.&lt;br /&gt;
&lt;br /&gt;
Hvis man forestiller sig, at den lille grønne cirkelskive sidder på en motors aksel, så når motorens aksel roterer, vil den grønne cirkelskive også rotere, kan man opskrive følgende omkring kraftmomentet: &#039;&#039;&amp;lt;math&amp;gt;M_1 = F_1 \cdot r_1&amp;lt;/math&amp;gt;&#039;&#039;, hvor &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt; er motorens moment, &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; er den kraft der kan leveres vinkelret på cirkelskiven, og &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; er afstanden fra centrum af cirkelskiven til cirkelperiferien. Dette ses på figur X+1.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 2.png|150px|Figur X+1 Motoren driver cirkelskiven, og motorens moment &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, yder en kraft &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; i afstanden &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; fra motorens aksel.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X+1 Motoren driver cirkelskiven, og motorens moment &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, yder en kraft &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; i afstanden &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; fra motorens aksel.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Når motorens aksel roterer, roterer den grønne cirkelskive, og tager man den hvide cirkelskive med og forestiller sig den forbundet med den grønne cirkelskive (som tandhjul i indgreb eller forbundet via en rem), så vil den hvide cirkelskive også rotere; Den drives af den kraft &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; som den grønne cirkelskive leverer. På figur X+2 ses dette. Her er kraften på den hvide cirkelskive &amp;lt;math&amp;gt;F_2 = F_1&amp;lt;/math&amp;gt;. Det vil sige, at man her i eksemplet ikke regner med tab ved kraftoverførslen.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 3.png|300px|Figur X+2 Kraften &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; fra den grønne cirkelskive overføres som &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt; på den hvide cirkelskive. Dette medfører et kraftmoment &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt; omkring akslen på den hvide cirkelskive.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X+2 Kraften &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; fra den grønne cirkelskive overføres som &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt; på den hvide cirkelskive. Dette medfører et kraftmoment &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt; omkring akslen på den hvide cirkelskive.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kraftmomentet omkring akslen på den hvide cirkelskive, &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt;, beregnes som: &#039;&#039;&amp;lt;math&amp;gt;M_2 = F_2 \cdot r_2&amp;lt;/math&amp;gt;&#039;&#039;, hvor &amp;lt;math&amp;gt;F_2 = F_1&amp;lt;/math&amp;gt;, og &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; er afstanden fra centrum af den hvide cirkelskive ud til cirkelperiferien.&lt;br /&gt;
&lt;br /&gt;
Kender man motorens moment &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt; og afstanden &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt;, kan &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; isoleres og indsættes i beregningen af &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt; på &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt;&#039;s plads:  &#039;&#039;&amp;lt;math&amp;gt;M_2 = \frac{M_1}{r_1} \cdot r_2 = M_1 \cdot \frac{r_2}{r_1}&amp;lt;/math&amp;gt;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Når den grønne cirkelskive har roteret 1 omgang, har den hvide cirkelskive roteret &amp;lt;math&amp;gt;\frac{r_1}{r_2}&amp;lt;/math&amp;gt; omgang. &lt;br /&gt;
&lt;br /&gt;
Hvis &amp;lt;math&amp;gt;r_2 &amp;gt; r_1&amp;lt;/math&amp;gt;, så bliver &amp;lt;math&amp;gt;M_2 &amp;gt; M_1&amp;lt;/math&amp;gt;, mens rotationshastigheden på den hvide cirkelskive sænkes og kun kører &amp;lt;math&amp;gt;\frac{r_1}{r_2}&amp;lt;/math&amp;gt; i forhold til den grønne cirkelskive.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://www.vecteezy.com/free-vector/web Web Vectors by Vecteezy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategori:El-Fysik]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Fil:Gearing_1.png&amp;diff=4320</id>
		<title>Fil:Gearing 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Fil:Gearing_1.png&amp;diff=4320"/>
		<updated>2022-10-29T18:14:04Z</updated>

		<summary type="html">&lt;p&gt;Hnl: Hnl lagde en ny udgave af Fil:Gearing 1.png op&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Kategori:Kraftmoment_og_gearing&amp;diff=4319</id>
		<title>Kategori:Kraftmoment og gearing</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Kategori:Kraftmoment_og_gearing&amp;diff=4319"/>
		<updated>2022-10-28T19:44:10Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Gearing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Når man skal vælge en elmotor til at bevæge eller flytte noget i sin konstruktion, har man behov for at kende til det kraftmoment som elmotoren skal kunne levere.&lt;br /&gt;
&lt;br /&gt;
I dette afsnit forklares hvad et kraftmoment er, og hvordan gearing fungerer i forhold til kraftmomentet.&lt;br /&gt;
&lt;br /&gt;
==Hvad er et kraftmoment?==&lt;br /&gt;
Et kraftmoment (også kaldet drejningsmoment)opstår når en kraft påføres f.eks. en møtrik, vinkelret på f.eks. en fastnøgle som vist på figur 1. Kraftmomentet måles i enheden Nm, &#039;&#039;Newtonmeter&#039;&#039;, og betegnes med symbolet &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;. Kraftmomentet beregnes som &#039;&#039;&amp;lt;math&amp;gt;M = F \cdot r&amp;lt;/math&amp;gt;&#039;&#039;, hvor &#039;&#039;&amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt;&#039;&#039; er kraften i enheden N (Newton) og &#039;&#039;&amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;&#039;&#039; er afstanden, i enheden m (meter), fra centrum af møtrikken og ud til det sted hvor kraften påføres fastnøglen.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment.png|500px|Figur 1 Kraftmoment når møtrik spændes]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 1 Kraftmoment når møtrik spændes&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I det følgende eksempel betragtes to forskellige fastnøgler med længderne &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; henholdsvis &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;, hvor &amp;lt;math&amp;gt;r_2 = 2 \cdot r_1&amp;lt;/math&amp;gt;. De to fastnøgler ses på figur 2 og figur 3.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment arm1.png|300px|Figur 2 Eksempel med fastnøgle med længde r1]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 2 Eksempel med fastnøgle med længde &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment arm2.png|450px|Figur 3 Eksempel med fastnøgle med længde r2]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 3 Eksempel med fastnøgle med længde &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Momentet beregnes som &amp;lt;math&amp;gt;M = F \cdot r&amp;lt;/math&amp;gt;. Hvis man forestiller sig de to momenter vist på figur 2 henholdsvis figur 3 som ens: &amp;lt;math&amp;gt;M_1 = M_2&amp;lt;/math&amp;gt;, så vil det medføre at &amp;lt;math&amp;gt;F_2 = \frac{1}{2}\cdot F_1&amp;lt;/math&amp;gt;. Der skal dermed kun anvendes den halve kraft på fastnøglen på figur 3, som på fastnøglen på figur 2, for at opnå det samme kraftmoment ved møtrikken.&lt;br /&gt;
&lt;br /&gt;
Det kan vises ved et taleksempel hvor &amp;lt;math&amp;gt;F_1 = 250 N, r_1 = 0,4 m&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;M_1 = M_2 = 100 Nm&amp;lt;/math&amp;gt;. Ud fra sammenhængen mellem &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;, beregnes &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; til &amp;lt;math&amp;gt;r_2 = 2\cdot r_1 = 2\cdot 0,4m = 0,8m&amp;lt;/math&amp;gt;. Kraften &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt; isoleres &amp;lt;math&amp;gt;M_2 = F_2 \cdot r_2 \Leftrightarrow F_2 = \frac{M_2}{r_2}&amp;lt;/math&amp;gt; og kan herefter beregnes til &amp;lt;math&amp;gt;F_2 = \frac{100Nm}{0,8m} = 125N&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet forestiller sig, at de to kræfter vist på figur 2 henholdsvis figur 3 som ens: &amp;lt;math&amp;gt;F_1 = F_2&amp;lt;/math&amp;gt;, så vil det medføre at &amp;lt;math&amp;gt;M_2 = 2\cdot M_1&amp;lt;/math&amp;gt;. Det vil sige, at der opnås det dobbelte moment ved at anvende samme størrelse af kraft, men hvor fastnøglen har den dobbelte længde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://www.vecteezy.com/free-vector/web Web Vectors by Vecteezy]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Gearing==&lt;br /&gt;
Når man ønsker et større moment, end ens elmotor kan levere, kan man lave en udveksling mellem motorens aksel og dét der skal bevæges, hvorved et større moment kan opnås. &amp;quot;Prisen&amp;quot; for det større moment bliver en lavere rotationshastighed. &lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 1.png|400px|Figur X En gearing lavet med 2 tandhjul. Til højre ses en forenkling, hvor tandhjulene opfattes som cirkelskiver.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X En gearing lavet med 2 tandhjul. Til højre ses en forenkling, hvor tandhjulene opfattes som cirkelskiver.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På figur X ses i venstre side to tandhjul der går i indgreb med hinanden; Når det ene tandhjul roterer, roterer det andet tandhjul også. Dette er én måde at lave en gearing på. I højre side på figur 1 er tandhjulene forenklet til cirkelskiver. Man skal stadig forestille sig, at når den ene cirkelskive roterer, vil den anden cirkelskive også rotere; Om cirkelskiverne så er tandhjul der er i indgreb med hinanden, eller cirkelskiverne er remskiver forbundet med en rem er der ikke taget stilling til.&lt;br /&gt;
&lt;br /&gt;
Hvis man forestiller sig, at den lille grønne cirkelskive sidder på en motors aksel, så når motorens aksel roterer, vil den grønne cirkelskive også rotere, kan man opskrive følgende omkring kraftmomentet: &#039;&#039;&amp;lt;math&amp;gt;M_1 = F_1 \cdot r_1&amp;lt;/math&amp;gt;&#039;&#039;, hvor &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt; er motorens moment, &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; er den kraft der kan leveres vinkelret på cirkelskiven, og &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; er afstanden fra centrum af cirkelskiven til cirkelperiferien. Dette ses på figur X+1.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 2.png|150px|Figur X+1 Motoren driver cirkelskiven, og motorens moment &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, yder en kraft &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; i afstanden &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; fra motorens aksel.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X+1 Motoren driver cirkelskiven, og motorens moment &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, yder en kraft &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; i afstanden &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; fra motorens aksel.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Når motorens aksel roterer, roterer den grønne cirkelskive, og tager man den hvide cirkelskive med og forestiller sig den forbundet med den grønne cirkelskive (som tandhjul i indgreb eller forbundet via en rem), så vil den hvide cirkelskive også rotere; Den drives af den kraft &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; som den grønne cirkelskive leverer. På figur X+2 ses dette. Her er kraften på den hvide cirkelskive &amp;lt;math&amp;gt;F_2 = F_1&amp;lt;/math&amp;gt;. Det vil sige, at man her i eksemplet ikke regner med tab ved kraftoverførslen.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 3.png|300px|Figur X+2 Kraften &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; fra den grønne cirkelskive overføres som &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt; på den hvide cirkelskive. Dette medfører et kraftmoment &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt; omkring akslen på den hvide cirkelskive.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X+2 Kraften &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; fra den grønne cirkelskive overføres som &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt; på den hvide cirkelskive. Dette medfører et kraftmoment &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt; omkring akslen på den hvide cirkelskive.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kraftmomentet omkring akslen på den hvide cirkelskive, &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt;, beregnes som: &#039;&#039;&amp;lt;math&amp;gt;M_2 = F_2 \cdot r_2&amp;lt;/math&amp;gt;&#039;&#039;, hvor &amp;lt;math&amp;gt;F_2 = F_1&amp;lt;/math&amp;gt;, og &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; er afstanden fra centrum af den hvide cirkelskive ud til cirkelperiferien.&lt;br /&gt;
&lt;br /&gt;
Kender man motorens moment &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt; og afstanden &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt;, kan &amp;lt;math&amp;gt;F_1&amp;lt;/math&amp;gt; isoleres og indsættes i beregningen af &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt; på &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt;&#039;s plads:  &#039;&#039;&amp;lt;math&amp;gt;M_2 = \frac{M_1}{r_1} \cdot r_2 = M_1 \cdot \frac{r_2}{r_1}&amp;lt;/math&amp;gt;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Når den grønne cirkelskive har roteret 1 omgang, har den hvide cirkelskive roteret &amp;lt;math&amp;gt;\frac{r_1}{r_2}&amp;lt;/math&amp;gt; omgang. &lt;br /&gt;
&lt;br /&gt;
Hvis &amp;lt;math&amp;gt;r_2 &amp;gt; r_1&amp;lt;/math&amp;gt;, så bliver &amp;lt;math&amp;gt;M_2 &amp;gt; M_1&amp;lt;/math&amp;gt;, mens rotationshastigheden på den hvide cirkelskive sænkes og kun kører &amp;lt;math&amp;gt;\frac{r_1}{r_2}&amp;lt;/math&amp;gt; i forhold til den grønne cirkelskive.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://www.vecteezy.com/free-vector/web Web Vectors by Vecteezy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategori:El-Fysik]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Kategori:Kraftmoment_og_gearing&amp;diff=4318</id>
		<title>Kategori:Kraftmoment og gearing</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Kategori:Kraftmoment_og_gearing&amp;diff=4318"/>
		<updated>2022-10-28T19:33:02Z</updated>

		<summary type="html">&lt;p&gt;Hnl: /* Hvad er et kraftmoment? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Når man skal vælge en elmotor til at bevæge eller flytte noget i sin konstruktion, har man behov for at kende til det kraftmoment som elmotoren skal kunne levere.&lt;br /&gt;
&lt;br /&gt;
I dette afsnit forklares hvad et kraftmoment er, og hvordan gearing fungerer i forhold til kraftmomentet.&lt;br /&gt;
&lt;br /&gt;
==Hvad er et kraftmoment?==&lt;br /&gt;
Et kraftmoment (også kaldet drejningsmoment)opstår når en kraft påføres f.eks. en møtrik, vinkelret på f.eks. en fastnøgle som vist på figur 1. Kraftmomentet måles i enheden Nm, &#039;&#039;Newtonmeter&#039;&#039;, og betegnes med symbolet &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;. Kraftmomentet beregnes som &#039;&#039;&amp;lt;math&amp;gt;M = F \cdot r&amp;lt;/math&amp;gt;&#039;&#039;, hvor &#039;&#039;&amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt;&#039;&#039; er kraften i enheden N (Newton) og &#039;&#039;&amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;&#039;&#039; er afstanden, i enheden m (meter), fra centrum af møtrikken og ud til det sted hvor kraften påføres fastnøglen.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment.png|500px|Figur 1 Kraftmoment når møtrik spændes]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 1 Kraftmoment når møtrik spændes&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I det følgende eksempel betragtes to forskellige fastnøgler med længderne &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; henholdsvis &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;, hvor &amp;lt;math&amp;gt;r_2 = 2 \cdot r_1&amp;lt;/math&amp;gt;. De to fastnøgler ses på figur 2 og figur 3.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment arm1.png|300px|Figur 2 Eksempel med fastnøgle med længde r1]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 2 Eksempel med fastnøgle med længde &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Fil:Moment arm2.png|450px|Figur 3 Eksempel med fastnøgle med længde r2]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur 3 Eksempel med fastnøgle med længde &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Momentet beregnes som &amp;lt;math&amp;gt;M = F \cdot r&amp;lt;/math&amp;gt;. Hvis man forestiller sig de to momenter vist på figur 2 henholdsvis figur 3 som ens: &amp;lt;math&amp;gt;M_1 = M_2&amp;lt;/math&amp;gt;, så vil det medføre at &amp;lt;math&amp;gt;F_2 = \frac{1}{2}\cdot F_1&amp;lt;/math&amp;gt;. Der skal dermed kun anvendes den halve kraft på fastnøglen på figur 3, som på fastnøglen på figur 2, for at opnå det samme kraftmoment ved møtrikken.&lt;br /&gt;
&lt;br /&gt;
Det kan vises ved et taleksempel hvor &amp;lt;math&amp;gt;F_1 = 250 N, r_1 = 0,4 m&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;M_1 = M_2 = 100 Nm&amp;lt;/math&amp;gt;. Ud fra sammenhængen mellem &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; og &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt;, beregnes &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; til &amp;lt;math&amp;gt;r_2 = 2\cdot r_1 = 2\cdot 0,4m = 0,8m&amp;lt;/math&amp;gt;. Kraften &amp;lt;math&amp;gt;F_2&amp;lt;/math&amp;gt; isoleres &amp;lt;math&amp;gt;M_2 = F_2 \cdot r_2 \Leftrightarrow F_2 = \frac{M_2}{r_2}&amp;lt;/math&amp;gt; og kan herefter beregnes til &amp;lt;math&amp;gt;F_2 = \frac{100Nm}{0,8m} = 125N&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hvis man i stedet forestiller sig, at de to kræfter vist på figur 2 henholdsvis figur 3 som ens: &amp;lt;math&amp;gt;F_1 = F_2&amp;lt;/math&amp;gt;, så vil det medføre at &amp;lt;math&amp;gt;M_2 = 2\cdot M_1&amp;lt;/math&amp;gt;. Det vil sige, at der opnås det dobbelte moment ved at anvende samme størrelse af kraft, men hvor fastnøglen har den dobbelte længde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://www.vecteezy.com/free-vector/web Web Vectors by Vecteezy]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Gearing==&lt;br /&gt;
Når man ønsker et større moment, end ens elmotor kan levere, kan man lave en udveksling mellem motorens aksel og dét der skal bevæges, hvorved et større moment kan opnås. &amp;quot;Prisen&amp;quot; for det større moment bliver en lavere rotationshastighed. &lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 1.png|400px|Figur X En gearing lavet med 2 tandhjul. Til højre ses en forenkling, hvor tandhjulene opfattes som cirkelskiver.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X En gearing lavet med 2 tandhjul. Til højre ses en forenkling, hvor tandhjulene opfattes som cirkelskiver.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
På figur X ses i venstre side to tandhjul der går i indgreb med hinanden; Når det ene tandhjul roterer, roterer det andet tandhjul også. Dette er én måde at lave en gearing på. I højre side på figur 1 er tandhjulene forenklet til cirkelskiver. Man skal stadig forestille sig, at når den ene cirkelskive roterer, vil den anden cirkelskive også rotere; Om cirkelskiverne så er tandhjul der er i indgreb med hinanden, eller cirkelskiverne er remskiver forbundet med en rem er der ikke taget stilling til.&lt;br /&gt;
&lt;br /&gt;
Hvis man forestiller sig, at den lille grønne cirkelskive sidder på en motors aksel, så når motorens aksel roterer, vil den grønne cirkelskive også rotere, kan man opskrive følgende omkring kraftmomentet: &#039;&#039;M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; = F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; * r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&#039;&#039;, hvor M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; er motorens moment, F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; er den kraft der kan leveres vinkelret på cirkelskiven, og r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; er afstanden fra centrum af cirkelskiven til cirkelperiferien. Dette ses på figur X+1.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 2.png|150px|Figur X+1 Motoren driver cirkelskiven, og motorens moment M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, yder en kraft F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; i afstanden r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; fra motorens aksel.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X+1 Motoren driver cirkelskiven, og motorens moment M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, yder en kraft F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; i afstanden r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; fra motorens aksel.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Når motorens aksel roterer, roterer den grønne cirkelskive, og tager man den hvide cirkelskive med og forestiller sig den forbundet med den grønne cirkelskive (som tandhjul i indgreb eller forbundet via en rem), så vil den hvide cirkelskive også rotere; Den drives af den kraft F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; som den grønne cirkelskive leverer. På figur X+2 ses dette. Her er kraften på den hvide cirkelskive F&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; = F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;. Det vil sige, at man her i eksemplet ikke regner med tab ved kraftoverførslen.&lt;br /&gt;
&lt;br /&gt;
[[Fil:Gearing 3.png|300px|Figur X+2 Kraften F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; fra den grønne cirkelskive overføres som F&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; på den hvide cirkelskive. Dette medfører et kraftmoment M&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; omkring akslen på den hvide cirkelskive.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Figur X+2 Kraften F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; fra den grønne cirkelskive overføres som F&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; på den hvide cirkelskive. Dette medfører et kraftmoment M&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; omkring akslen på den hvide cirkelskive.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kraftmomentet omkring akslen på den hvide cirkelskive, M&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, beregnes som: &#039;&#039;M&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; = F&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; * r&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&#039;&#039;, hvor F&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; = F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, og r&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; er afstanden fra centrum af den hvide cirkelskive ud til cirkelperiferien.&lt;br /&gt;
&lt;br /&gt;
Kender man motorens moment M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; og afstanden r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, kan F&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; isoleres og indsættes i beregningen af M&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; på F&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&#039;s plads:  &#039;&#039;M&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;/r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; * r&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; * r&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;/r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Når den grønne cirkelskive har roteret 1 omgang, har den hvide cirkelskive roteret r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;/r&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; omgang. &lt;br /&gt;
&lt;br /&gt;
Hvis r&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; &amp;gt; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, så bliver M&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; &amp;gt; M&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, mens rotationshastigheden på den hvide cirkelskive sænkes og kun kører r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;/r&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; i forhold til den grønne cirkelskive.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://www.vecteezy.com/free-vector/web Web Vectors by Vecteezy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategori:El-Fysik]]&lt;/div&gt;</summary>
		<author><name>Hnl</name></author>
	</entry>
</feed>