Spørsmål:
Årsaker til at det ikke er OK å koble til et relé direkte fra en Arduino digital pin
DorkOrc
2015-10-20 12:46:44 UTC
view on stackexchange narkive permalink

Etter å ha sett på forskjellige skjemaer for å kontrollere et relé via en Arduino, har jeg lagt merke til at transistorer mesteparten av tiden brukes til å bytte den separate forsyningen til reléspolen i stedet for å forsyne reléet direkte med 5-volts utgangen fra I / O-pinnen til Arduino. For eksempel har jeg et 5-volts DPDT-relé og også en liten DC-motor. Jeg vil kjøre begge deler direkte fra min Arduino UNO (SMD-klon) med en Atmel328-prosessor? Ville det være tilrådelig å gå videre?

Hvis ikke (mest sannsynlig):

  1. Kan noen gi en detaljert forklaring og kan like gjerne viktige advarsler om gjeldende grenser og ting?

  2. Hvordan kan man kontrollere slike komponenter uten å risikere Arduino? Hva er noen vanlige måter å oppnå dette på?

  3. Hvilke andre enheter kan vanligvis skade et Arduino-kort (eller en hvilken som helst mikrokontrollerenhet) på en lignende måte?

Jeg er bare en nybegynner som vil være ekstremt forsiktig. Takk.

Selv om jeg nylig, med mitt første møte med Arduino, brukte jeg I / O-pinnene direkte for å aktivere en leketøysdc-motor og endre retning ved å skru et DPDT-relé av og på på samme måte. Ingenting ser ut til å være feil langt.
Fem svar:
Russell McMahon
2015-10-20 13:55:18 UTC
view on stackexchange narkive permalink

Prosessorpinner har strengt begrenset kapasitet.

  • Nominelle verdier kan variere avhengig av om du vil ha høy eller lav stasjon.
  • Noen prosessorer vil bare levere noen få mA, og det meste du vanligvis får offisielt er i området 20 til 30 mA.

  • Det er vanligvis en total strømgrense for prosessoren, og bare noen få pinner kan gi toppstrøm samtidig.

  • Prosessor pinner har betydelig effektiv motstand og en høy spenning vil "synke" når økende strøm trekkes opp og en lav spenning vil stige når belastningen øker. Pins KAN være spesifikke med maksimal kortslutningsstrøm, men på det tidspunktet vil en høy pin bli trukket lav og en lav pin vil bli trukket høyt så kortslutningsstrøm har begrenset anvendelighet.

Selv om du sier 25 mA per prosessor, er strømmen tilgjengelig liten. 25 mA · 4V si (1V fall på 5V Vcc) = 100 mW. De fleste motorer vil ta mer enn det, og bare veldig små motorer vil gå bra når de bare drives av en pin.

Elektriske motorer og induktorer vil generere betydelig høye spenninger når strømmen avbrytes - spenninger på titalls volt kan lett resultat og 100+ volt kan skje. Å koble en induktormotor direkte til en prosessorstift er en invitasjon til ødeleggelse. Murphy vil ofte forplikte seg.


En transistor (bipolar eller MOSFET) som vil kjøre typiske hobbymotorer koster ti cent (eller fri for utrangert utstyr) og gjør det mulig å buffere portens nåværende stasjon og "forsterket". Bruk av en transistor eller annen buffer er en ekstremt god idé hvis du har en eller få prosessorer og ikke ønsker at de skal dø semi-tilfeldig.

MOSFET-motordriver - herfra - seksjon 8.

Spenninger og delenumre er for eksempel - velg for å passe.
En NPN biploar kan brukes med tillegg av en inngangsmotstand til transistorbasen.

enter image description here

Toveis driver - hvis du vil at sjåføren skal kunne kjøre en belastning høyt og lavt, vil denne kretsen fungere. herfra
Inngangsporten er i dette tilfellet den interne prosessordriveren. De to MOSFET-portene kobles direkte til prosessoren. Vdd skal vanligvis ikke være høyere enn prosessor Vmax_drive_out. Litt høyere kan gjøres for å fungere med passende design. Mye høyere spenningsbelastninger kan drives med denne kretsen (eller lignende) pluss en ekstra transistor.

enter image description here


En buffer som en ULN2803 (og andre familiemedlemmer) vil kjøre 8 kanaler x 500 mA / kanal og flere kan parallelliseres.


En ULN2803 er i det vesentlige 8 x "Darlington" -transistorer med emitter koblet til en felles jord, 8 x "åpen kollektor" (ikke tilkoblet) samlere og 8 flyback-dioder å håndtere overspennings pigger (bruk valgfritt). (Det er en ULN280x-familie med litt forskjellige inngangskarakteristikker).

Denne enheten gir en rimelig måte å tilby 8 x 500 mA nedtrekksdrivere. En belastning koblet fra en utgang til V + slås på når inngangspinnen kjøres høyt. Når du har brukt en et par ganger, vil du finne dem trivielt enkle å bruke og veldig nyttige. (Det er også en ULN200x-familie med 7 kanaler per pakke).

YouTube "hvordan" video


Kjører en stepper motor

enter image description here

Også her


Kjøring av små likestrømsmotorer - og ganske mye annet.

enter image description here Et zillion eksempler

Digikey - tilgjengelig i 1 om ønskelig $ 0,72 / 1, $ 0,29 på 1000-tallet.

ULN2803 datablad


Til salgs hos Sparkfun - kan være ganske billigere, men disse er tilgjengelige

Nick Gammon
2015-10-20 13:45:43 UTC
view on stackexchange narkive permalink

Den anbefalte utgangen (kilde eller vask) fra en I / O-pinne er 20 mA. Det absolutte maksimum er 40 mA. Reléspolen din vil sannsynligvis forbruke mer enn det, spesielt når den først får strøm. Dette vil skade utgangspinnen. Så vil den til slutt mislykkes.

Ingenting ser ut til å være feil langt.

Nei, ikke ennå. :)

Hvordan kan man kontrollere slike komponenter uten å risikere Arduino? Hva er noen vanlige måter å oppnå dette på?

Bruk transistorer eller MOSFET.

Hvilke andre enheter kan vanligvis skade et Arduino-kort (eller en hvilken som helst mikrokontrollerenhet) på en lignende måte?

Noe som overskrider den maksimale spennings- eller strømgrensen som dokumentert i databladet. Spesielt spoler (f.eks. I reléer og motorer) har sannsynligvis høy revers spenning når de er slått av, og det er derfor du trenger en snubberdiode.

Ville det være tilrådelig å fortsette?

Det ville være tilrådelig å ta hensyn til det jeg skrev ovenfor, og å lese de mange, mange artiklene på nettet om hvordan du kjører motorer og releer fra en Arduino. Du er ikke den første personen som prøver dette.

Andy
2015-10-20 15:39:09 UTC
view on stackexchange narkive permalink

Ta en titt på den enkle kretsen på denne PDF fra Arduino Playground. Det viser en enkelt transistor for å drive et lite relé.

Som Russell sier i sitt svar, er en ULN2803 eller lignende en chip som gjør at du kan kjøre flere små releer, som er penere enn å bruke flere transistorer, hvis det er det du vil.

(Vær også oppmerksom på dioden "D1" i kretsen jeg koblet - du trenger dette, det er for å beskytte transistoren mot å bli skadet av induktive pigger som genereres når reléet slås av. Noen av ULN-brikkene har denne dioden innebygd, og det er grunnen til at du ikke alltid ser den i skjemaer.)

user14178
2015-10-20 18:22:30 UTC
view on stackexchange narkive permalink

For å virkelig beskytte din arduino er det verdt å sette en fotokobling på pinnen og kjøre kretsen din på den måten. Da kan ingen forsvunnet induktiv ladning eller kort påvirke arduinoen.

De kalles også OptoIsolators eller Optocouplers.

http://forum.arduino.cc/index.php ? topic = 143954.0

Du har helt rett, optoisolatorer er en fin vei å gå. En annen måte å gjøre det på, som er litt mindre isolerende, men likevel praktisk, er å bruke en operasjonsforsterker (Op Amp) som buffer. Disse kalles også 'folloer' Op Amps. Merk at du kan gjøre dette med hvilken som helst hylle OpAmp, du legger bare kretsen ut på en bestemt måte. https://en.wikipedia.org/wiki/Buffer_amplifier#Op-amp_implementation
Gil
2015-10-23 07:20:45 UTC
view on stackexchange narkive permalink

La oss se ut som noen grunnleggende, disse ser ut til å være grunnlaget for mange spørsmål:

En kondensator når strømmen slås på trekker en enorm mengde strøm som avtar når den blir ladet. Denne kurven kalles også RC-tidskonstanten (dette er nært, men ikke nøyaktig " http://www.electronics-tutorials.ws/rc/rc_1.html" vil gi en bedre forklaring).

Når du slår av en kondensator utlades med en eksponentiell hastighet (RC tidskonstant) avhengig av verdien, ladningsspenningen og belastningen. Dette gjør dem gode for å holde strøm i kort tid når strømmen svikter.

En induktor trekker ingenting når den først slås på, men strømmen øker eksponentielt til spenningen når forsyningsspenningen.

Når det induktive feltet er slått av i induktorens kollaps, får polariteten til å snu. Spenningen vil stige ubegrenset til vanligvis noe eksternt begrenser det. Jo raskere den slås av, jo raskere stiger tiden og spenningen. Energi vil slutte å strømme når den induktive ladningen blir spredt. Gjett hvor denne strømmen går når den induktive belastningen, for eksempel et relé, er koblet til en portpinne? Google for: "induktor / kondensatorladekurve" du finner mange fine grafer som forklarer dette. Hvis du ser på kretsen, har den katoden + koblet til den mest positive siden av strømforsyningen. I denne konfigurasjonen vil den ikke utføre med mindre spenningen er omvendt (når den induktive belastningen er slått av).

En annen vanlig misforståelse er at du kan laste en mikroprosessor I / O maksimalt. Dette er dårlig design. De gir deg maksimalt per pin, per port og for brikken. Ved romtemperatur vil du sannsynligvis komme unna med det en stund.

La oss anta at vi har en port med 40mA belastning. Effekten er 0,005 fra motorskinnen. Ved å bruke Ohms lov slipper vi 20 milliwatt kraft på en pin. Med denne lasthastigheten tar det ikke lang tid å overopphete enheten på grunn av intern strømforsyning.

Når utgangspinnen endres, trekker den mer strøm fordi den må lade eller tømme den interne og eksterne kapasitansen, 'mer varme', mer hastighet 'mer varme'.

Hvis du ser at noen av spesifikasjonene vil gi deg en maksimal temperatur, er det for krysset på matrisen, ikke tilfelletemperaturen. Plast er en dårlig leder, så varmesenkende pakken gjør ikke mye. Vurder dette sammen med omgivelsestemperaturen. Rangeringene blir gitt typisk med enheten ved 25C, gjett hva som skjer når det blir varmere.

Ha det gøy,

Gil



Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...