Pages: [1]   Go Down
Author Topic: Utgangskrets for store laster (12V, 500mA)  (Read 1204 times)
0 Members and 1 Guest are viewing this topic.
Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

#Skal trigge en strømkrevende magnetventil i fra min Arduino, men ønsker å unngå bruk av releer fordi jeg trenger noe som er veldig kjapt og presist.

Forsøkte å kople utgangen på Pin12 til Basis på en kraftig NPN transistor (MJE13005) via en 10K resistor, men den klarte ikke å åpne transistoren. Forsøkte også med en Basismotstand på 2,5K Ohm, men heller ikke det fungerte. Ubelastet så gikk spenningen opp til 1,5V, men balastet, så fikk jeg bare 0,5V inn på Basis.

Magnetventilen koplet jeg inn mellom Collektor +12V fra et bilbatteri. Koplet sammen Arduinoens GND mot 0V på batteriet. Brukte også en motkoplet diode over skolen.

Har det noe å si at min Arduino bare har power via USB-porten? Noen som har en standard løsning på en slik driverkrets?
Logged

BjornTore

Denmark
Offline Offline
Edison Member
*
Karma: 35
Posts: 1073
Happy Hobbyist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Det lyder meget rigtigt det du gør, så det lyder lidt underligt.
Har du husket at sætte pin12 som output? Kan vi se din sketch.

På denne side kan du se mange eksempler på hvordan det kan gøres:

http://www.bristolwatch.com/ele/transistor_drivers.htm

der er også et eksempel på Arduino Playground:

http://arduino.cc/playground/uploads/Learning/solenoid_driver.pdf

Den mest anbefalede måde at gøre det på er med en MOSFET transistor, den bliver ikke så varm som en "almindelig" transistor.
Du skal bare være opmærksom på at det skal være en logic-level udgave, dvs. at den er fuldt ledende når den får de 5V på gaten som din Arduino leverer.


« Last Edit: February 23, 2012, 05:54:51 am by Erni » Logged

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

# "Logic Level"? Det har jeg ikke satt inn, mulig det er feilen?

Ellers så ser jeg det finnes flere slike kretser hvor det er benyttet en Basis-motstand på bare 1K Ohm. Skal teste ut det også når jeg kommer hjem. Jeg fikk jo BE spenningen opp til 0,5V med dagens basismotstand på 2500 Ohm.

I det andre eksemplet du linket til så er det benyttet en TIP102 darlington transister. Den krever en BE-spenning på 1,3V, men i følge Wikipedia så er den veldig treg. Wikipedia omtaler "Silicon diode opto-isolator" som den kjappeste løsningen".  Har liggende noen 0,8A SRC Triac'er også. Mulig dem kan klare å gjøre jobben.


Dette er sketchet jeg brukte. Hjelp meg gjerne å sette inn det med "Logic Level" i scriptet.

/*
  SLIPPE TO DRÅPER TETT ETTER HVERANDRE 
Inngang 2 trekkes lava via en 10K resistor og trekkes til +5V ved hjelp av en momentan trykkbryter
 */

const int buttonPin=2;const int ledPin=12;int buttonState=2;
void setup(){pinMode(ledPin, OUTPUT);pinMode(buttonPin, INPUT);}
void loop(){buttonState=digitalRead(buttonPin);
if(buttonState == HIGH){
delay(1000);
digitalWrite(ledPin,HIGH);
delay(500);
digitalWrite(ledPin,LOW);delay(200);
digitalWrite(ledPin,HIGH);
delay(500);
digitalWrite(ledPin,LOW);}}

Logged

BjornTore

Denmark
Offline Offline
Edison Member
*
Karma: 35
Posts: 1073
Happy Hobbyist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Det med logic-level er en egenskab for MOFET's, det har ikke noget med din sketch at gøre.
Det hjælper sikkert med en mindre basismodstand, bare basisstrømmen ikke bliver over de 20ma

Iøvrigt ville dt hjælpe på læsbarheden hvis du sætter code tags omkring koden, sådan her:
Code:
/*
  SLIPPE TO DRÅPER TETT ETTER HVERANDRE 
Inngang 2 trekkes lava via en 10K resistor og trekkes til +5V ved hjelp av en momentan trykkbryter
 */

const int buttonPin=2;
const int ledPin=12;
int buttonState=2;

void setup(){
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);}

void loop(){
buttonState=digitalRead(buttonPin);
if(buttonState == HIGH){
delay(1000);
digitalWrite(ledPin,HIGH);
delay(500);
digitalWrite(ledPin,LOW);
delay(200);
digitalWrite(ledPin,HIGH);
delay(500);
digitalWrite(ledPin,LOW);}
}

Logged

Norway
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Electronics engineer with a great interest in photography (using Canon)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hei igjen! Ja nå fikk jeg kretesen til å fungere. Endret resistoren til 390 Ohm og da fikk jeg en BE strøm på 12mA og ventilen fungerte fint.

Tusen takk for hjelpen!

Code:
Test av Code-tagg

Det fungerte jo også fint  smiley
Logged

BjornTore

Pages: [1]   Go Up
Jump to: