]> git.piffa.net Git - sketchbook_andrea/blob - motors/motor_4_serial/motor_4_serial.ino
Merge branch 'master' of kim:/home/git/sketchbook_andrea
[sketchbook_andrea] / motors / motor_4_serial / motor_4_serial.ino
1 /*
2  Simple Motor:  Seriale
3
4  Motore DC con variazione della velocita' impostata da connessione seriale
5
6  */
7
8 const int motorPin     = 9;
9 int motValue   ;
10
11 void setup() {
12     pinMode(motorPin, OUTPUT);
13     Serial.begin(9600); // Input
14     Serial.println("\t Usare valori da 0-255");
15 // Serial.setTimeout(2000); // Imposta il tempo di time out per la lettura
16     // del buffer seriale, default = 1000ms
17 }
18
19 void loop() {
20     if (Serial.available()) { 
21         motValue = Serial.parseInt(); // leggiamo un valore da seriale
22         motValue = constrain(motValue,0,255); // Limitiamo l'input dell'utente
23
24         analogWrite(motorPin,motValue); // Change the PWM speed of the motor
25         Serial.print("Velocita' motore  = ");
26         Serial.println(motValue);
27     }
28 }
29
30 /* Domande
31 1. Perche' il motore si resetta a zero dopo una breve pausa?
32 2. Come e' possibile fare in modo che il motore resti attivo
33    al valore dato?
34 3. Da cosa e' dovuto e come e' possibile rendere il circuito piu' responsivo
35   all'input dell'utente.
36 - Risposte a fondo pagina
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 1. Perche' vede il valore di terminazione riga
64   e lo scarta facendolo passare per zero
65 2. Impostare il monitor seriale per "Nessun fine riga"
66 2.1 impostare un ciclo condizionale che controlli che l'input sia composto solo da numeri
67 3. Impostare Serial.setTimeout per definire il tempo di lettura del buffer seriale
68 */