]> git.piffa.net Git - sketchbook_andrea/blob - motors/simple_motor_4_serial/simple_motor_4_serial.ino
FSM
[sketchbook_andrea] / motors / simple_motor_4_serial / simple_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   {
22      motValue = Serial.parseInt(); // leggiamo un valore da seriale
23      motValue = constrain(motValue,0,255); // Limitiamo l'input dell'utente
24   
25     analogWrite(motorPin,motValue); // Change the PWM speed of the motor
26     Serial.print("Velocita' motore  = ");      
27     Serial.println(motValue); 
28   }
29      
30
31
32 }
33
34 /* Domande
35 1. Perche' il motore si resetta a zero dopo una breve pausa?
36 2. Come e' possibile fare in modo che il motore resti attivo
37    al valore dato?
38 3. Da cosa e' dovuto e come e' possibile rendere il circuito piu' responsivo
39   all'input dell'utente.
40 - Risposte a fondo pagina
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 1. Perche' vede il valore di terminazione riga 
68   e lo scarta facendolo passare per zero
69 2. Impostare il monitor seriale per "Nessun fine riga"
70 2.1 impostare un ciclo condizionale che controlli che l'input sia composto solo da numeri
71 3. Impostare Serial.setTimeout che definisce il tempo di lettura del buffer seriale
72 */
73
74
75
76
77
78