[CODE LUA] ESP8266

Bonjour,

Je sais je sais, c’est un forum Arduino et ma question porte sur un node-MCU V1. Mais à ce point ci, tout aide est la bienvenu.

J’essaie de réaliser ce simple projet.

Pour l’instant, je n’ai pas réussi à faire bouger le moteur. Suite à la suggestion d’un collègue, j’ai répliqué le schéma avec des LEDs pour voir s’il y avait une activité quelconque vers le moteur. Cependant, tout ce que j’ai comme activité sont les LEDs qui s’allument. J’aurais eu tendance à penser qu’elles s’auraient allumées par intermittence en répliquant le comportement des deux coils dans le moteur. Je ne comprend pas ce qui ne fonctionne pas.

Voici le code qui est roulé. Le schéma en question est lié en pièce jointe.

Merci!

init.lua

--init.lua
--
dofile('stepper.lua')
--
FWD=1
REV=-1
--
ROTATION_FULL=4096 --One revolution, 28BYJ-48 geared stepper motor
ROTATION_HALF=ROTATION_FULL / 2
FEW_STEPS=10
--
step_move(FEW_STEPS,FWD,1)
tmr.register(0, 5000, tmr.ALARM_SINGLE, function() 
    step_move(FEW_STEPS,REV,1) 
end);
tmr.start(0);

stepper.lua

-- stepper.lua
-- code from: http://www.esp8266.com/viewtopic.php?f=19&t=2326
-- simple stepper driver for controlling a stepper motor with a
-- l293d driver
-- nodemcu pins:  0  5  6  7
stepper_pins = {1,3,2,4} -- (A-)blue, (A+)pink, (B-)yellow, (B+)orange
-- half or full stepping
step_states4 = {
 {1,0,0,1},
 {1,1,0,0},
 {0,1,1,0},
 {0,0,1,1}
}
step_states8 = {
 {1,0,0,0},
 {1,1,0,0},
 {0,1,0,0},
 {0,1,1,0},
 {0,0,1,0},
 {0,0,1,1},
 {0,0,0,1},
 {1,0,0,1},
}
step_states = step_states8 -- choose stepping mode
step_numstates = 8 -- change to match number of rows in step_states
step_delay = 20 -- choose speed
step_state = 0 -- updated by step_take-function
step_direction = 1 -- choose step direction -1, 1
step_stepsleft = 0 -- number of steps to move, will de decremented
step_timerid = 4 -- which timer to use for the steps
-- setup pins
for i = 1, 4, 1 do
  gpio.mode(stepper_pins[i],gpio.OUTPUT)
end
-- turn off all pins to let motor rest
function step_stopstate() 
  for i = 1, 4, 1 do
    gpio.write(stepper_pins[i], 0)
  end
end
-- make stepper take one step
function step_take()
  -- jump to the next state in the direction, wrap
  step_state = step_state + step_direction
  if step_state > step_numstates then
    step_state = 1;
  elseif step_state < 1 then
    step_state = step_numstates
  end
  -- write the current state to the pins
  for i = 1, 4, 1 do
    gpio.write(stepper_pins[i], step_states[step_state][i])
  end
  -- might take another step after step_delay
  step_stepsleft = step_stepsleft-1
  if step_stepsleft > 0 then
    tmr.alarm(step_timerid, step_delay, 0, step_take )
  else
    step_stopstate()
  end
end
-- public method to start moving number of 'int steps' in 'int direction'
function step_move(steps, direction, delay)
  tmr.stop(step_timerid)
  step_stepsleft = steps
  step_direction = direction
  step_delay = delay
  step_take()
end
-- public method to cancel moving
function step_stop()
  tmr.stop(step_timerid)
  step_stepsleft = 0
  step_stopstate()
end

Carte NodeMCU pas de pb içi …tant qu’elle est gérée sous IDE Arduino (C / C++)
En "LUA-NodeMCU "pas évident qu’il y ait beaucoup de monde pour répondre…

LEDs qui s’allument. J’aurais eu tendance à penser qu’elles s’auraient allumées par intermittence en répliquant le comportement des deux coils dans le moteur

??? L’allumage des leds reproduit-il correctement la séquence d’alimentation attendue pour les bobines du moteur ? (je fais l’hypothèse que tu sais la séquence et donc l’ordre d’allumage attendu pour des leds)

Réference du shield ?
Référence du moteur ?
Câablage du moteur ?
Comment et par quoi est alimenté le moteur (tension, courant disponible)?