Raspberry Pi:Примеры/Управление вращением вала маломощного электродвигателя постоянного тока

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.



Управление вращением вала маломощного электродвигателя постоянного тока

Данный пример демонстрирует управление вращением вала маломощного электродвигателя постоянного тока, запитываемого с вывода 5V GPIO Raspberry PI.

Сохраните программу и запустите из консоли или любой IDE:

python3 gui_slider.py


Необходимое оборудование

Схема

Будьте осторожны при обращении с портами GPIO вашего Raspberry Pi. Помните входы и выходы GPIO расссчитаны на напряжение +3,3В


В данном примере эмиттер транзистора находится слева и он заземлен,база соединяется через резистор с 12 выводом GPIO, а коллектор соединяется с одним из выводов маломощного электродвигателя, второй вывод электродвигателя соединяется с 2 выводом GPIO(5V).

Диод в цепи используется для защиты от наводки, которая может повредить как транзистор так и вывод GPIO.

Все манипуляции по подключению МОП-транзистора производите только при отключенном питании платы Raspberry Pi


Код

Python 2.X

from Tkinter import *
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
pwm = GPIO.PWM(18, 500)
pwm.start(100)

class App:
	
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        scale = Scale(frame, from_=0, to=100, 
              orient=HORIZONTAL, command=self.update)
        scale.grid(row=0)


    def update(self, duty):
        pwm.ChangeDutyCycle(float(duty))

root = Tk()
root.wm_title('PWM Power Control')
app = App(root)
root.geometry("200x50+0+0")
root.mainloop()

Python 3.X

from tkinter import *
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
pwm = GPIO.PWM(18, 500)
pwm.start(100)

class App:
	
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        scale = Scale(frame, from_=0, to=100, 
              orient=HORIZONTAL, command=self.update)
        scale.grid(row=0)


    def update(self, duty):
        pwm.ChangeDutyCycle(float(duty))

root = Tk()
root.wm_title('PWM Power Control')
app = App(root)
root.geometry("200x50+0+0")
root.mainloop()

См.также

Внешние ссылки