top of page
Writer's picturechiperaris

Folosirea unui motor DC cu Arduino si tranzistor

In primul articol din aceasta serie am descoperit modul de functionare al unui motor DC si folosirea de baza a acestuia. Daca am facut proiectul descris in tutorialul anterior am observat ca motorul functiona la putere redusa. Puterea maxima emisa de Arduino este de 5V, iar majoritatea motoarelor functioneaza la voltaje mai mari. Daca am incerca sa marim puterea placa Arduino ar putea fi deteriorata. Cum putem amplifica puterea si controla motorul in mod indirect,folosind Arduino? Dispozitivul potrivit pentru aceasta sarcina este un tranzistor (dispozitiv semiconductor care poate actiona ca amplificator sau intrerupator,depinzand de puterea curentului aplicat la baza). Cu ajutorul unui tranzistor,putem opera un motor la capacitatea sa maxima,fara a suprasolicita Arduino.


Montajul


In montaj trebuie inclus un tranzistor (eu am folosit un tranzistor BJT NPN,dar se potriveste orice tranzistor BJT sau MOSFET) pentru controlul motorului,un rezistor de 220 ohm pentru limitarea curentului de la baza si o dioda (in acest caz 1N4007) pentru protectia tranzistorului impotriva varfurilor de tensiune negativa (baza a fost conectata la pinul digital 3):

Programul


Controlul motorului DC folosind PWM:


int pinMotor=3; //creare variabila intreaga "pinMotor" care contine pinul digital 3

int viteza; //creare variabila intreaga "viteza"


void setup()

{

pinMode(pinMotor, OUTPUT); //initializare pinMotor pentru emisie

Serial.begin(9600); //initializare comunicare seriala la viteza de 9600 baud

Serial.println("Scrie un numar cuprins intre 90 si 255"); /*afiseaza pe monitorul serial textul dintre paranteze */

Serial.println(""); //afiseaza pe monitorul serial pe o linie noua textul dintre paranteze

}


void loop()

{

if (Serial.available() > 0) //daca sunt disponibile date pentru citire

{

viteza= Serial.parseInt(); // variabila "viteza" este egala cu citirea datelor receptionate

}

if (viteza>=90 && viteza<=255){ //daca cariabila viteza este cuprinsa intre 50 si 255 PWM

analogWrite(pinMotor,viteza); /*trimite semnal analog catre pinMotor echivalent cu valoarea variabilei "viteza" */

Serial.print("Motorul se roteste cu:"); /*afiseaza pe monitorul serial textul dintre paranteze*/

Serial.print(viteza); //afiseaza pe monitorul serial variabila "viteza"

Serial.print(" PWM"); //afiseaza pe monitorul serial textul dintre paranteze

}

delay(500); // asteapte 500 ms

}


Dupa cum stim,valoarea maxima care poate fi introdusa la PWM este 255 (rezolutie de 8 biti),iar valoarea minima este 90 (valoare minima pentru care motorul porneste).

Prin urmare,plaja de valori care poate fi introdusa este cuprinsa intre 90 si 255 PWM.



21 views0 comments

Recent Posts

See All

Comentários


bottom of page