problem ed'affichage lcd i2c avec rotary encoder

bonjour a tous
voila mon probleme : je commande 2 moteurs pas a pas avec 2 easy driver v4.4 (step & dir)et 2 rotary encoder
mon lcd est la pour afficher la valeur des rotary encoder a l’ecran soit en % soit en valeur réelle de 0 a maxi

mes moteurs fonctionnent lorsque je decommente tout ce qui atrrait au lcd
Dés que je commente l’ecran i2c (0x20) mes moteurs et rotary ne fonctionnent plus
je ne sais pas ce qui coince

#include <Makeblock.h>
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <AccelStepper.h>
#include <LiquidCrystal_I2C.h>

#include "rotary_encoder.h"

const int pinSensor = 6;
const int pinRelay = 4;
const int delayAttente = 3000;  //Delay d'attente après avoir détecté le sensor EN MILLISECONDE !!!

AccelStepper spool(AccelStepper::DRIVER, 10, 11); // 10-PUL, 11-DIR
AccelStepper rubber(AccelStepper::DRIVER, 12, 13); // 12-PUL, 13-DIR
unsigned long oldTimeMotor = 0;

unsigned speedSpool = 500;
unsigned speedRubber = 500;

long current_position;
unsigned long oldTime = 0; 
bool relache = true;

RotaryEncoder encoderSpool( 52, 50, 48 );
RotaryEncoder encoderRubber( 7, 8, 9 );
unsigned long oldTimeEncoder = 0;

LiquidCrystal_I2C lcd( 0x20, 16, 4 );
unsigned long oldTimeScreen = 0;

void incrSpool()
{
  if( speedSpool < 2048 )
    speedSpool += 10;
}

void decrSpool()
{
  if( speedSpool > 0 )
    speedSpool -= 10;
}

void stopSpool()
{
  speedSpool = 0;
}

void incrRubber()
{
  if( speedRubber < 2048 )
    speedRubber += 10;
}

void decrRubber()
{
  if( speedRubber > 0 )
    speedRubber -= 10;
}

void stopRubber()
{
  speedRubber = 0;
}

void setup()
{  
  pinMode(pinSensor, INPUT); // top sensor pin 8
  pinMode( pinRelay, OUTPUT );
  digitalWrite( pinRelay, LOW );
  
  spool.setAcceleration(500);
  spool.setCurrentPosition(0);
  spool.setMaxSpeed(1024*2);
  
  rubber.setAcceleration(500);
  rubber.setCurrentPosition(0);
  rubber.setMaxSpeed(1024*2);

  Serial.begin( 115200 );

  encoderSpool.init();
  encoderSpool.setOnIncrement( incrSpool );
  encoderSpool.setOnDecrement( decrSpool );
  encoderSpool.setOnSwitchPush( stopSpool );

  encoderRubber.init();
  encoderRubber.setOnIncrement( incrRubber );
  encoderRubber.setOnDecrement( decrRubber );
  encoderRubber.setOnSwitchPush( stopRubber );

  lcd.init();
  lcd.backlight();
}

void loop() 
{ 
  encoder();
  motor();

  //screen();
}

void motor()
{
  if( micros() - oldTimeMotor < 30 )
    return;
  
  spool.setSpeed( speedSpool * 2 );
  rubber.setSpeed( speedRubber * 2 );
    
  if ( digitalRead(pinSensor) == LOW ) {     
    relache = false;
    oldTime = millis();
    digitalWrite( pinRelay, HIGH );
  }

  if( !relache && digitalRead( pinSensor ) == HIGH )
  {
    relache = true;
  }
  
  if( (millis() - oldTime) > delayAttente )
  {
    spool.run();
    digitalWrite( pinRelay, LOW );
  }
  
  rubber.run();

  oldTimeMotor = micros();
}

void encoder()
{
  if( millis() - oldTimeEncoder < 10 )
    return;
    
  encoderSpool.run();
  encoderRubber.run();

  oldTimeEncoder = millis();
}

void screen()
{
  if( millis() - oldTimeScreen < 300 )
    return;

  Serial.print( speedRubber );
  Serial.print( " - " );
  Serial.println( speedSpool );
  return;
  
  lcd.setCursor( 0, 0 );
  lcd.print( "Rubber : " );
  lcd.print( speedRubber );
  lcd.print( "    " );
  lcd.setCursor( 0, 2 );
  lcd.print( "Spool  : " );
  lcd.print( speedSpool );
  lcd.print( "    " );

  oldTimeScreen = millis();
}

a l’AIDE SVP
MERCi

filawinder_encoder.zip (1.79 KB)

pourquoi en zip ?

Bonjour Et bien parce que je ne sais pas comment l'ajouter autrement!

Voir là http://forum.arduino.cc/index.php?topic=315372.0

merci fdufnews