Paso 2: Motor voor de ventilador bladen
Nu dat nos hebben bepaald cuando de arduino een functie moet uitvoeren, hebben que nog iets puja en de functie dat hij kan uitvoeren. En de functie moeten de motoren op van de ventilador worden aangezet. Zoals ik gezegd tenía bestaat de ventilador uit 2 uit een 3V dc motor voor de ventilatie bladen en een voor motor de draai van de ventilador de servomecanismo de motoren. 3V dc motoren mogen Oorlog directa op een arduino worden aangesloten, dit omdat de arduino uit zijn digitale pinnen een comprimido amperaje van 30 mili amperio kan leveren. Dit en vergelijking tot de 3V dc motor die ongveer een dos amperios puja heeft om disfunción te Kunnan functioneren. De u DUS al motoren op directo de arduino aansluit zal de arduino waarschijnlijk doorbranden. DUS moet er tussen de arduino at de een módulo motoren komen wat wel de juiste piek aan de stroom de motoren leveren kan. DIT kan worden volbracht met een h-brug IC L298D, se reunió este módulo kunt u motoren vooruit, achteruit at at snelheid regelen van de motoren. Puerta de 2 pinnen van de arduino aan te sluiten op perno in3 en in4, puerta een van deze twee pinnen alta te maken gaat de motor vooruit, en omgekeerd. OP de módulo es ook een enA pin, de van de la worden "autorizada snelheid met este pin kan de" motoren. DIT kan geregeld worden met een PWM signaal, dit bepaald hoelang de motoren aan en uit staan dus ook de snelheid.
Hoe zien de verschillende snelheden eruit en functie de:
De snelheid van de MET analogWrite kan motoren geregeld worden, en de dit kan tussen 0 255. 0 es uit en 255 op zijn aller snelst. Hieronder vind u azada de snelheid van de ventilador bladen en soporte 1. En este código trekt te ventilador bladen op tot een bepaalde snelheid en blijft dan op die snelheid. IK heb gekozen om dit te pieza en functie vacío de aparte de een plaats van de bucle vacío, de omdat arduino del dan de functie niet uitvoert goed en bucle vacío de.
void motorspeed1()
{
digitalWrite (in1, LOW);
digitalWrite (in2, HIGH); acelerar de cero a velocidad uno
para (int i = 0; i < 100; i ++)
{
analogWrite(enA, i); Delay(50);
}
}