Hulp nodig bij oefening over LED

Pagina: 1
Acties:
  • 355 views

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sinds kort zijn we op de hogeschool bezig met Raspberry Pi maar ik ben er zelf nog niet zo goed mee weg.
We moeten de werking van onderstaande code verklaren maar ik moet eerlijk toegeven dat ik er niet goed aan uit kan...Ik ben tot hier toe met alles mee maar deze oefening is een stuk moeilijker dan alle andere oefeningen die we tot nu toe hebben gehad in onze cursus. Zou iemand mij in het kort kunnen uitleggen wat deze code juist zal doen?

# blink LED
import RPi.GPIO as GPIO
import time
# to use raspberry pi GPIO numbers
GPIO.setmode(GPIO.BCM) #GPIO18

#blinking function
def blink(pin, aantalBlinks, periode, dutyCycle):
# setup GPIO output channel
GPIO.setup(pin, GPIO.OUT)
tijdhoog = periode * dutyCycle/100
tijdlaag = periode - tijdhoog
for teller in range(0, aantalBlinks):
GPIO.output(pin, GPIO.HIGH)
time.sleep(tijdhoog)
GPIO.output(pin, GPIO.LOW)
time.sleep(tijdlaag)

#main program blink GPIO18(pin12) 10 times
blink(18, 20, 0.5, 75)

#cleanup
GPIO.cleanup()
print"program exectued"

Alvast bedankt!

Alle reacties


Acties:
  • +1 Henk 'm!

  • DurkVell
  • Registratie: Augustus 2011
  • Laatst online: 14-09 23:30
Dat zullen heel wat leden kunnen uitleggen, maar of ze het zullen doen.....
Ik vermoed dat je zelf aan de bak zult moeten!
Hulp kan hier daarna natuurlijk altijd gezocht worden. 🙂

Succes

Acties:
  • 0 Henk 'm!

  • Freee!!
  • Registratie: December 2002
  • Nu online

Freee!!

Trotse papa van Toon en Len!

Basisprogrammeerklusje in een taal die ik niet ken, maar gemakkelijk genoeg kan lezen. Enige waar ik over struikel, is dat de loop niet netjes wordt afgesloten.

En heb je je nu speciaal voor dit huiswerkvraagje geregistreerd :?

[ Voor 17% gewijzigd door Freee!! op 20-03-2019 17:58 ]

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


Acties:
  • +1 Henk 'm!

  • jeanj
  • Registratie: Augustus 2002
  • Niet online

jeanj

F5 keeps me alive

als je het goed leest misschien gaat er een lampje branden. Wel led, want iets anders is niet zuinig

Everything is better with Bluetooth


Acties:
  • 0 Henk 'm!

  • Marco1994
  • Registratie: Juli 2012
  • Nu online
Freee!! schreef op woensdag 20 maart 2019 @ 17:57:
Basisprogrammeerklusje in een taal die ik niet ken, maar gemakkelijk genoeg kan lezen. Enige waar ik over struikel, is dat de loop niet netjes wordt afgesloten.

En heb je je nu speciaal voor dit huiswerkvraagje geregistreerd :?
Het is Python, daar sluit je loops niet ‘netjes af’ maar werk je met indentation(tabs).

Verder moet je hier met googlen goed uit kunnen komen. Ik hoop dat je iets van een goede text editor/IDE hebt. Dat maakt het een en ander gemakkelijker

Acties:
  • 0 Henk 'm!

  • Torac
  • Registratie: Maart 2017
  • Laatst online: 13-09 10:52
Python2 of 3?

Allereerst doe je de setup van de pin nooit in de def.

Dus pas dit aan;
code:
1
2
3
4
5
6
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

def blink(pin, aantalBlinks, periode, dutyCycle):
GPIO.setup(pin, GPIO.OUT)

Naar
code:
1
2
3
4
5
6
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)

def blink(pin, aantalBlinks, periode, dutyCycle):

En dan de rest erin doen met de goede spaties python is hier erg gevoelig voor altijd 4 spaties doen of 1 tab.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

def blink(pin, aantalBlinks, periode, dutyCycle):
    GPIO.setup(pin, GPIO.OUT)
    tijdhoog = periode * dutyCycle/100
    tijdlaag = periode - tijdhoog
    for teller in range(0, aantalBlinks):
        GPIO.output(pin, GPIO.HIGH)
        time.sleep(tijdhoog)
        GPIO.output(pin, GPIO.LOW)
        time.sleep(tijdlaag)

blink(18, 20, 0.5, 75)
GPIO.cleanup()


En dan werkt het bij mij gewoon en sluit je hem ook goed af. ;)

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

def blink(pin, aantalBlinks, periode, dutyCycle):
GPIO.setup(pin, GPIO.OUT)
tijdhoog = periode * dutyCycle/100
tijdlaag = periode - tijdhoog
for teller in range(0, aantalBlinks):
GPIO.output(pin, GPIO.HIGH)
time.sleep(tijdhoog)
GPIO.output(pin, GPIO.LOW)
time.sleep(tijdlaag)

blink(18, 20, 0.5, 75) #de 18 staat hier voor het BCM nummer van de pi pin die je hier kan vinden https://pinout.xyz/pinout. De 20 staat voor hoevaak je wilt dat hij blinkt dus 20x de 0,5 staat voor hoelang je wilt dat hij aanblijft bij het knipperen dus 20/0,5 = 10. Dus in 10 seconden knippert hij 20x. De 75 staat voor de felheid van de led, wil je hem feller of donkerder schroef je dit getal omlaag.

GPIO.cleanup()

[ Voor 30% gewijzigd door Torac op 20-03-2019 19:37 ]


Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 13:09

SA007

Moderator Tweaking
GoT is niet voor letterlijke huiswerkvragen.
Pagina: 1

Dit topic is gesloten.