from machine import Pin,ADC, I2C
from utime import sleep_ms
from ssd1306 import SSD1306_I2C
import framebuf
import math
from neopixel import NeoPixel
anillo = NeoPixel(Pin(12), 16)
colores=[(255,255,0),(255,255,0),(255,255,0),(255,255,0),(255,255,0),(0,0,255),(0,0,255),(255,0,0),(255,0,0),(255,0,0),(255,0,0),(255,0,0),(0,0,255),(0,0,255),(255,255,0),(255,255,0)]
ancho = 128
alto = 64
i2c = I2C(0, scl=Pin(22), sda=Pin(23))
oled = SSD1306_I2C(ancho, alto, i2c)
oled.fill(1)
oled.text("bienvenidos",24,28,0)
for i in range (5):
oled.invert(1)
oled.show()
sleep_ms(20)
oled.invert(0)
oled.show()
sleep_ms(20)
oled.fill(1)
datoH=ADC(Pin (35))
datoH.atten(ADC.ATTN_11DB) # para calibrar de 0 a 3.6v
datoH.width(ADC.WIDTH_12BIT) # establecer resolución
datoV=ADC(Pin (32))
datoV.atten(ADC.ATTN_11DB) # para calibrar de 0 a 3.6v
datoV.width(ADC.WIDTH_12BIT) # establecer resolución
boton=Pin(13, Pin.IN, Pin.PULL_UP)
pausa=200
for i in range (-50,146,15):
oled.text("arquitectura",i,28,0)
sleep_ms(pausa)
oled.show()
oled.text("arquitectura",i,28,1)
def lineas():
oled.fill(1)
oled.line(0,0,128,64,0)
oled.line(128,0,0,64,0)
oled.show()
lineas()
def circulo (a,b,c,d,f,g):
for anguloGrados in range(a, b, c): # Ángulo de giro de la línea del eje (de 0º a 360º en intervalos de 5º)
anguloRadianes = (math.pi*anguloGrados)/180 # Ángulo de giro de la línea del eje en radianes
xLinea = int(math.cos(anguloRadianes)*d) # Coordenada x línea del eje
yLinea = int(math.sin(anguloRadianes)*d)
#print (xLinea)
#print (yLinea)
oled.pixel (xLinea+f,yLinea+g,0)
oled.show()
#circulo(0,360,10,15,64,32)
while True:
print( datoH.read(), datoV.read(), boton.value())
if datoH.read()<200:
oled.text("izq",16,28,0)
colores=colores[-1:]+colores[:-1]
for i in range (16):
anillo[i]=colores[i]
anillo.write()
sleep_ms(pausa)
elif datoH.read()>3800:
oled.text("derecha",72,28,0)
elif datoV.read()>3800:
oled.text("abajo",40,44,0)
elif datoV.read()<200:
oled.text("arriba",40,12,0)
elif not (boton.value()):
circulo (0,360,5,10,64,32)
else:
lineas()
for i in range (16):
anillo[i]=colores[i]
anillo.write()
sleep_ms(pausa)
oled.show()