raspberry pi part 16

13
www.techvilla.org.in TECHVILLA www.techvilla.org. in

Upload: techvilla

Post on 15-Aug-2015

32 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: Raspberry pi Part 16

www.techvilla.org.in

TECHVILLA

www.techvilla.org.in

Page 2: Raspberry pi Part 16

www.techvilla.org.in

Interfacing rgb led with raspberry-pi

RGB leds.

Brief theory of pulse width modulation.

Write a code in python to glow rgb led.

Page 3: Raspberry pi Part 16

www.techvilla.org.in

RGB Leds

RED-GREEN-BLUE Light Emitting Diode.

Page 4: Raspberry pi Part 16

www.techvilla.org.in

Types of rgb led

Page 5: Raspberry pi Part 16

www.techvilla.org.in

Pulse Width Modulation

Pulse-width modulation (PWM), or pulse-duration modulation (PDM), is a commonly used technique for controlling power to inertial electrical devices, made practical by modern electronic power switches.

The PWM switching frequency has to be much faster than what would affect the load, which is to say the device that uses the power.

The main advantage of PWM is that power loss in the switching devices is very low.

PWM has also been used in certain communication systems where its duty cycle has been used to convey information over a communications channel.

Page 6: Raspberry pi Part 16

www.techvilla.org.in

Types of PWM

Three types of pulse-width modulation (PWM) are possible:

The pulse center may be fixed in the center of the time window and both edges of the pulse moved to compress or expand the width.

The lead edge can be held at the lead edge of the window and the tail edge modulated.

The tail edge can be fixed and the lead edge modulated.

Page 7: Raspberry pi Part 16

Principle

Pulse-width modulation uses a rectangular pulse wave whose pulse width is modulated resulting in the variation of the average value of the waveform.

The simplest way to generate a PWM signal is the intersective method, which requires only a sawtooth or a triangle waveform (easily generated using a simple oscillator) and a comparator

When the value of the reference signal (the red sine wave in figure 2) is more than the modulation waveform (blue), the PWM signal (magenta) is in the high state, otherwise it is in the low state.

Page 8: Raspberry pi Part 16

Applications

Page 9: Raspberry pi Part 16

www.techvilla.org.in

Telecommunications

In telecommunications, the widths of the pulses correspond to specific data values encoded at one end and decoded at the other.

Pulses of various lengths (the information itself) will be sent at regular intervals (the carrier frequency of the modulation).

The inclusion of a clock signal is not necessary, as the leading edge of the data signal can be used as the clock if a small offset is added to the data value in order to avoid a data value with a zero length pulse.

Page 10: Raspberry pi Part 16

www.techvilla.org.in

Power delivery

PWM can be used to control the amount of power delivered to a load without incurring the losses that would result from linear power delivery by resistive means.

Potential drawbacks to this technique are the pulsations defined by the duty cycle, switching frequency and properties of the load.

With a sufficiently high switching frequency and, when necessary, using additional passive electronic filters, the pulse train can be smoothed and average analog waveform recovered.

Page 11: Raspberry pi Part 16

www.techvilla.org.in

Audio effects and amplification

PWM is sometimes used in sound (music) synthesis, in particular subtractive synthesis, as it gives a sound effect similar to chorus or slightly detuned oscillators played together.

he ratio between the high and low level is typically modulated with a low frequency oscillator, or LFO.

In addition, varying the duty cycle of a pulse waveform in a subtractive-synthesis instrument creates useful timbral variations.

Page 12: Raspberry pi Part 16

www.techvilla.org.in

Wiring rgb with gpio pins.

Page 13: Raspberry pi Part 16

www.techvilla.org.in

codeimport RPi.GPIO as GPIO        

import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(21, GPIO.OUT) #set pin 21 to output

p = GPIO.PWM(21,50)        #set the PWM on pin 21 to 50%

p.start(0)

try:

while True:

for i in range (100):

p.ChangeDutyCycle(i)

time.sleep(0.02)         #These last three lines are going to loop and increase the power from 1% to 100% gradually

for i in range(100):

p.ChangeDutyCycle(100-i)

time.sleep(0.02)         #These three lines loop and decrease the power from 100%-1% gradually

except KeyboardInterrupt:

pass                

p.stop()

GPIO.cleanup()