Projet 7 : Ventilateur

Description

Dans ce projet, nous allons apprendre comment fabriquer un petit ventilateur.

Connaissances sur les composants

Le petit ventilateur utilise un moteur DC 130 et des pales de ventilateur sécurisées. Vous pouvez utiliser la sortie PWM pour contrôler la vitesse du ventilateur.

image33

Méthode de contrôle

Deux broches sont nécessaires pour contrôler le moteur du ventilateur, une pour INA et une pour INB. La plage de valeurs PWM est 0~255. Lorsque la sortie PWM des deux broches est différente, le ventilateur peut tourner.

INA - INB <= -45

Rotation dans le sens horaire

INA - INB >= 45

Rotation dans le sens anti-horaire

INA ==0, INB == 0

Arrêt

Broches de contrôle

INA

19

INB

18

Projet 7.1 Ventilateur

Nous pouvons contrôler la vitesse de rotation du ventilateur dans les sens anti-horaire et horaire.

Code de test

from machine import Pin,PWM
import time
#Two pins of the motor
INA =PWM(Pin(19,Pin.OUT),10000)#INA corresponds to IN+
INB =PWM(Pin(18,Pin.OUT),10000)#INB corresponds to IN-

try:
    while True:
        #Counterclockwise 2s
        INA.duty(0) #The range of duty cycle is 0-1023
        INB.duty(700)
        time.sleep(2)
        #stop 1s
        INA.duty(0)
        INB.duty(0)
        time.sleep(1)
        #Turn clockwise for 2s
        INA.duty(600)
        INB.duty(0)
        time.sleep(2)
        #stop 1s
        INA.duty(0)
        INB.duty(0)
        time.sleep(1)
except:
    INA.duty(0)
    INB.duty(0)
    INA.deinit()
    INB.deinit()

Résultat du test

Le ventilateur tournera dans les sens horaire et anti-horaire à différentes vitesses.

Projet 7.2 Ventilateur contrôlé par bouton

Le bouton 1 contrôle l’interrupteur du ventilateur.

Code de test

from machine import Pin,PWM
import time
#Two pins of the motor
INA =PWM(Pin(19,Pin.OUT),10000)#INA corresponds to IN+
INB =PWM(Pin(18,Pin.OUT),10000)#INB corresponds to IN-
button1 = Pin(16, Pin.IN, Pin.PULL_UP)
count = 0

try:
    while True:
        btnVal1 = button1.value()  # Reads the value of button 1
        if(btnVal1 == 0):
            time.sleep(0.01)
            while(btnVal1 == 0):
                btnVal1 = button1.value()
                if(btnVal1 == 1):
                    count=count + 1
                    print(count)
        val = count % 2
        if(val == 1):
            INA.duty(0) #The range of duty cycle is 0-1023
            INB.duty(700)
        else:
            INA.duty(0)
            INB.duty(0)
except:
    INA.duty(0)
    INB.duty(0)
    INA.deinit()
    INB.deinit()

Résultat du test

Appuyez sur le bouton 1, le ventilateur commence à tourner ; appuyez à nouveau sur le bouton 1, le ventilateur s’arrête.