From: Andrea Manni Date: Mon, 3 Apr 2017 09:53:51 +0000 (+0200) Subject: Functions per motori X-Git-Url: http://git.piffa.net/web?p=rover;a=commitdiff_plain;h=7be1f456e0d5b7ac0b7fdef2c229de4777c716c6 Functions per motori --- diff --git a/libraries/rover/rover.cpp b/libraries/rover/rover.cpp index 5328a02..1b6c88e 100644 --- a/libraries/rover/rover.cpp +++ b/libraries/rover/rover.cpp @@ -37,7 +37,7 @@ void abilita() { } -// MotorB +// MotorA void forwardA() { // Avanzamento motore digitalWrite(in1,LOW); @@ -45,6 +45,13 @@ void forwardA() { analogWrite(enA,speedA); } +void forwardA(byte speedA) { + // Avanzamento motore + digitalWrite(in1,LOW); + digitalWrite(in2,HIGH); + analogWrite(enA,speedA); +} + void backwardA() { // Reverse motore digitalWrite(in2,LOW); @@ -52,6 +59,13 @@ void backwardA() { analogWrite(enA,speedA); } +void backwardA(byte speedA) { + // Reverse motore + digitalWrite(in2,LOW); + digitalWrite(in1,HIGH); + analogWrite(enA,speedA); +} + void stopA() { // Stop digitalWrite(enA,LOW); @@ -65,6 +79,13 @@ void forwardB() { analogWrite(enB,speedB); } +void forwardB(byte speedB) { + // Avanzamento motore + digitalWrite(in3,LOW); + digitalWrite(in4,HIGH); + analogWrite(enB,speedB); +} + void backwardB() { // Reverse motore digitalWrite(in4,LOW); @@ -72,6 +93,13 @@ void backwardB() { analogWrite(enB,speedB); } +void backwardB(byte speedB) { + // Reverse motore + digitalWrite(in4,LOW); + digitalWrite(in3,HIGH); + analogWrite(enB,speedB); +} + void stopB() { // Stop digitalWrite(enB,LOW); diff --git a/libraries/rover/rover.h b/libraries/rover/rover.h index 13e1be3..7d5da82 100644 --- a/libraries/rover/rover.h +++ b/libraries/rover/rover.h @@ -19,11 +19,15 @@ Licenza: GPLv3 // Funzioni void abilita() ; -void forwardA() ; +void forwardA(); // speedA e' dato dalla variabile golabale speedA +void forwardA(byte speedA); // Overloading void backwardA() ; +void backwardA(byte speedA) ; void stopA() ; void forwardB() ; +void forwardB(byte speedB) ; void backwardB() ; +void backwardB(byte speedB) ; void stopB() ; #endif diff --git a/prototypes/motor/README b/prototypes/motor/README new file mode 100644 index 0000000..854e433 --- /dev/null +++ b/prototypes/motor/README @@ -0,0 +1,16 @@ +Funzioni +============ + +Note a riguardo delle funzioni. + +Domande +--------- + +La funzione forwardB / forwardA accetta una parametro tramite overloading: + +1. Se il parametro non viene passato da dove viene pescato? +2. Si potrebbe fare la stessa cosa con un valore di default? +2.1 Con quali differenze? + +3 La funzione composita drive pero' non accetta nessun parametro, implementare +la possibilita' che accetti la velocita' come argomento. diff --git a/prototypes/motor/motor_func/motor_func.ino b/prototypes/motor/motor_func/motor_func.ino index cf7c254..83a3748 100644 --- a/prototypes/motor/motor_func/motor_func.ino +++ b/prototypes/motor/motor_func/motor_func.ino @@ -49,6 +49,26 @@ void loop() { backwardB(); delay(2000); +// Stop + stopA(); + stopB(); + delay(1000); + +// Left + backwardA(); + forwardB(); + delay(2000); + +// Stop + stopA(); + stopB(); + delay(1000); + +// right + backwardB(); + forwardA(); + delay(2000); + // Stop stopA(); stopB(); diff --git a/prototypes/motor/motors/motors.ino b/prototypes/motor/motors/motors.ino index 103eb2d..e27762c 100644 --- a/prototypes/motor/motors/motors.ino +++ b/prototypes/motor/motors/motors.ino @@ -1,5 +1,4 @@ /* L298n motor -Aggiunta Pilotare 2 motore DC con un modulo l928n Enable in PWM per settare velocita' massima