Il est adaptable a plusieurs situation.
Le matériel utilisé :
Le Wemos D1 Mini. C'est lui qui commande. Ce jour, 2,50€ les 10.
. .
Le TMC2209. Très présent dans les imprimantes 3D, c'est lui qui sert d'interface entre le microprocesseur (ici le Wemos D1 Mini) et le moteur Nema 17. Ce jour, 17,60€ les 5.
. .
Le moteur avec poulies d'entrainement 1:1. Ce jour 14,90€ pièce, 3,70€ les 2 amortisseurs, Poulies + courroies 5€ environs.
. .
L'ensemble complet
. .
Le programme de test :
Code : Tout sélectionner
/*
***************************************************
****** Ascenseur avec un moteur pas à pas *******
****** *******
****** Programme V 1.0 *******
****** Du 22/02/2025 *******
****** Par C.ARFEL *******
****** *******
****** Carte Wemos D1 Mini *******
****** *******
****** Version 1.0 *******
****** Mise a quai manuelle *******
****** Afficheur lcd 16 x 2 I2C *******
****** RC + 5 sous sol *******
****** Menu par encodeur *******
****** *******
****** *******
****** Liste des bornes utilisées *******
****** *******
****** D0 Capteur infrarouge *******
****** D1 I2C écran *******
****** D2 I2C écran *******
****** D3 DIR commande de direction moteur *******
****** D4 STEP commande nb pas moteur *******
****** D5 SW encodeur *******
****** D6 DT encodeur *******
****** D7 Clic encodeur *******
****** D8 Arrêt d'urgence + FC total *******
****** RST (reset carte) *******
****** *******
****** Le croquis utilise ***** octets (**%)*******
****** de l'espace de stockage de *******
****** programmes. Le maximum est de *******
****** ****** octets. *******
****** *******
****** Les variables globales utilisent *******
****** **** octets (**%) de mémoire *******
****** dynamique, ce qui laisse **** *******
****** octets pour les variables locales. *******
****** Le maximum est de **** octets. *******
****** *******
****** *******
***************************************************
. Variables and constants in RAM (global, static), used 28184 / 80192 bytes (35%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1496 initialized variables
╠══ RODATA 920 constants
╚══ BSS 25768 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 59687 / 65536 bytes (91%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 26919 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 235076 / 1048576 bytes (22%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 235076 code in flash
*/
#include <AccelStepper.h>
const byte pin_DIR = D3; // définition borne DIR
const byte pin_STEP = D4; // définition borne STEP
AccelStepper stepper(AccelStepper::DRIVER, pin_STEP, pin_DIR); // création objet Stepper
void setup()
{
stepper.setMaxSpeed(10000.0); // Vitesse max moteur
stepper.setAcceleration(1000.0); // distance accélération / décélération
}
void loop()
{
delay(8000) ;
stepper.runToNewPosition(0);
delay(2000);
stepper.runToNewPosition(10000);
delay(2000);
stepper.runToNewPosition(20000);
delay(2000);
stepper.runToNewPosition(30000);
delay(2000);
stepper.runToNewPosition(40000);
delay(2000);
stepper.runToNewPosition(50000);
delay(2000);
stepper.runToNewPosition(30000);
delay(2000);
stepper.runToNewPosition(0);
delay(2000);
stepper.runToNewPosition(50000);
} // fin du loop
