Golawch LED gyda GPIO y Mws Mafon

Yn gynharach eleni cawsoch daith o amgylch GPIO y Mws Cwn Môr a hefyd yn argymell rhai byrddau byrion defnyddiol iawn ar gyfer adnabod rhifau pin. Heddiw, rydym yn parhau â'r thema honno ac yn dechrau defnyddio'r pinnau hyn ynghyd â chod a chaledwedd.

Y GPIO yw sut mae'r Mws Mafon yn siarad â'r byd tu allan - "pethau go iawn" - gan ddefnyddio cod i raglennu signalau a folteddau i mewn ac allan o'r pennawd 40-pin.

Mae codio gyda'r GPIO yn rhesymol syml i ddechrau, yn enwedig ar gyfer prosiectau dechreuwyr megis LEDs a buzzers. Gyda dim ond ychydig o gydrannau ac ychydig linellau o god gallwch chi olau neu fflachio LED fel rhan o'ch prosiect.

Bydd yr erthygl hon yn dangos i chi yr hyn sydd ei angen arnoch i oleuo LED gan ddefnyddio cod Python ar eich Mws Mafon, gan ddefnyddio'r dull traddodiadol 'RPi.GPIO'.

01 o 04

Yr hyn sydd ei angen arnoch chi

Dim ond ychydig o rannau syml a rhad sydd eu hangen ar gyfer y prosiect hwn. Richard Saville

Dyma restr o bopeth y bydd ei angen arnoch ar gyfer y prosiect cychwyn bach hwn. Dylech allu dod o hyd i'r eitemau hyn yn eich hoff siop gwneuthurwr neu arwerthiannau ar-lein.

02 o 04

Creu'r Cylchdaith - Cam 1

Cysylltwch bob pin i'r breadboard gyda gwifrau siwmper. Richard Saville

Byddwn yn defnyddio 2 pinnau GPIO ar gyfer y prosiect hwn, pin daear (pin ffisegol 39) ar gyfer coes daear y LED, a phin GPIO generig (GPIO 21, pin ffisegol 40) i rymio'r LED - ond dim ond pan rydym yn penderfynu - sef lle mae'r cod yn dod i mewn.

Yn gyntaf, dilewch eich Mws Mws. Nawr, gan ddefnyddio'r gwifrau siwmper, cysylltwch y pin daear i lôn ar eich breadboard. Nesaf yr un peth ar gyfer pin GPIO, gan gysylltu â lôn wahanol.

03 o 04

Creu'r Cylchdaith - Cam 2

Mae'r LED a'r gwrthydd yn cwblhau'r cylched. Richard Saville

Nesaf rydym yn ychwanegu'r LED a gwrthsefyll y cylched.

Mae gan LEDs polaredd - sy'n golygu bod rhaid eu gwifrau mewn ffordd benodol. Fel arfer mae ganddynt goes un hirach sef y goes anod (cadarnhaol), ac fel arfer yn ymyl fflat ar ben pen plastig LED sy'n dynodi'r goes cathod (negyddol).

Defnyddir gwrthydd i amddiffyn y ddau LED rhag cael gormod o gyfredol, a phin GPIO o 'roi' gormod - a allai niweidio'r ddau.

Mae rhywfaint o raddfa gwrthsefyll generig ar gyfer LEDs safonol - 330ohm. Mae rhai mathemateg y tu ôl i hynny, ond ar hyn o bryd gadewch i ni ganolbwyntio ar y prosiect - gallwch chi bob amser edrych ar gyfraith ohms a phynciau cysylltiedig wedyn.

Cysylltwch un goes o'r gwrthsefyll i'r lôn GND ar eich bwrdd, a'r gyfes gwrthsefyll arall i'r lôn sy'n gysylltiedig â choes byrrach eich LED.

Bellach mae angen i goes goes'r LED ymuno â'r lôn sy'n gysylltiedig â'r pin GPIO.

04 o 04

Cod GPIO Python (RPi.GPIO)

Mae RPi.GPIO yn llyfrgell ardderchog ar gyfer defnyddio pinnau GPIO. Richard Saville

Ar hyn o bryd, mae gennym gylched wedi'i wifro i fyny ac yn barod i fynd, ond nid ydym wedi dweud wrth ein pin GPIO i anfon unrhyw bŵer eto, felly ni ddylid goleuo eich LED.

Gadewch i ni wneud ffeil Python i ddweud wrth ein pin GPIO i anfon rhywfaint o bŵer am 5 eiliad ac yna stopio. Bydd y fersiwn ddiweddaraf o Raspbian yn cael y llyfrgelloedd GPIO anweddus wedi'u gosod eisoes.

Agor ffenestr derfynell a chreu sgript Python newydd trwy fynd i mewn i'r gorchymyn canlynol:

sudo nano led1.py

Bydd hyn yn agor ffeil wag i ni fynd i mewn i'n cod. Rhowch y llinellau isod:

#! / usr / bin / python # Mewnforio y llyfrgelloedd mae angen i ni fewnforio RPi.GPIO fel amser mewnforio GPIO # Gosodwch y modd GPIO GPIO.setmode (GPIO.BCM) # Gosodwch y rhif GPIO LED LED = 21 # Gosodwch y pin GPIO LED fel allbwn GPIO.setup (LED, GPIO.OUT) # Trowch y pin GPIO ar GPIO.output (LED, Gwir) # Arhoswch 5 eiliad time.sleep (5) # Trowch y pin GPIO oddi ar GPIO.output (LED, Ffug)

Gwasgwch Ctrl + X i achub y ffeil. I redeg y ffeil, rhowch y gorchymyn canlynol yn y derfynell a gwasgwch:

sudo python led1.py

Dylai'r LED ysgafn am 5 eiliad, yna trowch i ben, gan orffen y rhaglen.

Beth am roi cynnig ar newid y rhif 'time.sleep' i oleuo'r LED am wahanol adegau, neu geisio newid 'GPIO.output (LED, Gwir)' i 'GPIO.output (LED, Ffug)' a gweld beth sy'n digwydd?