X-Git-Url: http://git.piffa.net/web?p=sketchbook_andrea;a=blobdiff_plain;f=motors%2Fmotor_2_PWM_soluzione%2Fmotor_2_PWM_soluzione.ino;fp=motors%2Fmotor_2_PWM_soluzione%2Fmotor_2_PWM_soluzione.ino;h=e585201266aa0116f7624051b2086c270cc73b97;hp=0000000000000000000000000000000000000000;hb=ea8d99c7d1bf9824a769c81533fe90e437ccd360;hpb=75928e346c7e5631544b0bea01e2d4ae9a5d749e diff --git a/motors/motor_2_PWM_soluzione/motor_2_PWM_soluzione.ino b/motors/motor_2_PWM_soluzione/motor_2_PWM_soluzione.ino new file mode 100644 index 0000000..e585201 --- /dev/null +++ b/motors/motor_2_PWM_soluzione/motor_2_PWM_soluzione.ino @@ -0,0 +1,45 @@ +/* + Simple Motor: Pot - Soluzione + + Motore DC con variazione della velocita' tramite PWM + pilotata da un potenziometro + + Impostare una mappatura in modo che il motore parta + da un valore minimo adeguato. + + */ + +const int analogInPin = A0; +const int motorPin = 9; + +int potValue = 0; +int motValue = 0; + +void setup() { + pinMode(motorPin, OUTPUT); + Serial.begin(9600); // Debuggin + +} +void loop() { + potValue = analogRead(analogInPin) ; + motValue = potValue / 4 ;// Mappatura semplificata da 1024 -> 255 + +// Debug + Serial.print("Pot value = " ); + Serial.print(potValue); + Serial.print("\t Motor speed = "); + Serial.println(motValue); + + if (motValue > 60) { // Valore minimo per far partire il motore + analogWrite(motorPin,motValue); // + } + else analogWrite(motorPin,0); // Se non supera il valore minimo + // deve restare fermo + + delay(3); // Pause, stabilizza la lettura del Pot +} + +/* Domande: + 1. Rifare questo esercizio utilizzando la funzione map(). + + */