servomotore e motore dc regolato con il potenzimetro

quando carico lo sketch su arduino mi da tutto ok, ma quando lo faccio andare entrambi i motori vanno a parte il potenziometro che regola il motore dc come posso fare?..ecco lo sketch:

#include <Servo.h>
#include <LiquidCrystal.h>
#include <SimpleDHT.h>
#define ENABLE 5
#define DIRA 3
#define DIRB 4

const int accendiMotore = 5;    

const int pulsanteOnOff = A1;  
const int potenziometro = A0;  
int statoPulsanteOnOff;                       //variabili di stato  
int statoPulsanteOnOffPrecedente; 

int motoreAttivo;  
int velocitaMotore;  


int pinDHT11 = 2;
SimpleDHT11 dht11;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
Servo myservo; 
int pos = 0;
void setup() {
 
 myservo.attach(6);
 pinMode(pulsanteOnOff, INPUT);  
 pinMode(pulsanteOnOff, OUTPUT);  
                                             //imposto accendiMotore su LOW  
 digitalWrite(accendiMotore, LOW);     
 lcd.begin(16, 2);
 pinMode(ENABLE,OUTPUT);
 pinMode(DIRA,OUTPUT);
 pinMode(DIRB,OUTPUT);
 Serial.begin(9600);
  
}

void loop() {

  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
   // in steps of 1 degree
   myservo.write(pos);              // tell servo to go to position in variable 'pos'
   delay(15);                       // waits 15ms for the servo to reach the position
 }
 for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
   myservo.write(pos);              // tell servo to go to position in variable 'pos'
   delay(15);                       // waits 15ms for the servo to reach the position
 }

 statoPulsanteOnOff = digitalRead(pulsanteOnOff);  
 delay(1);  

 velocitaMotore = analogRead(potenziometro)/4;  

if (statoPulsanteOnOff != statoPulsanteOnOffPrecedente) {  
   if (statoPulsanteOnOff == HIGH) {  
     motoreAttivo =! motoreAttivo;  
   }  
 }  

 if (motoreAttivo == 1) {  
   analogWrite(accendiMotore, velocitaMotore);  
 }  
 else {  
   analogWrite(accendiMotore, 0);  
 }  
 
 statoPulsanteOnOffPrecedente = statoPulsanteOnOff; 

 
 
 // start working...
 Serial.println("=================================");
 Serial.println("Sample DHT11...");
 
 // read with raw sample data.
 byte temperature = 0;
 byte humidity = 0;
 byte data[40] = {0};
 if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
   Serial.print("Read DHT11 failed");
   return;
 }
 
 Serial.print("Sample RAW Bits: ");
 for (int i = 0; i < 40; i++) {
   Serial.print((int)data[i]);
   if (i > 0 && ((i + 1) % 4) == 0) {
     Serial.print(' ');
   }
 }
 Serial.println("");
 
 Serial.print("Sample OK: ");
 Serial.print((int)temperature); Serial.print(" *C, ");
 Serial.print((int)humidity); Serial.println(" %");
 
 // DHT11 sampling rate is 1HZ.
 delay(1000);
   // Display Temperature in C
 lcd.setCursor(0, 0);
 lcd.print("Temp ");
 lcd.print(temperature);
 lcd.print(" C  ");

 lcd.print(humidity);
 lcd.print("%"); 
  
 delay(500);
 
 
  if(temperature >= 31 || humidity > 40)
 {
   Serial.println("PWM full then slow");
 //---PWM example, full speed then slow
 analogWrite(ENABLE,255); //enable on
 digitalWrite(DIRA,HIGH); //one way
 }
   
}

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO … Grazie. :slight_smile:

Qui una serie di link utili, non inerenti al tuo problema:

inoltre:
>berax: ti ricordo che in conformità al regolamento, punto 7, devi modificare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra) e NON all’interno dei tag QUOTE !

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

>berax: in conformità al REGOLAMENTO della sezione Italiana del Forum, punto 13, il cross-posting è proibito ([u]anche tra lingue diverse[/u]) e tu hai già posto la stessa/simile domanda QUI.

Pertanto, questo tuo thread viene chiuso e ti prego di continuare nella sezione Inglese [u]dove ti hanno già fornito delle risposte[/u]. Grazie.

Guglielmo