from dcmotor import DCMotor
from servo import Servo # Importation de la classe Servo
from machine import Pin, PWM, ADC, I2C
from time import sleep
import ssd1306 # importe le module ssd1306
i2c = I2C(0, scl=machine.Pin(5), sda=machine.Pin(4)) # Initialiser le bus I2C
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # Initialiser l'afficheur OLED
# Initialiser le RGB
red = Pin(7,Pin.OUT)
green = Pin(8,Pin.OUT)
blue = Pin(9,Pin.OUT)
# Initialiser le moteur DC
frequency = 15000
pin1 = Pin(16, Pin.OUT)
pin2 = Pin(17, Pin.OUT)
enable = PWM(Pin(13), freq=frequency)
dc_motor = DCMotor(pin1, pin2, enable)
# Initialisation du potentiomètre
# Remplacez 26 par le numéro de pin GPIO connecté au potentiomètre
pot = ADC(Pin(26))
# Initialisation du servomoteur
# Remplacez 15 par le numéro de pin GPIO connecté au servomoteur
servo = Servo(15)
#CODE
while True: # Boucle infinie
oled.fill(0) # Effacer l'écran
# Lecture de la valeur du potentiomètre
pot_value = pot.read_u16() # Lecture de la valeur du potentiomètre
# Conversion de la valeur du potentiomètre en angle pour le servomoteur
angle = pot_value / 65535 * 180
# Ajustement de l'angle du servomoteur
servo.set_angle(angle)
pot_value = pot.read_u16() # lire le potentionmètre
val = pot_value / 65535 * 180
#print(val)
if val < 120 :
oled.text("rouge", 0, 0) # Afficher le texte
red.value(1)
green.value(0)
blue.value(0)
elif val < 150:
oled.text("vert", 0, 0) # Afficher le texte
red.value(0)
green.value(1)
blue.value(0)
else :
oled.text("bleu", 0, 0) # Afficher le texte
red.value(0)
green.value(0)
blue.value(1)
oled.text("{:.1f}".format(pot_value), 0, 10)
oled.text("{:.1f} degre".format(angle), 0, 20)
oled.show() # Afficher l'écran
print(pot_value)
print(angle)
sleep(0.1) # Attend 100 millisecondes