---
# System prepended metadata

title: VAJE

---

```python=
import neopixel
from random import randrange
from machine import Pin, ADC
from time import sleep

led = 16
np = neopixel.NeoPixel(Pin(5),led)

led1 = 16
np1 = neopixel.NeoPixel(Pin(17),led1)

led2 = 16
np2 = neopixel.NeoPixel(Pin(16),led2)

led3 = 16
np3 = neopixel.NeoPixel(Pin(4),led3)
nakl = (randrange(255),randrange(255),randrange(255))
nakl1 = (randrange(255),randrange(255),randrange(255))

NUM_LED = 16
sz = [4,8,12,16]

n1 = 16
pot = ADC(Pin(25))
leds = neopixel.NeoPixel(Pin(15),n1)

t1 = 0

while True:
    t = (randrange(255),randrange(255),randrange(255))
    for i in range(led):
        np[i] = t
    np.write()
    sleep(0.5)
    for i in range(led):
        np[i] = [0,0,0]
    np.write()
    sleep(0.1)

    if t1 >= led1:
        t1 = 0
    for p in range(led1):
        np1[p] = [0,0,0]
    np1[t1] = [155,155,155]
    t1 = t1 + 1
    np1.write()
    sleep(0.001)

    t2 = (randrange(255),randrange(255),randrange(255))
    for k in range(led2):
        np2[k] = t2
    np2.write()
    sleep(0.01)

    for z in range(led3):
        np3[z] = nakl
        np3.write()
        sleep(0.02)
    for z in range(led3 -1,-1,-1):
        np3[z] = nakl1
        np3.write()
        sleep(0.02)

    for m in range(n1):
        leds[m-1] = [0, 0, 0]
        leds[m] = [150, 500, 50]

        sleep(max(pot.read() / 1000, 0.1))
        leds.write()
        
```


# Poenostavljena koda:
```python=
import neopixel
from random import randrange
from machine import Pin, ADC
from time import sleep

def set_leds_color(strip, color):
    for i in range(NUM_LED):
        strip[i] = color
    strip.write()

def blink_random_color(strip, delay_on, delay_off):
    color = (randrange(255), randrange(255), randrange(255))
    set_leds_color(strip, color)
    sleep(delay_on)
    set_leds_color(strip, (0, 0, 0))
    sleep(delay_off)

NUM_LED = 16
np = [neopixel.NeoPixel(Pin(pin), NUM_LED) for pin in [5, 17, 16, 4]]

pot = ADC(Pin(25))

t1 = 0
while True:
    blink_random_color(np[0], 0.5, 0.1)

    if t1 >= NUM_LED:
        t1 = 0
    set_leds_color(np[1], (0, 0, 0))
    np[1][t1] = (155, 155, 155)
    t1 += 1
    np[1].write()
    sleep(0.001)

    blink_random_color(np[2], 0.01, 0)


    gradient_color = (randrange(255), randrange(255), randrange(255))
    for z in range(NUM_LED):
        np[3][z] = gradient_color if z % 2 == 0 else (gradient_color[2], gradient_color[1], gradient_color[0])
        np[3].write()
        sleep(max(pot.read() / 1000, 0.02))
```

# DHT SENZOR
```python=
import neopixel
from machine import Pin
import dht

NUM_LEDS = 30  # Število LED diod na traku
PIN_NUM = 5  # Pin, na katerega je priključen LED trak
np = neopixel.NeoPixel(Pin(PIN_NUM), NUM_LEDS)
dht_sensor = dht.DHT22(Pin(4))  # Nadomestite s številko pina, na katerega je priključen DHT22

def update_color():
    dht_sensor.measure()
    temp = dht_sensor.temperature()
    humidity = dht_sensor.humidity()
    # Spremenite formulo za barvo glede na vaše potrebe
    return (int(temp * 2), int(humidity * 2), 0)

while True:
        np.fill(update_color())
        np.write()
```

# VSE V ENEM
Utripajoči LED-pikseli (2 točki):

Pikseli na traku morajo utripati namerno.
Kroženje svetlobe (2 točki):

Svetloba na traku mora krožiti okoli LED-kroga.
Spreminjanje barve LED-pikselov:

