Stap 2: Motor voor de ventilator bladen
Nu dat we hebben bepaald wanneer de arduino een functie moet uitvoeren, hebben we nog iets nodig in de functie dat hij kan uitvoeren. In de functie moeten de motoren op van de ventilator worden aangezet. Zoals ik gezegd had festivalprogramma de ventilator uit 2 motoren uit een 3V dc motor voor de ventilatie bladen nl een servo motor voor de draai van de ventilator. 3V dc motoren mogen nooit direct op een arduino worden aangesloten, dit omdat de arduino uit zijn digitale pinnen een maximale stroomsterkte van 30 milli ampère kan leveren. Dit in vergelijking tot de 3V dc motor sterven ongveer een halve ampere nodig heeft om optimaal te kunnen functioneren. Dus al u de motoren direct op de arduino aansluit zal de arduino reasonably doorbranden. Dus moet er een module tussen de arduino nl de motoren komen wat wel de juiste piek stroom aan de motoren kan leveren. Dit kan worden volbracht ontmoette een h-brug IC L298D, ontmoette deze module kunt u motoren vooruit, achteruit nl nl snelheid regelen van de motoren. Deur de 2 pinnen van de arduino aan te sluiten op pin 3 nl in4, deur een van deze twee pinnen hoog te maken gaat de motor vooruit, en omgekeerd. Op de module is ook een enA pin, met deze pin kan de snelheid aangepast worden van de motoren. Dit kan geregeld worden voldaan een PWM signaal, dit bepaald hoelang de motoren aan nl uit staan dus ook de snelheid.
Hoe zien de verschillende snelheden eruit in de functie:
Met analogWrite kan de snelheid van de motoren geregeld worden, dit kan tussen 0 en 255. 0 is uit nl 255 is op zijn aller snelst. Hieronder vind u hoe de snelheid van de ventilator bladen in stand 1. In deze code trekt te ventilator bladen op tot een bepaalde snelheid nl blijft dan op die snelheid. Ik heb gekozen om dit te zetten in een aparte void function in plaats van in de vervallen lus, omdat de arduino de functie dan niet goed uitvoert in de leegte lus.
VOID motorspeed1()
{
digitalWrite (in1, laag);
digitalWrite (in2, hoge); versnellen van nul tot snelheid een
for (int i = 0; ik < 100; i ++)
{
analogWrite(enA, i); delay(50);
}
}