Problema al juntar 2 codigos

Soy nuevo en la programacion con arduino. Hice un programa que es una balanza con una celda de carga y otro programa que hace funcionar un motor paso a paso y un servomotor.

Al juntar los 2 lo que hace es mostrar el valor de la balanza en el serial y no anda el motor paso a paso , y al sacar en el void loop la parte de la balanza el motor paso a paso anda.

#include <LiquidCrystal.h>
LiquidCrystal lcd(22, 24, 26, 28, 30, 32);

#include "HX711.h" //Libreria balanza
#define DOUT A1 //Pata del modulo
#define CLK A0 //Pata del modulo
HX711 balanza(DOUT, CLK); //Libreria balanza

#include <Servo.h> // Servo
Servo myservo; // Servo
int pos = 0; //posicion del servo

int steps = 5; // pata del pololu
int boton = 7; //pulsador
int enable = 3; //para que no se caliente el pololu

int estado = 0; // valor que guarda el estado del pulsador
int botonstate = 0; //estado anterior para la deteccionde flancos
int val = 0; //

void setup() {

lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(6,0);
lcd.print("Peso:");

Serial.begin(9600); // Balanza
Serial.print("lectura del valor del ADC: "); // Balanza
Serial.println(balanza.read()); // Balanza
Serial.println("no ponga ningun objeto sobre la balanza"); // Balanza
Serial.println("destarando..."); // Balanza
Serial.println("..."); // Balanza
balanza.set_scale(348141.4833); // Balanza
balanza.tare(20); // Balanza

pinMode (steps, OUTPUT); // Motor paso a paso
pinMode (boton,INPUT);
myservo.attach(9); // Servo
}

void loop() {

Serial.print("Peso:");
Serial.print(balanza.get_units(20),3);
Serial.println("kg");
delay(200);

lcd.setCursor(4, 1);
lcd.print(balanza.get_units(20),3);
lcd.print("kg");
delay(200);

val = digitalRead(boton) ;
if (val == HIGH)
{
botonstate = (botonstate + 1) % 4;
delay (200);

}
switch (botonstate) {

case 0:

digitalWrite(enable, LOW);
digitalWrite(steps, HIGH);
delayMicroseconds(5);
digitalWrite(steps, LOW);
delayMicroseconds(950);
digitalWrite(enable, HIGH);
break;

case 1:

digitalWrite(enable, LOW);
digitalWrite(steps, HIGH);
delayMicroseconds(5);
digitalWrite(steps, LOW);
delayMicroseconds(1500);
digitalWrite(enable, HIGH);
break;

case 2:

digitalWrite(enable, LOW);
digitalWrite(steps, HIGH);
delayMicroseconds(5);
digitalWrite(steps, LOW);
delayMicroseconds(2400);
digitalWrite(enable, HIGH);
break;

case 3:

digitalWrite(enable, HIGH);
for (pos = 0; pos <= 180; pos += 1)
{ //va de 0º a 180º
myservo.write(pos); //le dice al sero de ir a la posicion de la variabble "pos"
delay(10); //espera 10ms
}

for (pos = 180; pos >= 0; pos -= 1)
{ //va de 180º a 0º
myservo.write(pos); //le dice al sero de ir a la posicion de la variabble "pos"
delay(10); //espera 10ms
botonstate = 0;
}

break;

}
}

Ultimo_acance_lel.ino (3.7 KB)

Lee las normas del foro y edita este hilo usando etiquetas.
Por privado te envio guia.