Naključno spreminjanje barv (1 točka).
Logično spreminjanje barv (2 točki):
Barva LED-pikselov je odvisna od prejšnje barve naslednjega piksla.
Spreminjanje smeri animacije (3 točke):

Animacija spreminja svojo smer glede na poljuben dejavnik.)
```python=
import neopixel
from machine import Pin
from time import sleep
from random import randrange

NUM_LEDS = 30 
PIN_NUM = 5 
np = neopixel.NeoPixel(Pin(PIN_NUM), NUM_LEDS)

def utripajoci_led():
    for i in range(NUM_LEDS):
        np[i] = (randrange(255), randrange(255), randrange(255))
    np.write()
    sleep(0.5)
    for i in range(NUM_LEDS):
        np[i] = (0, 0, 0)
    np.write()
    sleep(0.5)

def krozenje_svetlobe():
    for i in range(NUM_LEDS):
        np[i] = (255, 255, 255)
        if i > 0:
            np[i - 1] = (0, 0, 0)
        np.write()
        sleep(0.1)

def spreminjanje_barv(logicno=False):
    predhodna_barva = (0, 0, 0)
    for i in range(NUM_LEDS):
        nova_barva = (randrange(255), randrange(255), randrange(255))
        np[i] = predhodna_barva if logicno else nova_barva
        predhodna_barva = nova_barva
        np.write()
        sleep(0.1)

def spreminjanje_smeri_animacije(dejavnik):
    obratna_smer = dejavnik 
    range_func = range(NUM_LEDS-1, -1, -1) if obratna_smer else range(NUM_LEDS)
    for i in range_func:
        np[i] = (255, 0, 0)
        np.write()
        sleep(0.1)
        np[i] = (0, 0, 0)


while True:
    utripajoci_led()
    krozenje_svetlobe()
    spreminjanje_barv(logicno=True)
    spreminjanje_smeri_animacije(dejavnik=randrange(2))
```

# PREJŠNJI TEST:(3)

-------------------------------------------------------------------------
utripajoči led pixli
 - led pixli na traku utripajo pomeni da se lucka prizge uganse prizge uganse...
 Zrcaljenje animacije
  - animacija naj bo simetricna(ali levo ali desno, ali gor ali dol)
Spreminajnje barv led pixlov
 - glede na predhodni pixel(gradient)
 Izmenicne barve LED pixlov
 - v animaciji je vsak drugi pixel pobarvan z isto barvo. Vsak prvi pa isto s svojo barvo(recimo ledica 1-rdeča, ledica 2-modra,ledica 3-rdeca, ledica 4-modra...)
 Nadzor močnosti barve z uporao potenciometra

 Kontrola animacije z gumbom(animacija se zacne od začetka ob pritisku na gumb)
 Animaciaj spreminja hitrost glede na DHT22 senzor(od vlage ali teperature)
 
 To mi je naredu chatgpt:
 ```python
from machine import Pin, ADC
import neopixel
import dht
import time

# Nastavitve pinov
LED_PIN = 15  # Pin, na katerega so povezani LED trakovi
BUTTON_PIN = 14  # Pin, na katerega je povezan gumb
POT_PIN = 32  # Pin, na katerega je povezan potenciometer
DHT_PIN = 4  # Pin, na katerega je povezan senzor DHT22
DHT_SENSOR_TYPE = dht.DHT22

# Nastavitve LED trakov
NUM_LEDS = 10  # Število LED pikslov
PIXEL_COLORS = [(255, 0, 0), (0, 0, 255)]  # Barve LED pikslov
BRIGHTNESS = 0.5  # Privzeta svetlost LED pikslov (0-1)

# Inicializacija komponent
leds = neopixel.NeoPixel(Pin(LED_PIN), NUM_LEDS)
button = Pin(BUTTON_PIN, Pin.IN, Pin.PULL_UP)
pot = ADC(Pin(POT_PIN))
dht_sensor = dht.DHT22(Pin(DHT_PIN))

# Funkcija za branje vrednosti potenciometra in pretvorbo v svetlost
def read_pot_brightness():
    return pot.read_u16() / 65535  # Vrednost potenciometra normaliziramo na obseg 0-1

# Funkcija za branje temperature iz senzorja DHT22
def read_temperature():
    dht_sensor.measure()
    return dht_sensor.temperature()

# Funkcija za branje vlage iz senzorja DHT22
def read_humidity():
    dht_sensor.measure()
    return dht_sensor.humidity()

# Funkcija za izmenične barve LED pikslov
def alternate_colors():
    for i in range(NUM_LEDS):
        if i % 2 == 0:
            leds[i] = PIXEL_COLORS[0]
            leds.write()
        else:
            leds[i] = PIXEL_COLORS[1]
            leds.write()

# Funkcija za zrcaljenje animacije
def mirror_animation():
    for i in range(NUM_LEDS):
        leds[i] = PIXEL_COLORS[i % len(PIXEL_COLORS)]
        leds.write()

# Funkcija za utripajoči led piksli
def flashing_pixels():
    while True:
        for color in PIXEL_COLORS:
            for i in range(NUM_LEDS):
                leds[i] = color
                leds.write()
            time.sleep(0.5)

# Funkcija za nadzor močnosti barve z uporabo potenciometra
def control_brightness():
    while True:
        brightness = read_pot_brightness()
        leds.brightness(brightness)
        time.sleep(0.1)

# Funkcija za nadzor animacije z gumbom
def control_animation():
    while True:
        if not button.value():
            flashing_pixels()  # Na pritisni gumb zaženemo utripajoče piksle

# Funkcija za spreminjanje hitrosti animacije glede na temperaturo
def control_speed():
    while True:
        temperature = read_temperature()
        # Prilagodite hitrost animacije glede na temperaturo
        delay = int(1000 / (temperature + 1))  # Lahko prilagodite glede na potrebe
        time.sleep_ms(delay)

# Začetek izvajanja kode
flashing_pixels() 
mirror_animation()  # Začetna animacija (na primer zrcaljena animacija)
control_animation()  # Začne nadzor animacije z gumbom
```

par stvari mi dela ostalo ne

tam k pise #zacetek izvajanja kode das ime funkcije, v funkcije pa dodas se leds.write()
        






 #    OD DORIANA
 
 ```python
#utripajoči led pixli
# - led pixli na traku utripajo pomeni da se lucka prizge uganse prizge uganse...
# Zrcaljenje animacije
#  - animacija naj bo simetricna(ali levo ali desno, ali gor ali dol)
#Spreminajnje barv led pixlov
# - glede na predhodni pixel(gradient)
# Izmenicne barve LED pixlov
# - v animaciji je vsak drugi pixel pobarvan z isto barvo. Vsak prvi pa isto s svojo barvo(recimo ledica #1-rdeča, ledica 2-modra,ledica 3-rdeca, ledica 4-modra...)
# Nadzor močnosti barve z uporao potenciometra
#
# Kontrola animacije z gumbom(animacija se zacne od začetka ob pritisku na gumb)
# Animaciaj spreminja hitrost glede na DHT22 senzor(od vlage ali teperature)

from machine import Pin, ADC
from time import sleep
import neopixel
import random

nl = 16
led = neopixel.NeoPixel(Pin(18), nl)
speed = ADC(Pin(32))
btn = Pin(2, Pin.IN, Pin.PULL_UP)

def off():
    led.fill([0,0,0])
    led.write()

def fill():
    led.fill([255,0,0])
    led.write()

def zrcaljenje():
    zb = []
    for i in range(16):
        if i == 0 or i == 8:
            led[i] = (255, 0, 0)
            led.write()
            zb.append((255, 0, 0))
            sleep(0.2)
        elif i < 8:
            led[i] = (0, 255, 0)
            led.write()
            zb.append((0, 255, 0))
            sleep(0.2)
        else:
            led[i] = (0, 0, 255)
            led.write()
            zb.append((0, 0, 255))
            sleep(0.2)
    for i in range(5):
        off()
        sleep(0.5)
        for i in range(16):
            led[i] = zb[i]
        led.write()
        sleep(0.5)

while True:
    for i in range(5):
        fill()
        sleep(0.5)
        off()
        sleep(0.5)
    zrcaljenje()
    sleep(5)
```
# jernej poglj u grupo z alenam za test mas not cis ucpodi