Raspberry Pi è una scheda basata su processore con architettura ARM progettata per ingegneri elettronici e hobbisti. Il PI è una delle piattaforme di sviluppo di progetti più affidabili attualmente disponibili. Con una maggiore velocità del processore e 1 GB di RAM, il PI può essere utilizzato per molti progetti di alto profilo come l'elaborazione delle immagini e Internet of Things.
Per fare uno qualsiasi dei progetti di alto profilo, è necessario comprendere le funzioni di base di PI. Tratteremo tutte le funzionalità di base di Raspberry Pi in questi tutorial. In ogni tutorial discuteremo una delle funzioni di PI. Entro la fine della serie di tutorial sarai in grado di realizzare progetti di alto profilo da solo. Controlla questi per iniziare con Raspberry Pi e Raspberry Pi Configuration.
Abbiamo discusso LED lampeggiante, interfaccia pulsanti e generazione PWM nei tutorial precedenti. In questo tutorial controlleremo la velocità di un motore CC utilizzando la tecnica Raspberry Pi e PWM. PWM (Pulse Width Modulation) è un metodo utilizzato per ottenere una tensione variabile da una fonte di alimentazione costante. Abbiamo discusso del PWM nel tutorial precedente.
Ci sono 40 pin di uscita GPIO in Raspberry Pi 2. Ma su 40, è possibile programmare solo 26 pin GPIO (da GPIO2 a GPIO27). Alcuni di questi pin svolgono alcune funzioni speciali. Con GPIO speciale messo da parte, abbiamo 17 GPIO rimanenti. Per saperne di più sui pin GPIO, segui: LED lampeggiante con Raspberry Pi
Ciascuno di questi 17 pin GPIO può fornire un massimo di 15 mA. E la somma delle correnti da tutti i pin GPIO non può superare i 50 mA. Quindi possiamo disegnare un massimo di 3mA in media da ciascuno di questi pin GPIO. Quindi non si dovrebbe manomettere queste cose a meno che non si sappia cosa si sta facendo.
Ci sono + 5V (Pin 2 e 4) e + 3.3V (Pin 1 e 17) pin di uscita di potenza sulla scheda per collegare altri moduli e sensori. Questa barra di alimentazione è collegata in parallelo all'alimentazione del processore. Quindi il prelievo di corrente elevata da questa barra di alimentazione influisce sul processore. C'è un fusibile sulla scheda PI che scatterà una volta applicato un carico elevato. È possibile assorbire 100 mA in modo sicuro dalla guida + 3,3 V. Stiamo parlando di questo qui perché; stiamo collegando il motore CC a + 3,3 V. Tenendo presente il limite di potenza, qui possiamo collegare solo motori a bassa potenza, se si desidera pilotare un motore ad alta potenza, considerare di alimentarlo da una fonte di alimentazione separata.
Componenti richiesti:
Qui stiamo usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Tutti i requisiti hardware e software di base sono stati discussi in precedenza, puoi cercarli nell'introduzione di Raspberry Pi, oltre a quello di cui abbiamo bisogno:
- Perni di collegamento
- Resistenza da 220Ω o 1KΩ (3)
- Piccolo motore CC
- Bottoni (2)
- Transistor 2N2222
- Diodo 1N4007
- Condensatore: 1000uF
- Tagliere per il pane
Spiegazione del circuito:
Come detto in precedenza, non possiamo prelevare più di 15 mA da nessun pin GPIO e il motore CC assorbe più di 15 mA, quindi il PWM generato da Raspberry Pi non può essere alimentato direttamente al motore CC. Quindi se colleghiamo il motore direttamente al PI per il controllo della velocità, la scheda potrebbe danneggiarsi in modo permanente.
Quindi useremo un transistor NPN (2N2222) come dispositivo di commutazione. Questo transistor qui aziona il motore CC ad alta potenza prendendo il segnale PWM da PI. Qui si dovrebbe prestare attenzione che il collegamento errato del transistor potrebbe caricare pesantemente la scheda.
Il motore è un'induzione e quindi durante la commutazione del motore, si verificano picchi induttivi. Questo picco riscalda pesantemente il transistor, quindi utilizzeremo Diode (1N4007) per fornire protezione al transistor contro il picco induttivo.
Per ridurre le fluttuazioni di tensione, collegheremo un condensatore da 1000uF all'alimentatore come mostrato nello schema del circuito.
Spiegazione di lavoro:
Una volta che tutto è collegato come da schema elettrico, possiamo accendere il PI per scrivere il programma in PYHTON.
Parleremo di alcuni comandi che useremo nel programma PYHTON.
Stiamo per importare il file GPIO dalla libreria, la funzione sottostante ci consente di programmare i pin GPIO di PI. Stiamo anche rinominando "GPIO" in "IO", quindi nel programma ogni volta che vogliamo fare riferimento ai pin GPIO useremo la parola "IO".
importa RPi.GPIO come IO
A volte, quando i pin GPIO, che stiamo cercando di utilizzare, potrebbero svolgere altre funzioni. In tal caso, riceveremo avvisi durante l'esecuzione del programma. Il comando seguente indica al PI di ignorare gli avvisi e procedere con il programma.
IO.setwarnings (False)
Possiamo fare riferimento ai pin GPIO di PI, sia per numero di pin a bordo che per numero di funzione. Come "PIN 35" sulla scheda è "GPIO19". Quindi diciamo qui o rappresenteremo il pin qui con "35" o "19".
IO.setmode (IO.BCM)
Stiamo impostando GPIO19 (o PIN35) come pin di uscita. Otterremo l'uscita PWM da questo pin.
IO.setup (19, IO.IN)
Dopo aver impostato il pin come output, dobbiamo impostare il pin come pin di output PWM, p = IO.PWM (canale di uscita, frequenza del segnale PWM)
Il comando precedente serve per impostare il canale e anche per impostare la frequenza del segnale PWM. 'p' qui è una variabile che può essere qualsiasi cosa. Stiamo usando GPIO19 come canale di uscita PWM. La ' frequenza del segnale PWM ' è stata scelta 100, poiché non vogliamo vedere il LED lampeggiante.
Il comando seguente viene utilizzato per avviare la generazione del segnale PWM, ' DUTYCYCLE ' è per impostare il rapporto di accensione, 0 significa che il LED sarà acceso per lo 0% del tempo, 30 significa che il LED sarà acceso per il 30% del tempo e 100 significa completamente acceso.
p.start (DUTYCYCLE)
Nel caso in cui la condizione tra parentesi graffe sia vera, le istruzioni all'interno del ciclo verranno eseguite una volta. Quindi, se il pin GPIO 26 diventa basso, le istruzioni all'interno del ciclo IF verranno eseguite una volta. Se il pin 26 GPIO non si abbassa, le istruzioni all'interno del ciclo IF non verranno eseguite.
if (IO.input (26) == False):
Mentre 1: viene utilizzato per il ciclo infinito. Con questo comando le istruzioni all'interno di questo ciclo verranno eseguite continuamente.
Abbiamo tutti i comandi necessari per ottenere il controllo della velocità con questo.
Dopo aver scritto il programma e averlo eseguito, non resta che utilizzare il controllo. Abbiamo due pulsanti collegati a PI; uno per aumentare il Duty Cycle del segnale PWM e l'altro per diminuire il Duty Cycle del segnale PWM. Premendo un pulsante, la velocità del motore CC aumenta e premendo l'altro pulsante, la velocità del motore CC diminuisce. Con questo abbiamo ottenuto il controllo della velocità del motore CC di Raspberry Pi.
Controlla anche:
- Controllo della velocità del motore CC
- Controllo motore CC utilizzando Arduino