Wednesday 4 October 2017

Moving Gjennomsnittet Mikrokontroller


Embedded Engineering I post. Jeg skal vise deg hvordan du implementerer det enkleste mulige digitale filteret kvoterende gjennomsnittlig filterkvot. Selv om det er veldig enkelt å implementere, men fortsatt i mange applikasjoner, er dette mer enn godt nok. for eksempel å redusere tilfeldig støy fra signalet. selvfølgelig når det er veldig enkelt har det problemer som. det har ingen veldig skarp filterrespons. Kanal 1-inngang. fei fra 20Hz til 6kHz, kanal 4 (grønn) 15-punkts filtrert utgang, M (rød) - utgang i freq-domene lørdag 1. oktober 2016 Dette prosjektet er den siste delen i å lage et veldig kraftig sollys. I dette prosjektet intigrerer vi LTC3478 Basert philips lumileds Driver og BQ24650 Basert MPPT Solar Li-Ion charge Controller. Vi bruker totalt 3 9 Watt hver LED-driverbord og en ladestyring for å lade 6 Cell 7.6V 20000mah li-løvebatteri. Det er 4 LED-bar-grafdisplay for å vise estimat for batterinivå og en enkelt knapp for å kontrollere Onoff, Different Level av lysstyrke. og velg en. alle eller få av LED-plater til litup. Det er ikke mye å beskrive i form av skjematisk og fastvare som alle Firmware og Schmeatic aer allerede på min github-konto. Brukergrensesnittpanelet er laget av PCB med 4 batteristatus LED en port for solpanelkontakt og en kontrollbryter. Når batteriet er ladet, lyser LED-status tilsvarende, og når batteriet slipper, blir ledestatus oppdatert tilsvarende. I tillegg til det lille solbelysningsprojektet som jeg jobbet med, har jeg laget denne lille solenergi-laderen for å lade opp litiumionbatteri (li-ion). Circuit Utnytt Texas Instrument BQ24650 i hjertet av sløyfen for å kontrollere ladingen. som krets har ekstern mosfet så maksimalt 160charge nåværende kan justeres til virkelig høye verdier. 160Circuit aksepterer solcelleverdier fra 5V til 28V. Jeg har testet den med 12V nominell (17Volts åpen krets) 160. og 24 Volt nominelt solpanel ved batteriladningsstrøm opptil 4A. For tiden installert i huset mitt siden noen måneder. Lading av et 20000 mah li-ion batteri. Kretskortet har stor 4-polet høykapasitets Molex-kontakt for solpanel. 6-polet kontakt for batteri og lastbryter. Det er også mulig å koble NTC til batteritempraturovervåking. BQ24650 kan automatisk overvåke temperaturen på batteriet. Microcontroller har dedikert 3 PWM utgang for LED-dimmer og 6 gpio pin-header for bettery status ledet og en brukergrensesnitt nøkkel. Hallo zu Deutsch Leser. Das ist mein erste Artikel auf Deutsch. Jeg habe viel aufrufe aus Deutschland deshalb Jetzt ab, ich werde auch auf Deutsch publisher weilich Detusch lerne und mehr mehr bungen. Jedes Article wird auf Deutsch und English. wenn wir Widerspruch zwischen dem Artikel auf Deutsch und Englisch haben, die English berwiegt weil Meine erfahrungen auf deutsch kurze ist.160 160 160 160Så begynner vi. Heutzutage arbeit ich an einem Projekt. quotMPPT Solar li-ion Laderquot. Bei diesem projekt brauche ich eine160sehr160vollmacht 25W LED leicht. aber 25W er viel pels ein160LED-Triber. Dette er en av de mest kjente 25 W LED-Triber zu entwerfen. Hauptsorge Auf die Projket quotMPPT Solar - lon Laderquot ist zu Lernen wie MPPT Larder Arbeitet und wie die software Algorithmus sind. Das Projekt ist ein teil von ein Projekt was publiziere ich spter.160 160 160 160 Jeg jobbet med å jobbe med en 160little solbelysningsprosjekt , jeg trenger en virkelig lys, gal 25W 160LED belysning. Men problemet var for 25W det var mye strøm for LED og det krever noen ferdigheter for å lage en så høy LED-driver. Hovedmål for dette prosjektet er å få en nedstigningskunnskap om MPPT-ladestyring og MPPT-ladingsalgoritmer. Dette prosjektet er en del av prosjektet. at jeg vil legge inn senere. 160160160 Dette innlegget kommer til å være fjerde del i serie med å lage et Linux-kompatibelt ARM-kort hjemme. klikk først. Andre og tredje for å gå til tidligere deler, så vi kan starte. Hva er en Bootloader, Hvorfor trenger vi it160 en oppstartslaster er et program som er den første som skal utføres av CPU. det gir noen svært spesifikke formål å sette opp noen svært viktige ting før du laster hovedprogrammet (kan være OS) inn i main memoryquot. det er derfor det kalles boot loader. Avhengig av behov kan oppstartslaster gjøre en annen oppgave (vi vil dekke dem her). Det er forskjellige former og størrelser på bootloaders. de tjener alle nesten samme formål. med mikrokontroller. Noen ganger laster det faktisk ikke hovedprogrammet inn i minnet, men overfører utføringspekeren til hovedprogrammet slik at hovedprogrammet kan kjøre direkte danner minnet der det er. Styret Med 4,3 tommers LCD-kjører Qt5-applikasjon for å vise JPEG Image og TimeDue til logistikkompilatoren for stigen min, får jeg ofte spørsmål om hvordan man bygger maskinvare for å koble en mikro til omverdenen. Jeg har ikke kunnet finne en god referanse til å foreslå. Mye av materialet på nettet er feil eller ufullstendig, eller gjenspeiler god praksis circa 1970. Ingen av dette er spesifikk for en bestemt mikrokontroller eller familie av mikrokontrollere, det gjelder like godt for PIC'er eller AVR eller 8051er eller annen prosessor. Sjekk databladet på din side for å være sikker, skjønt, spesielt for ting som hvor mye strøm en IO-pin kan kjøre. Jeg bruker setningene GPIO og IO pin utveksling, jeg mener bare en pin på mikrokontrolleren som kan konfigureres som enten en digital utgang eller en digital inngang. (En typisk mikro har mange av dem.) Det vil antagelig være klart fra sammenheng om stiften er konfigurert som en inngang eller en utgang. Også, jeg vil anta at mikroen går fra 5 V. Meget lite av dette endres hvis det ikke er det. Jeg beskriver hvordan å: Lys en LED fra en digital utgang LED-en er en to terminal. Vi kan derfor karakterisere det i henhold til to mengder: spenningen over den og strømmen gjennom den. Til en (ganske god) første ordre er lysutgangen til lysdioden, enten i fotoner per sekund eller i milliwatt, lineært proporsjonal med strømmen gjennom den. Dette betyr at det er nyttig å tenke på LED-en som en aktuelt betjent enhet. (Selvfølgelig kan vi tenke på det som enten, men det er et fint forhold mellom lysutgangen, som er det vi endelig bryr oss om, og strømmen dette gjelder ikke for spenningen.) For å karakterisere en bestemt LED, kan vi bruk en spenning (for eksempel ved bruk av en DC-strømforsyning), og merk strømmen gjennom lysdioden (ved hjelp av et ammeter eller kanskje ammeteret som er innebygd i strømforsyningen). Vi kan gjenta dette for mange forskjellige spenninger, og plotte disse punktene for å produsere LED-V-I egenskaper. Produsenten kan ha gjort dette for oss, og kan gi dette som en figur i databladet. Her gjengir jeg den figuren fra databladet til en LITE-ON LTL-4223. Dette er en relativt typisk rød LED. Vi kan se at forholdet mellom lysdiodene strøm og spenning ikke er veldig fint, ikke er en rett linje gjennom opprinnelsen, eller en annen kurve med en enkel likning. Over strømmene der vi forventer å operere LED-lampene (tonnevis av mA), er denne kurven veldig bratt. Fra spenningen på 2,0 V til 2,4 V har spenningen økt med bare 20, men strømmen, som går fra 20 mA til ca. 50 mA, har mer enn doblet. Det betyr at strømmen gjennom LED er svært følsom overfor spenningen. Tilsvarende er spenningen over LEDen svært ufølsom for (dvs. svært nær konstant med) strømmen gjennom enheten. Dette betyr at for en god tilnærming kan vi modellere LED-lampen som et konstant spenningsfall (og mange produsentdatablade bryter ikke med kurven og oppgir bare en spenning). (Hvis vi ønsket å modellere LEDene VI-egenskapene mer nøyaktig, så kunne vi gjøre det som en seriekombinasjon av en ideell diode og en motstand. Den ideelle dioden har et eksponentielt VI-karakteristisk som er det som er ansvarlig for den ikke-lineære delen av kurven nær 1.6 V. Det er også et ohmt (dvs. lineært forhold mellom V og I) motstand forbundet med lysdioden spenningen som faller av den motstanden er ubetydelig ved små strømninger, fordi V IR er liten når jeg er liten, men blir betydelig ved høyere strømmer. Det er grunnen til at kurven vist ovenfor synes å nærme seg en rett linje med høy strøm. Men vi vil neppe noen gang trenge det bra med en modell.) I alle fall vet du allerede at kretsen er dette: Noen ganger blir kretsen trukket bakover fra den måten den er her, med den andre enden av seriekretsen koblet til 5V i stedet for bakken. Det var viktig for TTL (en gammel type logikk), som kunne synke mer strøm enn det kunne kilde. For CMOS spiller det ingen rolle. Micros IO-pin er konfigurert som en utgang. Når den er drevet lav, vises null volt over seriekretsen, og ingen strøm strømmer. Når den kjøres høyt, vises 5 V over seriekretsen. Lysdioden faller om 2 volt som vi så over, spenningen som slippes av LED-lampen, er ikke veldig følsom for strømmen gjennom den, noe som betyr at vi kan få en veldig god tilnærming til spenningen som faller av lysdioden, selv før vi kjenner nåværende gjennom det. Motstanden faller derfor 5 - 2 3 V, siden dråpen over de to serieelementene må totalere 5 V. Dette betyr at en strøm av I VR 3330 9 mA strømmer. Vi ser fra databladet at LED-en er vurdert for maksimal kontinuerlig fremstrøm på 30 mA, så vi er godt innenfor spesifikasjonen. Ikke gjort, skjønt. Lysdiodens nominelle spenningsfall på 20 mA (eller en hvilken som helst strøm i nærheten av det) er 2,0 V, men vi ser fra dataarket (Forspenning, Maks.) At den kan være så høy som 2,6 V. Dette betyr at mens den svarte kurven under (som er identisk med den svarte kurven ovenfor) tilsvarer en nominell enhet, en enhet hvis VI-karakteristikker ble beskrevet av den blå kurveshistorien, vil en hvilken som helst kurve som ligger mellom disse to grensene, fortsatt oppfylle produsentens spesifikasjon. Hvis vi fikk en worst-case LED som droppet 2,6 V, da ville motstanden slippe 5 - 2,6 2,4 V, og jeg 2,4330 7,3 mA ville flyte. Dette er en merkbar forandring, en nedgang på ca 19. Likevel, for denne bestemte LED, og ​​kjører fra 5 V med denne kretsen, er det det beste vi kan gjøre. Hvis vi kunne kjøre fra en større forsyningsspenning enn 5 V, ville LED-spenningsfallet være en mindre andel av det totale spenningsfallet i kretsen, slik at strømmen gjennom LED-lampen ville være mindre følsom for spenningsfallet. Det er også mulig å bruke en aktiv strømkilde av noe slag for å gjøre strømmen gjennom LED nesten uavhengig av spenningsfallet, men det krever en mer komplisert krets. Denne variasjonen er grunnen til at det ikke fungerer i det hele tatt for å drive en LED med konstant spenningskilde. Hvis vi ønsket å kjøre LED-lysdioden på minst 20 mA, ser vi fra kurven at vi må bruke nøyaktig 2,0 V, men hvis vi i stedet skjedde å få en maksimal dråpe (blå kurve) LED, så vi se fra kurven at veldig nær nullstrømmen min så liten at den er utenfor grafmdashwould strømme for en spenning mindre enn 2,4 V. Hvis vi prøvde det den andre veien, og påførte 2,6 V (for å forsikre deg om at lysdioden med maksimal dråpe lyser ), så vil den minste dråpedioden trekke en veldig stor currentmdashagain av grafen, men mer enn 50 mAmdashand LED'en vil overopphetes og bli ødelagt. Variasjonen ville ikke være et problem hvis vi kunne se strømmen gjennom lysdioden da vi langsomt skrudd opp spenningen, og satt vår konstante spenningskilde til den spesielle spenningen som ga strømmen som vi ønsket for den aktuelle LED. Dette er hva en nåværende kilde gjør. Dette er også hva motstanden gjør, selv om det ikke gjør en veldig god jobb med den. Hvis du utelater motstanden (dvs. la den være kortslutning, null ohm) fra kretsen ovenfor, så i teorien svarer dette til å kjøre LED fra en fem volt spenningskilde. Det ser ut fra vår diskusjon over at dette uunngåelig ville føre til røyk. Hvis du prøver dette, vil du imidlertid finne ut at kretsen din ser ut til å fungere. Dette skyldes at en IO-pin ikke er en perfekt stiv spenningskilde, det er avløp av en FET, som hvis du prøver å tegne for mye strøm ser det ut som en nåværende kilde. IO-pin selv begrenser strømmen, og hvis du målte spenningen på IO-pin, vil du finne den til å være mye mindre enn 5 V. Dette er nesten sikkert utenfor produsentene tillatte driftsbetingelser for IO-pin, og er derfor ikke god praksis. Forresten, det er litt rart at minimumspenningsfallet for denne lysdioden også er det nominelle spenningsfallet. Det ville være mer vanlig for produsenten å sitere et minimum og maksimal spenningsfall, og en nominell (typisk) spenningsfall som er et mellomrom. En typisk rød eller grønn LED dråper ca. 2 volt. Blå LED lyser mer, vanligvis rundt 3 volt. Hvit LEDsmdashwhich er vanligvis blå lysdioder, med en fosfor som konverterer noe av det blå til det røde, og greenmdashusually faller rundt 3 V. Spenningsfallet av en LED er relatert til fotoenergiens energi at den avgir kortere bølgelengde (høyere energi) fotoner krever vanligvis en større spenningsfall. Dette er ikke alltid sant for eksempel, visse rene grønne emittere har en større spenningsfall enn du kanskje forventer fra bølgelengden av grønt. Les bryterkontakter med en digital inngang Dette er veldig grunnleggende: du har en bryter med to ledninger som er enten åpne (bryter åpen) eller kortsluttet (bryter stengt). Dette kan være en trykknapp, eller en magnetisk svingbryter, eller et sett med relékontakter. Gjør det slik: Når bryteren er åpen, drar R2 tappen lavt gjennom R1. Når bryteren er stengt, er den høyre siden av R1 kortsluttet til 5V gjennom bryteren, og trekker stiften høyt gjennom R1. Motstanden R1 er ikke strengt nødvendig. Dens jobb er å beskytte mikrokontrolleren. Uten R1, hvis noen koblet bryterterminalene til en spenning større enn 5V eller mindre enn bakken, ville mikrokontrolleren bli ødelagt. (Se neste punkt for hvorfor.) Med R1 blir overskuddspenningen tapt over motstanden, og så lenge motstanden er stor nok, er mikroen uheldig. Dette bidrar også til å beskytte mot skader på grunn av statisk utladning. Med R1 1 MOmega (som vist), kan du koble inngangen til 120 VAC uten skade. Dette er ikke anbefalt, selvfølgelig. Jeg valgte R2 1 kOmega. Hvis R2 blir for liten, strømmer en meget stor strøm gjennom R2 når bryteren er stengt. Denne spildkraften, og den kan overskride effektverdien til R2 (eller nåværende vurdering av bryteren). Hvis R2 blir for stor, blir det lettere for tilfeldig støy å trekke inngangspinnen høyt. Også mange brytere er upålitelige når strømmen gjennom dem er liten. Den nåværende bidrar til å rengjøre kontaktene når du bytter. (Det er også mulig å tegne denne kretsen bakover, med en motstand på 5V og en bryter til bakken. Historisk var dette en bedre måte å gjøre ting på, fordi TTL-innganger tegnet inngangsstrøm, og det tok mer strøm for å trekke dem ned enn med CMOS-innganger, betyr dette ikke noe i det hele tatt, så gjør det uansett hvor som helst. Noen mikrober kan ha interne opptrekksmotstander som du kan aktivere (f. eks. AVRene), og sparer behovet for eksterne trekkmotstander, men de interne motstandene kan ikke være små nok til å tegne nok strøm gjennom bryteren for pålitelig drift.) Les et digitalt signal som går fra 0 V (LOW) til 10 V (HIGH) Mikro tar nesten absolutt standard CMOS logikknivåer: a logikken LOW er rundt 0 V, og en logisk HIGH er rundt 5 V (eller hva mikroens forsyningsspenning er). Hvis vi hadde et digitalt signal som gikk mellom 0 V og 5 V, kunne vi koble den direkte til en GPIO-linje på mikroen. Selvfølgelig krever mikron ikke at inngangsnivået nøyaktig er 0 V eller nøyaktig 5 V de angir at noe mindre enn noe spenning (ofte 0,2 Vdd eller 1 V i dette tilfellet) er LAV, og at noe større enn noen spenning (ofte 0,8Vdd 4 V) er høy. Siden 0 V er mindre enn 1 V, og 10 V er større enn 4 V, virker det som om vi bare kan koble signalet til en inngangspinne, og alt går bra. Men hvis vi gjør dette, vil mikroen bli ødelagt. Dette skyldes at mikroenheten er bygget med beskyttelsesdioder på hver pin hvis spenningen på en hvilken som helst pin overstiger den mest positive tilførselsspenningen eller er mindre enn den mest negative forsyningsspenningen (jord), da slås disse diodene på og kort den til riktig forsyningsskinne. Målet med dette er å beskytte flisene mot skade fra elektrostatisk utladning (ESD, statisk elektrisitet). I dette tilfellet vil imidlertid 10 V-signalet kortsluttes til 5 V-forsyningsskinnen, hvis vi bruker 10 V-signalet til IO-stiften på mikrofonen vår ved 5 V. Avhengig av hvor mye strøm vår signalkilde (og strømforsyning) kan gi, vil en eller flere av mikro-, signalkilden eller strømforsyningen bli ødelagt, da 5 V-forsyningen og 10 V-signalet bekjemper den. En enkel måte å fikse dette på er å dele våre 10 V signaler spenning med to, for å lage et 5 V signal. Vi kan gjøre dette med en spenningsdeler: Når V går fra 0 V til 10 V, går spenningen på IO-pin fra 0 V til 10k (10k 10k)) ganger10 5 V, slik at mikro ikke ødelegges, og alt fungerer som utformet. Det er selvsagt andre måter å gjøre det på. Problemet da vi koblet signalkilden direkte til IO-pin er at vi i utgangspunktet hadde to spenningskilder kortsluttet sammen gjennom beskyttelsesdioden: signalkilden ved 10 V og 5 V-forsyningen. Diodens effektive motstand (VI) (som ikke er konstant, siden en diode ikke er en motstand, men kan beregnes ved en bestemt strøm eller spenning for en to-terminal del) er liten, og det er noe spenning over det , så en stor strøm strømmer, tvinger delen til å spre en stor makt, og noe røyker. Hvis vi kobler signalkilden gjennom en stor motstand, er strømmen begrenset, og problemet går bort: Her, for en 10 V inngang, klemmes spenningen på stiften til ca. 5 V (faktisk 5 V plus en diode drop, rundt 5,6 V). Det betyr at en spenning på 10 - 5 5 V vises over 100k motstanden, så en strøm på omtrent jeg VR 50 muA flyter. Dette er lite, så ingenting taper mye makt, og ingenting overopphetes og brenner. Dette er imidlertid ikke veldig god praksis, skjønt. Det er ikke bare spørsmålet om varmen som løses av beskyttelsesdiodene (selv om du bruker 10 V til en inngang direkte, kan det alene være nok til å ødelegge delen). En ganske liten (milliamps eller titalls milliamps) som strømmer gjennom beskyttelsesdiodene, kan sette en brikke i latchup, en tilstand der stier mellom de forskjellige silisiumlagene som aldri skal tennes, vil føre, tegne en stor strøm og ødelegge brikken. Svært få sjetonger er klassifisert for enhver strøm gjennom beskyttelsesdiodene, så hvis du bruker mikro på denne måten, bruker du den utenfor produsentens spesifikasjoner. Likevel hadde denne kretsen en fordel over spenningsdelerkretsen. Spenningsdeler-kretsen fungerer med signalet den ble designet for, men det vil ikke fungere med et digitalt signal som går fra 0 V til 5 V. (0 V-logikken LOW produserer 0 V på pinnen, slik at det fungerer, men 5 V logikken HIGH produserer 2,5 V på pinnen, som ikke er klart lav eller høy.) Kredsløpet som er avhengig av beskyttelsesdioden virker fortsatt fint med et 0 V til 5 V signal (eller, for det saks skyld, en 0 V til 20 V signal). Vi kan designe en krets som vil fungere med et logisk nivå på 0 V (LOW), og alt som er større enn 5 V (HIGH), og fortsatt ikke bryter produsentens spesifikasjon, vi må bare gi dioden selv. Her klemmer D1 spenningen ved anoden til maksimalt 5 V. Jeg angav en 1N4148. som er svært vanlig diode for lav-strøm (tenner av milliamps eller mindre) applikasjoner. 1N4148 er det gamle ledede delnummeret, men lignende deler i overflatemonterte pakker (for eksempel MMBD4148) er tilgjengelige fra mange leverandører. Spenningen ved anoden til D1 kan ikke overstige 5 0,7 V, slik at en inngangsspenning på 20 V, si ca. 15 V er over 10k motstanden R5 og 1,5 mA strømning. Dette er godt innenfor diodeens vurdering. Den maksimale klemspenningen på 5,7 V ved anoden til D1 overgår imidlertid produsentens absolutte maksimale inngangsspenningsgrad for en mikroprosess med 5 V (typisk angir de en absolutt maksimal inngangsspenning på 5 V, eller kanskje 5,3 V, fordi beskyttelsesdiodene utfører bare svært lite med bare 0,3 V over dem). R1 og R4 danner en spenningsdeler for å fikse det. Når dioden er ledende, er dens dynamiske impedans (dVdI, det vil si ved den aktuelle strømmen der dioden virker, hvor mye spenningen den faller øker hvis du øker strømmen gjennom en liten bit mer), er svært liten. Det betyr at R1 og R4 danner en 10:11 (100k (10k 100k)) spenningsdeler, og dette forholdet er uavhengig av R5. Den 5,7 V klemspenningen blir nedskalert til ca 5,2 V, som mikroen kan tåle uten problemer. Det ville faktisk være mer vanlig å bruke en Schottky-diode i stedet for vår 1N4148, og utelat spenningsdeleren (men hold den nåværende begrensningsmotstanden R5). En Schottky-diode vil utføre rundt 0,3 V, mot 0,6 V for en normal silisiumdiode. Dette sikrer at den eksterne klemdioden vil slå på godt før mikrobeskyttelsesdiodene, slik at nesten hele strømmen strømmer gjennom klemdioden, og nesten ingen strømmer gjennom beskyttelsesdioden. Et typisk lite signal Schottky diode er BAT54. Les (med opto-isolasjon) Et digitalt signal En optoisolator lar deg overføre informasjon mellom to kretser, uten å gjøre en elektrisk forbindelse mellom dem. I stedet overføres informasjonen som lys. En typisk optoisolator vil inkludere en LED og en fototransistor, som er optisk koblet sammen (dvs. lysdioden skinner på fototransistoren). Vi kan oppdage om lysdioden lyser opp ved å måle strømmen gjennom fototransistoren. Noen ganger kan vi bruke disse for sikkerhet, for eksempel hvis signalet kommer inn på en lang ledning som strekker seg utenfor, og vi er bekymret for at lynet kan komme i nærheten, så kan opto-isolatoren kanskje være i stand til å motstå (forhåpentligvis vanlig modus ) spenningspik. Selv om det ikke er, vil kanskje bare opto-isolatoren (og ikke resten av kretsen) bli ødelagt. Opto-isolatorer brukes også for enkelhets skyld. Elektrikere som er vant til kobling av reléer, vil finne opto-isolerte innganger veldig enkelt å håndtere, fordi grensesnittet er det samme: du får to ledninger, og inngangen er på når du bruker spenning over dem. (PLC-innganger er ofte opto-isolerte, og det er sannsynligvis mer for denne bekvemmeligheten enn for sikkerhet.) Du kan bruke en optoisolator som denne: Opto-isolatoren her er en MCT62. Dette er en opto-isolator med dobbelt fototransistor-type, tilgjengelig i DIP - og overflatemonteringspakker. Her bruker jeg bare en av de to kanalene. Nesten hvilken som helst fototransistor-type opto-isolator ville fungere. Legg merke til at jeg ikke viser en forbindelse til GND på LED-siden av opto-isolatoren. Det er ikke behov for elektrisk tilkobling mellom opto-isolatorens to sider. Dette betyr også at opto-isolatorens drift ikke vil påvirkes av noen elektriske tilkoblinger som eksisterer mellom de to sidene (for eksempel hvis det er en stor spenning mellom de to forskjellige kretsene.) Når null volt påføres over LED-inngangskretsen, ingen strøm strømmer gjennom lysdioden. Det er derfor nullfotstrøm gjennom fototransistoren, noe som tillater R1 å trekke mikrosignalpinnen høyt. Når en spenning påføres over LED-inngangskretsen, forårsaker lyset fra LED'en en strøm gjennom fototransistorens samler. Dette trekker inngangspinnen lavt. For 0 V over LED-inngangskretsen (V i 0 V), er LED-lampen definitivt av, så mikroinngangen er definitivt høy. For å bestemme spenningen der mikroinngangen går lav, må vi referere til MCT62s dataarket. Når mikroinngangen er LOW (ved 0 V), er det en spenning på 5 V over 10k motstanden. Dette betyr at en strøm på 500 muA strømmer gjennom motstanden, og dermed gjennom fototransistoren. Vi refererer til MCT62s datablad for å bestemme dets nåværende overføringsforhold, som er gitt som 100 ved 5 mA og V CE 5 V. Dette betyr at en strøm på 5 mA gjennom LED-en gir en fotokurranse på 5 mA gjennom fototransistor. Vi er interessert i hva som skjer på 500 muA, skjønt. Fra den normaliserte CTR vs Forward Current (Normalisert til I F 10 mA) figur ser vi at CTRen er opp til en faktor på nesten 1,2 ved 5 mA, og ned med en faktor på ca. 0,6 ved 500 muA. Dette betyr at vi er nede med en faktor på 0,61,2 0,5 fra klikkfrekvensen på 5 mA, for en CTR på 50. Så vi trenger en strøm på minst (500 muA) (50) eller 1 mA gjennom LED for å garantere at fototransistoren kan trekke inngangspinnen lav gjennom 10k motstanden. Lysdioden faller mest 1,5 V ved 20 mAmdashand antagelig mindre, men vi vet ikke hvor mye mindre, ved 1 mAmdashand faller 1k motstanden ved 1 mA 1 V. Dette betyr at vi trenger minst 1,5 1,5 V over inngangskretsen til garantere at vi kan oppdage dette (dvs. at mikroens IO-pin går LOW). Maksimalt tolererbar inngangsspenning bestemmes av den maksimale strømmen som lysdioden kan tolerere. Dette er gitt som 60 mA, så en maksimal inngang på 1,5 V (60 mA) ganger (1 k) 61,5 V vil forbli innenfor denne spesifikasjonen. Merk at ved 60 mA, sprer R2 I 2 R 3,6 W En motstand som er i stand til å håndtere så mye strøm uten å brenne opp, vil oppvise et overflateareal på minst noen få kvadratcentimeter. I praksis ville jeg ikke stole på denne kretsen ved enten minimum eller maksimal inngangsspenning noe som 5 til 30 V virker som et mer komfortabelt utvalg. På den lave siden var CTRene som jeg brukte, alle på en V CE på 5 V, så jeg vil gjerne legge litt slop hvis CTR er mye lavere ved mindre V CE. (Vi sikter på å mette transistoren, men de gjorde målingene deres til et bestemt punkt i det aktive området, så tallene kan ikke være ganske like.) På høysiden vil jeg heller ikke betale for en fem watt motstand for R2 30 V gir mindre enn 1 W i R2, noe som er mer rimelig. Mål en likespenning mellom 0 V og 15 V Mange mikrokontrollere har AD (analog-til-digitale) omformere. Disse kartlegger en spenning ved en inngangspinne på et heltall. En ti-bit-omformer er typisk som betyr at den kortlegger den minste spenningen til heltallet 0, og det største til 1023 (dvs. 2 10 - 1). Den minste spenningen er vanligvis bakken. Du kan nesten alltid konfigurere den største spenningen til å være den positive forsyningsspenningen, som i dette tilfellet er 5V. Din 5V-forsyning er sannsynligvis regulert, og dermed nøyaktig til innen få prosent, så det er sannsynligvis en enkel måte å koble opp ting på. Så i dette tilfellet kan vi måle en spenning mellom 0 og 5 V, men vi har en spenning mellom 0 og 15 V. Den enkleste måten å fikse dette på er med spenningsdeler: Dette multipliserer innkommende spenning med en faktor på R2 ( R1 R2). I dette tilfellet er det 10k (10k 20k), eller 13. Kondensatoren bidrar til å redusere høyfrekvent støy. En ADC-lesing på 0 tilsvarer 0 V. En ADC-lesing på 1023 tilsvarer 15 V. Den er lineær mellom (slik at en ADC-avlesning på 512 er ca. 7,5 V). Hvis du gjør motstandene svært store, blir støy et problem. Hvis du gjør motstandene svært små, trekker de mye strøm fra spenningskilden du måler, noe som kan laste den ned. (Belastningen som kilden ser, er (R1 R2), sørg for at den er klassifisert for det, eller måle den med en multimeter for å sikre at spenningen ikke går ned når du kobler den til kretsen. Må ikke måle veldig høyt (50 V, si) spenninger på denne måten, det er ikke trygt. Dette fungerer med AC spenninger, men kanskje ikke hvordan du forventer at du måler verdien av vekselstrømspenningen på et bestemt tidspunkt, ikke RMS eller toppspenningen. Mål en DC spenning mellom -15 V og 15 V Dette er litt vanskeligere. Vi vil ikke bare multiplisere spenningen med en konstant, som forrige gang (siden R2 (R1 R2) ganger -15V vil alltid være negativ, uansett hva vi gjør, og vi kan ikke måle negative spenninger). Denne gangen vil vi også skifte det: Dette gir en spenning V-adc (V målt 15) 6, noe som betyr at V-adc går fra 0 til 5 V som V målt går fra -15 til 15 V, hvilket er det vi vil ha . Du kan designe dette for hvilket som helst område du trenger, ved å velge passende motstandsverdier. En måte å gjøre det på er å skrive KCL på microcontroller pin. Pinnen i seg selv trekker null strøm, fordi den er en inngang, og kondensatoren trekker null strøm ved likestrøm. Matematikken vil vise seg lettere hvis vi bruker konduktanser i stedet for motstander, så la G1 1R1, G2 1R2 og G3 1R3. KCL gir Dette er et veid gjennomsnitt, hvor bidraget fra hver spenning (5V, V målt eller bakken 0 V) ​​vektes av ledningen av motstanden som forbinder den med IO-pin. En høyere konduktans (tilsvarende en lavere motstand) betyr at den påvirker spenningen på IO-pin mer, noe som gir mening. Vi vil kartlegge vår inngangsspenning, som går fra -15 V til 15 V, slik at den går fra 0 V til 5 V. Som vi sa ovenfor betyr dette at vi vil. Så la G1 (G1 G2 G3) 16, og la (G3 (G1 G2 G3)) ganger5 2,5, og løse. Dette er to likninger i tre variabler, så du har en ekstra grad av frihet. Det betyr at du kan velge en av variablene vilkårlig, og løse for de andre to. For eksempel kan du velge R1 50kOmega, som gir G1 20 muOmega -1. og løse for G2 og G3. Selvfølgelig, det er ikke slik jeg faktisk valgte disse verdiene. Jeg vet hvordan du skifter en spenning mellom -5 V og 5 V slik at den er mellom 0 V og 5 V: Jeg må bare lage en spenningsdeler mellom spenningen og 5 V, med lik motstand. Dette vil veie de to inngangene (5 V, og signalet måles) like, slik at utgangsspenningen svinger mellom (5 5) 2 5 V og (5 - 5) 2 0 V, som jeg vil. Så alt jeg måtte gjøre var å forandre inngangsspenningen, som går mellom -15 og 15 V, slik at den går mellom 5 og -5 V, og da ville jeg ikke bli gjort, men jeg ville vite hva jeg skulle gjøre. Jeg kan gjøre dette med en spenningsdeler: plusmn15times (R2 (R1 R2)) plusmn15times (25 (25 50)) plusmn5. R1 (R1 R2) spenningsdeler har en utgangsresistens på R1 parallelt med R2, tenk på Thevenin-ekvivalentkretsen hvis den ikke er klar. Jeg valgte derfor R3 som R1 og R2 parallelt, eller R3 1 (1R1 1R2). Dette er mye raskere enn å løse samtidige likninger du kan gjøre i hodet ditt. Thevenin-ekvivalenter er et godt verktøy for å løse hvilke kretser folk faktisk bygger. Mål en likespenning mellom 0 V og 1,7 V Mikrokontrollatorens AD kan måle en spenning mellom 0 V og 5 V. Det betyr at vi kunne koble denne spenningen direkte til en AD-inngang og ble gjort fordi en spenning mellom 0 V og 1,7 V er også mellom 0 V og 5 V. Dette er imidlertid sløsing. Av de 1024 mulige koder som en 10-bits AD-omformer kan produsere, vil bare 342 ((1,75) ganger1024) faktisk oppstå. Det betyr at vi kaster bort mellom ett og to biter av oppløsning. The solution is to buffer and amplify the input signal before connecting it to the AD converter, and we can do this with an opamp: The opamp is configured as a non-inverting amplifier, with a gain of (1 2k1k) 3. This means that as the input V measured goes from 0 V to 1.7 V, the output goes from 0 V to 3times1.7 5 V. Any gain of less than a hundred is easily achieved with this circuit. For larger gains, nonidealities of the opamp (its input offset voltage, and for fast signals its gain-bandwidth product) may no longer be negligible. I have specified an MCP60x . where x is 1 (single opamp), 2 (dual, two opamps in one package), or 4 (quad). This is a modern CMOS opamp from Microchip. The pin numbers shown on the schematic are for the single in a plastic DIP package, but you get the same amplifier whether you buy them in singles, duals or quads. It is cheap the single in PDIP costs forty cents from Digikey in quantity ten. It is rail to rail output, which means that it can produce an output voltage very close to either the negative (0 V) or positive (5 V) supply. (Of course, it cannot produce an output voltage more negative than its negative supply, or more positive than its positive supply. This is true for almost any IC.) Working with slow ( 2 ) the current gain, but a FET will probably give better performancemdashless power dissipated in the switch for a similarly-priced part, and faster switchingmdashthan the BJT. The FET is easy to use, because the gate draws no DC current. In theory, we can switch as many amps as we would like just by changing the gate voltage with our IO pin. The circuit looks like this: The concept is the same as when we used an NPN transistor. The resistor doesnt actually do anything at DC, because (unlike the NPN transistors base) the n-FETs gate does not draw any current. The resistor helps to protect the micro from transients when the high current switches, though. I specified an IRL3103PBF for the FET. I chose this FET because it will operate from a small voltage swing on the gate. Traditionally, power n-FETs were designed to operate with a voltage of 0 V (off) or 10 V (on) at the gate. We need something that will turn on fully from a much smaller voltage, so I chose a logic-level FET, which is more or less fully on with 5 V on the gate. Notice that we didnt have to choose a logic-level FET for the previous circuit with the p-FET. There, the gate swung between 0 V and 10 V, so we had plenty of gate voltage swing. It is because we are driving the gate directly here that we have to choose a bit more carefully. In fact, we could use a similar circuit with a 2N3904 to produce an 0 to 10 V gate voltage swing if we needed to, but it is easier to choose a logic-level FET. The diode does the same job as before, and can be omitted for a non-inductive load. We could probably live without it regardless the FET that we are using is rated for avalanche breakdown. If the drain-source voltage of any FET is brought past the rated V DSmax . then the FET will conduct from its drain to its source, independent of its gate voltage. In general this is bad, and may result in permanent damage to the part. The datasheet for the IRL3103 explicitly permits this mode of operation, though, and we can therefore take advantage of this. Switch a 120 VAC Load Use a mechanical relay. To drive the relay coil, use a single 2N3904 transistor, as shown above. Nov 2006, Cambridge MASlideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. Hvis du fortsetter å surfe på nettstedet, godtar du bruken av informasjonskapsler på denne nettsiden. Se vår brukeravtale og personvernregler. Slideshare bruker informasjonskapsler for å forbedre funksjonalitet og ytelse, og for å gi deg relevant annonsering. Hvis du fortsetter å surfe på nettstedet, godtar du bruken av informasjonskapsler på denne nettsiden. Se vår personvernerklæring og brukeravtale for detaljer. Utforsk alle favorittemner i SlideShare-appen Få SlideShare-appen til å lagre for senere, selv frakoblet Fortsett til mobilnettstedet Opplastingslogg Registrering Dobbeltklikk for å zoome ut 8051 Microcontroller PPTx27s Av Er. Swapnil Kaware Share this SlideShare LinkedIn Corporation copy 2017

No comments:

Post a Comment