Progetto 6: Lampada d’atmosfera
Descrizione
La lampada d’atmosfera della casa intelligente è composta da 4 SK6812RGB LED. Un RGB LED appartiene a un semplice modulo luminoso, che può regolare il colore per ottenere l’effetto luminario di diverse tonalità. Inoltre, può essere ampiamente utilizzata in edifici, ponti, strade, giardini, cortili, piani e altri campi di illuminazione decorativa e allestimento di locali, durante Natale, Halloween, San Valentino, Pasqua, la Festa nazionale nonché in altre festività e scene d’atmosfera.
In questo esperimento realizzeremo vari effetti di illuminazione.
Conoscenze sul componente
Dal diagramma schematico possiamo vedere che questi quattro RGB LED sono tutti collegati in serie. In realtà, indipendentemente dal loro numero, possiamo usare un pin per controllare un RGB LED e farlo visualizzare qualsiasi colore. Ogni RGBLED è un pixel indipendente, composto dai colori R, G e B, che può raggiungere 256 livelli di luminosità e completare la riproduzione a colori vera di 16777216 colori.
Inoltre, il pixel contiene un circuito driver amplificatore per il condizionamento del segnale di latch dei dati e un circuito di rimodellamento del segnale, che garantiscono efficacemente un’elevata coerenza del colore del punto luce.


Pin
SK6812 |
26 |
|---|---|
\ |
Progetto 6.1 RGB Sk6812
Controlleremo gli SK6812 per mostrare vari effetti di illuminazione.
Codice di test
#Import Pin, neopiexl and time modules.
from machine import Pin
import neopixel
import time
#Define the number of pin and LEDs connected to neopixel.
pin = Pin(26, Pin.OUT)
np = neopixel.NeoPixel(pin, 4)
#brightness :0-255
brightness=100
colors=[[brightness,0,0], #red
[0,brightness,0], #green
[0,0,brightness], #blue
[brightness,brightness,brightness], #white
[0,0,0]] #close
#Nest two for loops to make the module repeatedly display five states of red, green, blue, white and OFF.
while True:
for i in range(0,5):
for j in range(0,4):
np[j]=colors[i]
np.write()
time.sleep_ms(50)
time.sleep_ms(500)
time.sleep_ms(500)
Risultato del test
Le lampade d’atmosfera della casa intelligente mostreranno rosso, verde, blu e bianco.
Progetto 6.2 Controllo con pulsanti Sk6812
Descrizione
Ci sono due pulsanti a interruttore per cambiare il colore della lampada d’atmosfera.
Codice di test
#Import Pin, neopiexl and time modules.
from machine import Pin
import neopixel
import time
button1 = Pin(16, Pin.IN, Pin.PULL_UP)
button2 = Pin(27, Pin.IN, Pin.PULL_UP)
count = 0
#Define the number of pin and LEDs connected to neopixel.
pin = Pin(26, Pin.OUT)
np = neopixel.NeoPixel(pin, 4)
#brightness :0-255
brightness=100
colors=[[0,0,0],
[brightness,0,0], #red
[0,brightness,0], #green
[0,0,brightness], #blue
[brightness,brightness,brightness] #white
] #close
def func_color(val):
for j in range(0,4):
np[j]=colors[val]
np.write()
time.sleep_ms(50)
#Nest two for loops to make the module repeatedly display five states of red, green, blue, white and OFF.
while True:
btnVal1 = button1.value() # Reads the value of button 1
#print("button1 =",btnVal1) #Print it out in the shell
if(btnVal1 == 0):
time.sleep(0.01)
while(btnVal1 == 0):
btnVal1 = button1.value()
if(btnVal1 == 1):
count = count - 1
print(count)
if(count <= 0):
count = 0
btnVal2 = button2.value()
if(btnVal2 == 0):
time.sleep(0.01)
while(btnVal2 == 0):
btnVal2 = button2.value()
if(btnVal2 == 1):
count = count + 1
print(count)
if(count >= 4):
count = 4
if(count == 0):
func_color(0)
elif(count == 1):
func_color(1)
elif(count == 2):
func_color(2)
elif(count == 3):
func_color(3)
elif(count == 4):
func_color(4)
Risultato del test
Possiamo cambiare il colore della lampada d’atmosfera premendo i pulsanti 1 e 2.