Raspberry Pi:Примеры/Управление вращением вала маломощного электродвигателя постоянного тока: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 2: | Строка 2: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Управление вращением вала маломощного электродвигателя постоянного тока= | =Управление вращением вала маломощного электродвигателя постоянного тока= | ||
Строка 10: | Строка 10: | ||
Сохраните программу и запустите из консоли или любой IDE: | Сохраните программу и запустите из консоли или любой IDE: | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
python3 gui_slider.py | python3 gui_slider.py | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 43: | Строка 43: | ||
====Python 2.X==== | ====Python 2.X==== | ||
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
from Tkinter import * | from Tkinter import * | ||
import RPi.GPIO as GPIO | import RPi.GPIO as GPIO | ||
Строка 75: | Строка 75: | ||
====Python 3.X==== | ====Python 3.X==== | ||
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
from tkinter import * | from tkinter import * | ||
import RPi.GPIO as GPIO | import RPi.GPIO as GPIO |
Текущая версия от 13:16, 18 июня 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Проверка/Оформление/Редактирование: Мякишев Е.А.
Управление вращением вала маломощного электродвигателя постоянного тока
Данный пример демонстрирует управление вращением вала маломощного электродвигателя постоянного тока, запитываемого с вывода 5V GPIO Raspberry PI.
Сохраните программу и запустите из консоли или любой IDE:
python3 gui_slider.py
Необходимое оборудование
- плата Raspberry Pi - 1шт.;
- пара перемычек;
- макетная плата - 1шт.;
- резистор 1 кОм - 1шт.;
- npn-транзистор(например:KSP2222ABU, 2N3904) - 1шт.;
- диод(например:1N4001) - 1шт.;
- маломощный электродвигатель постоянного тока - 1шт.;
Схема
Будьте осторожны при обращении с портами 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()