Raspberry Pi este o placă bazată pe procesor de arhitectură ARM, concepută pentru ingineri electronici și pasionați. PI este una dintre cele mai de încredere platforme de dezvoltare a proiectelor de acum. Cu o viteză mai mare a procesorului și 1 GB RAM, PI poate fi utilizat pentru multe proiecte de profil înalt, cum ar fi procesarea imaginilor și Internetul obiectelor.
Pentru realizarea oricăror proiecte de profil, trebuie să înțelegeți funcțiile de bază ale PI. Vom acoperi toate funcționalitățile de bază ale Raspberry Pi în aceste tutoriale. În fiecare tutorial vom discuta una dintre funcțiile PI. Până la sfârșitul seriilor de tutoriale veți putea să faceți proiecte de înaltă calitate de unul singur. Verificați aceste informații pentru Noțiuni introductive despre configurația Raspberry Pi și Raspberry Pi.
Am discutat despre LED Blinky, Button Interfacing și generarea PWM în tutoriale anterioare. În acest tutorial vom controla viteza unui motor de curent continuu folosind tehnica Raspberry Pi și PWM. PWM (Pulse Width Modulation) este o metodă utilizată pentru obținerea tensiunii variabile din sursa de energie constantă. Am discutat despre PWM în tutorialul anterior.
Există 40 de pini de ieșire GPIO în Raspberry Pi 2. Dar din 40, pot fi programate doar 26 de pini GPIO (GPIO2 până la GPIO27). Unele dintre aceste pini îndeplinesc unele funcții speciale. Cu GPIO special pus deoparte, mai avem 17 GPIO. Pentru a afla mai multe despre pinii GPIO, accesați: LED-ul clipește cu Raspberry Pi
Fiecare dintre acești 17 pini GPIO poate livra maximum 15mA. Iar suma curenților de la toți pinii GPIO nu poate depăși 50mA. Deci, putem extrage maxim 3mA în medie din fiecare dintre acești pini GPIO. Deci, nu ar trebui să falsificați aceste lucruri decât dacă știți ce faceți.
Există pinuri de ieșire de putere + 5V (Pin 2 și 4) și + 3,3V (Pin 1 și 17) pe placa pentru conectarea altor module și senzori. Această șină de alimentare este conectată în paralel cu puterea procesorului. Așadar, extragerea curentului mare de pe această șină de alimentare afectează procesorul. Există o siguranță pe placa PI care se va declanșa odată ce aplicați o sarcină mare. Puteți trage 100mA în siguranță de pe șina + 3,3V. Vorbim despre asta aici pentru că; conectăm motorul de curent continuu la + 3.3V. Având în vedere limita de putere, putem conecta aici doar un motor de mică putere, dacă doriți să conduceți un motor de mare putere, luați în considerare alimentarea acestuia de la o sursă de alimentare separată.
Componente necesare:
Aici folosim Raspberry Pi 2 Model B cu Raspbian Jessie OS. Toate cerințele de bază privind hardware-ul și software-ul sunt discutate anterior, le puteți căuta în Introducerea Raspberry Pi, altele decât cele de care avem nevoie:
- Pinii de conectare
- Rezistor 220Ω sau 1KΩ (3)
- Motor DC mic
- Butoane (2)
- 2N2222 Tranzistor
- 1N4007 Diodă
- Condensator - 1000uF
- Pâine
Explicația circuitului:
Așa cum am spus mai devreme, nu putem extrage mai mult de 15mA de la niciun pin GPIO, iar motorul de curent continuu atrage mai mult de 15mA, astfel încât PWM generat de Raspberry Pi nu poate fi alimentat direct la motorul de curent continuu. Deci, dacă conectăm motorul direct la PI pentru controlul vitezei, placa s-ar putea deteriora permanent.
Deci vom folosi un tranzistor NPN (2N2222) ca dispozitiv de comutare. Acest tranzistor acționează motorul de curent continuu de mare putere prin preluarea semnalului PWM de la PI. Aici ar trebui să fim atenți la faptul că conectarea greșită a tranzistorului ar putea încărca puternic placa.
Motorul este o inducție și, astfel, în timp ce comutăm motorul, experimentăm creșterea inductivă. Acest spiking va încălzi puternic tranzistorul, așa că vom folosi dioda (1N4007) pentru a oferi protecție tranzistorului împotriva spikingului inductiv.
Pentru a reduce fluctuațiile de tensiune, vom conecta un condensator 1000uF pe sursa de alimentare, așa cum se arată în schema de circuite.
Explicație de lucru:
Odată ce totul este conectat conform schemei circuitului, putem porni PI pentru a scrie programul în PYHTON.
Vom vorbi despre câteva comenzi pe care le vom folosi în programul PYHTON.
Vom importa fișierul GPIO din bibliotecă, funcția de mai jos ne permite să programăm pinii GPIO ai PI. De asemenea, redenumim „GPIO” în „IO”, așa că în program ori de câte ori dorim să ne referim la pinii GPIO vom folosi cuvântul „IO”.
import RPi.GPIO ca IO
Uneori, când pinii GPIO, pe care încercăm să îi folosim, ar putea să îndeplinească alte funcții. În acest caz, vom primi avertismente în timpul executării programului. Comanda de mai jos îi spune PI să ignore avertismentele și să continue programul.
IO.setwarnings (Fals)
Putem consulta pinii GPIO ai PI, fie prin numărul pinului la bord, fie prin numărul funcției lor. La fel ca „PIN 35” de pe tablă este „GPIO19”. Deci, spunem aici fie că vom reprezenta pinul aici cu „35”, fie cu „19”.
IO.setmode (IO.BCM)
Setăm GPIO19 (sau PIN35) ca pin de ieșire. Vom obține ieșire PWM de la acest pin.
IO.setup (19, IO.IN)
După setarea pinului ca ieșire, trebuie să configurăm pinul ca pin de ieșire PWM, p = IO.PWM (canal de ieșire, frecvența semnalului PWM)
Comanda de mai sus este pentru configurarea canalului și, de asemenea, pentru setarea frecvenței semnalului PWM. 'p' aici este o variabilă care poate fi orice. Folosim GPIO19 ca canal de ieșire PWM. „ frecvența semnalului PWM ” a fost aleasă 100, deoarece nu vrem să vedem LED-ul intermitent.
Comanda de mai jos este utilizată pentru a porni generarea semnalului PWM, „ DUTYCYCLE ” este pentru setarea raportului de pornire, 0 înseamnă LED-ul va fi aprins 0% din timp, 30 înseamnă LED-ul va fi aprins 30% din timp și 100 înseamnă complet aprins.
p.start (DUTYCYCLE)
În cazul în care condiția din paranteze este adevărată, instrucțiunile din buclă vor fi executate o singură dată. Deci, dacă pinul GPIO 26 scade, atunci instrucțiunile din bucla IF vor fi executate o singură dată. Dacă pinul GPIO 26 nu scade, atunci instrucțiunile din bucla IF nu vor fi executate.
if (IO.input (26) == False):
În timp ce 1: este utilizat pentru bucla infinită. Cu această comandă, instrucțiunile din această buclă vor fi executate continuu.
Avem toate comenzile necesare pentru a realiza controlul vitezei cu acest lucru.
După ce am scris programul și l-am executat, nu mai rămâne decât să acționăm controlul. Avem două butoane conectate la PI; una pentru incrementarea ciclului de funcționare a semnalului PWM și alta pentru decrementarea ciclului de funcționare a semnalului PWM. Prin apăsarea unui buton, viteza motorului continuu crește și prin apăsarea celuilalt buton, viteza motorului continuu scade. Cu aceasta am obținut controlul vitezei motorului DC de către Raspberry Pi.
De asemenea, verificați:
- Controlul vitezei motorului DC
- Control motor DC folosind Arduino