L'Alfabeto di Arduino #6: controlla carichi più importanti (con il Mosfet)
Controlla la velocità di un motore attraverso il PWM e un circuito che preserva Arduino dal contatto con voltaggi più alti.
1x Arduino
1x IRF52
1x 1n40070
1x Motor (5V to 9V)
L'IRF520 é un MOS-FET (Field Effect Transistor) che ci permette di controllare la quantità di elettricità che passa attraverso il motore. Il disegno riportato qui sotto ci spiega la mappatura del componente: G sta per Gate, D per Drain e S per Source. Intervenendo su Gate permetto all'elettricità di passare da Drain a Source. Il diodo di ricircolo (1n40070) impedisce all'elettricità generata di bruciare il componente. Per avere maggiori informazioni sull'IRF520 scarica il datasheet.

Andiamo a realizzare il circuito sottostante:

Andremo a controllare la velocità del motore da porta seriale (infatti la porta seriale oltre che a ricevere dati da Arduino ci permette anche di inviarne) attraverso l'uso dei numeri 0-9
const int analogOutPin = 9; // pin a cui attacchiamo il led
int outputValue = 0; // variabile in cui memorizzo il valore in uscita
int incomingByte; // variabile in cui memorizzo il valore seriale in entrata
void setup() {
// apro la porta seriale
Serial.begin(9600);
}
void loop() {
// se c'é u valore in entrata nella porta seriale
if (Serial.available() > 0) {
// leggi l'ultimo valore momorizzato nel buffer seriale:
incomingByte = Serial.read();
if (incomingByte == '0') {
analogWrite(analogOutPin, 0);
}
if (incomingByte == '1') {
analogWrite(analogOutPin, 25);
}
if (incomingByte == '2') {
analogWrite(analogOutPin, 50);
}
if (incomingByte == '3') {
analogWrite(analogOutPin, 75);
}
if (incomingByte == '4') {
analogWrite(analogOutPin, 100);
}
if (incomingByte == '5') {
analogWrite(analogOutPin, 125);
}
if (incomingByte == '6') {
analogWrite(analogOutPin, 150);
}
if (incomingByte == '7') {
analogWrite(analogOutPin, 175);
}
if (incomingByte == '8') {
analogWrite(analogOutPin, 200);
}
if (incomingByte == '9') {
analogWrite(analogOutPin, 255);
}
}
}
| Allegato | Dimensione |
|---|---|
| irf520.pdf | 96.45 KB |
| motore.zip | 5.65 KB |

Commenti