motore DC non vuole saperne

Ciao a tutti,
sto facendo le mie prime prove con arduino e dopo i classici test iniziali con led e altro… ho voluto provare a far girare un motorino ma ovviamente… nulla da fare…

Questo è quello che ho seguito

questo il codice:

/*
Adafruit Arduino - Lesson 13. DC Motor
*/


int motorPin = 3;

void setup() 
{ 
 pinMode(motorPin, OUTPUT);
 Serial.begin(9600);
 while (! Serial);
 Serial.println("Speed 0 to 255");
} 


void loop() 
{ 
 analogWrite(motorPin, 50);
 /*if (Serial.available()){
   int speed = Serial.parseInt();
   Serial.println(speed);
   if (speed >= 0 && speed <= 255)
   {
     analogWrite(motorPin, speed);
   }
 }*/
}

mi sapete aiutare? dove sbaglio?

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO

… poi, in conformità al suddetto regolamento, punto 7, devi editare 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).

Guglielmo

Ciao,
fatto tutto.. ma il mio messaggio non risulta modificato.. in attesa di moderazione o ho sbagliato qualcosa?

.. no, tutto ok e il messaggio io lo vedo correttamente modificato. Grazie :slight_smile:

Guglielmo

Prova a togliere /* ed anche */

paulus1969:
Prova a togliere /* ed anche */

Spiega perché dovrebbe scommentare il codice che ha commentato… Lui invece di prendere da seriale la velocità l’ha messa fissa a 50, per cui non mi pare questo il problema.

ma ovviamente.. nulla da fare..

In genere i motivi sono tre

  1. Hai collegato male qualcosa
  2. il transistor ha una piedinatura diversa da quella del disegno
  3. il valore di 50 può non bastare in fase di avvio

Brunello:
3) il valore di 50 può non bastare in fase di avvio

Hm, effettivamente ad occhio mi sa che questa è la più probabile.
Potrebbe mettere almeno 150 oppure riattivare quel pezzo di codice e lo controlla via seriale come era nella demo originaria.
E ci faccia sapere. :slight_smile:

Era quello che intendevo.
Poi mi viene un altro dubbio su quel while !serial...

togli il dubbio.
Se non apre monitor seriale e non digita qualcosa lo sketch è bloccato nella setup in quel ciclo while.
Quel ciclo serve solo per la Leonardo o casi speciali. Codice presente in molti esempi/demo ma con scritto di solito // use only for Leonardo

Allora i miei sospetti erano fondati... :slight_smile:

grazie a tutti per le risposte. Leggo solo ora perchè sono stato via qualche giorno. Questa sera faccio qualche prova in base ai vostri suggerimenti e vi faccio sapere. Siete stati gentilissimi :slight_smile: