X-Git-Url: http://git.piffa.net/web?p=sketchbook_andrea;a=blobdiff_plain;f=motors%2Fmotor_4_serial%2Fmotor_4_serial.ino;fp=motors%2Fmotor_4_serial%2Fmotor_4_serial.ino;h=27a89ab3875151d46d21f3452b70ffb2829c6432;hp=0000000000000000000000000000000000000000;hb=ea8d99c7d1bf9824a769c81533fe90e437ccd360;hpb=75928e346c7e5631544b0bea01e2d4ae9a5d749e diff --git a/motors/motor_4_serial/motor_4_serial.ino b/motors/motor_4_serial/motor_4_serial.ino new file mode 100644 index 0000000..27a89ab --- /dev/null +++ b/motors/motor_4_serial/motor_4_serial.ino @@ -0,0 +1,68 @@ +/* + Simple Motor: Seriale + + Motore DC con variazione della velocita' impostata da connessione seriale + + */ + +const int motorPin = 9; +int motValue ; + +void setup() { + pinMode(motorPin, OUTPUT); + Serial.begin(9600); // Input + Serial.println("\t Usare valori da 0-255"); +// Serial.setTimeout(2000); // Imposta il tempo di time out per la lettura + // del buffer seriale, default = 1000ms +} + +void loop() { + if (Serial.available()) { + motValue = Serial.parseInt(); // leggiamo un valore da seriale + motValue = constrain(motValue,0,255); // Limitiamo l'input dell'utente + + analogWrite(motorPin,motValue); // Change the PWM speed of the motor + Serial.print("Velocita' motore = "); + Serial.println(motValue); + } +} + +/* Domande +1. Perche' il motore si resetta a zero dopo una breve pausa? +2. Come e' possibile fare in modo che il motore resti attivo + al valore dato? +3. Da cosa e' dovuto e come e' possibile rendere il circuito piu' responsivo + all'input dell'utente. +- Risposte a fondo pagina + + + + + + + + + + + + + + + + + + + + + + + + + + +1. Perche' vede il valore di terminazione riga + e lo scarta facendolo passare per zero +2. Impostare il monitor seriale per "Nessun fine riga" +2.1 impostare un ciclo condizionale che controlli che l'input sia composto solo da numeri +3. Impostare Serial.setTimeout per definire il tempo di lettura del buffer seriale +*/