Descubre todos los secretos del motor DC, cómo gestionarlo con un puente-H L298 y controlarlo desde Home Assistant. Añade de manera muy fácil un par de interruptores de final de carrera para que el motor se detenga al llegar a los extremos.
Y este es el código que hemos probado en el ESPHome:
esphome:
name: motor-exp
friendly_name: motor-exp
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "8H4EjBkZVGpGNWIGFxxxId4gKwIpv23QrvfY="
ota:
password: "5b0633f589955xxxd152bb938efd"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Motor-Exp Fallback Hotspot"
password: "icEmxxxYm1"
captive_portal:
# Conexiones del ESP8266 al L298
output:
- platform: gpio
id: motor_forward
pin: GPIO5 #D1
- platform: gpio
id: motor_reverse
pin: GPIO4 #D2
- platform: esp8266_pwm
pin: GPIO0 #D3
id: motor_speed
frequency: 1000Hz
# Barra de desplazamiento para elegir la velocidad del motor
number:
- platform: template
name: "Motor Velocidad"
id: motor_dc
min_value: 0
max_value: 100
step: 1
optimistic: true
initial_value: 100
# Con el objeto COVER podemos utilizar 3 botones: subir, bajar y stop
cover:
- platform: template
name: "Motor DC Control"
id: motor_dc_control
device_class: damper
open_action:
lambda: |-
id(motor_speed).set_level((id(motor_dc).state)/100);
id(motor_forward).turn_on();
id(motor_reverse).turn_off();
close_action:
lambda: |-
id(motor_speed).set_level((id(motor_dc).state)/100);
id(motor_forward).turn_off();
id(motor_reverse).turn_on();
stop_action:
lambda: |-
id(motor_speed).turn_off();
id(motor_forward).turn_off();
id(motor_reverse).turn_off();
optimistic: true
assumed_state: true

